실시간 게임에서 프로시져 텍스쳐의 장단점
-프로시져 텍스쳐란 입력된 변수 값을 근거로 컬러 패턴을 만들어 내는 컴퓨터의 알고리즘이다 (GPU GEMS 3권)-
3D max과 같은 프로그램에서 메터리얼 에디터에 보면, 노이즈나 마블, 체커와 같이 기본으로 들어있는 메터리얼 (텍스쳐로 존재하던가..?) 들이 있다. 이녀석들은 그림 이미지가 아니라 수학적 계산으로 만들어진 이미지로 - 프렉탈 같은걸 끼얹던가... - 여러가지 장단점을 가지고 있다.
실시간 게임에서는 사용 못하는 거라고 그냥 오해하고 있었는데... 생각해 보면 안될 것도 없었다?!??!?
뭐 이미 섭스턴스 (substance) 라고 하는 플러그인이 나와서 돌아다니고 있으니 말이다. 실제로 게임에서도 사용되었고. 어떤 프로그래머 분은 이 유니티 섭스턴스 (Unity Substance) 에 대해 극찬을 하시던데... 아티스트가 보면 완전히 홀딱 반할거고 장점밖에 없다고...
하지만 아티스트 입장에서 볼 때 장점밖에 없는건 아니다. 단점도 충분히 존재한다.
일단 이렇게 수학적으로 만들어진 텍스쳐 이미지의 장점과 단점은 다음과 같다... 자세한건 다음에 써 보고.. 오늘은 간략하게
장점 : 이론적으로 무한대의 해상도를 지닌다. 수학적 연산이기 때문에 벡터처럼 해상도의 제한 자체가 무의미하다. 즉 엄청나게 선명한 해상도의 이미지를 만들 수 있다는 것.
단점 : 그에 반해 기계적으로 생성된 텍스쳐라는 것을 잊으면 안된다. 즉 손으로 터칭한 텍스쳐와 적절히 섞어서 사용하지 않으면, 기계적인 이질감이 나올 수도 있다는 것을 알아야 한다.
장점 : 수학 연산이기 때문에 코드 몇 줄이면 무한대의 이미지가 생성 가능하다. 다시 말해서 텍스쳐 용량을 엄청나게 줄일 수 있다는 말이다. 게임의 전송 용량이 엄청나게 줄어든다
단점 : 수학 연산이라는 말은 결국 CPU에서 실시간으로 연산이 필요하다는 말이다. 즉 메모리가 아닌 CPU의 부하를 유발할 수가 있다. 프로시져 텍스쳐의 기계적인 이질감을 숨기려면 상당히 복잡하게 연산하는 쪽이 좋은데, 그렇게 된다면 CPU부하가 눈에 띌 가능성이 있다. 다운로드 사이즈가 획기적으로 줄어드는 것은 사실이지만, 게임 플레이 중에 런타임으로 계산하지 않으려면 결국 프로시져 텍스쳐를 연산해서 메모리에 얹어 두곤 하는데, 그렇게 하면 비디오 메모리 절약은 기대하기 힘들게 되는 면도 있다.
장점 : 게임중에 실시간으로 애니메이트 시킬 수 있다. 이것은 텍스쳐를 직접 실시간으로 조작하는 것으로,셰이더를 이용한 텍스쳐 에니메이션과는 비교할 수 없을 정도로 강력한 기능이다
단점 : 분명 텍스쳐의 실시간 에니메이트는 강력한 기능이다. 그러나 그런 것이 가능하기 위해서 아티스트가 미리 셋팅해 놔야 하는 텍스쳐 작업이 만만치 않다. 또한 요령도 필요하다 (익숙해지면 괜찮지만) 그리고 이 기능을 잘 사용하기 위해서는 가급적 손으로 터칭한 텍스쳐를 같이 이용하는 것을 최소화 시켜야 한다는 점이 존재한다. 프로시져 텍스쳐란 손으로 그리는 것이 아닌 '기계로 그리는' 그림이기 때문이다. 때문에 잘 훈련된 Technical Artist가 존재하는 팀에서나 이 기능을 잘 사용할 수 있을 것이다. '아티스트가 전적으로 사용해야 함에도 불구하고 기술적 이해도가 꽤 필요한 기능' 이기 때문이다.
결론 : Procedural Texture를 실시간 게임에서 사용이 가능하게 된 것은 매우 획기적인 변화임에 틀림없다. 잘 사용한다면 매우 인상적인 결과를 낼 수 있을 것이다. 그러나 이 기능이 만병통치약이 아님을 알아야 한다. 기계로 그리는 것이 사람이 그리는 것보다 훨씬 나은 점 밖에 없으면 수많은 텍스쳐 아티스트들이 왜 와콤 타블렛을 계속 긁어대고 있겠는가?
http://chulin28ho.egloos.com/tb/5569234
http://chulin28ho.egloos.com/tb/5569287