조회 수 28225 추천 수 0 댓글 7
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 게시글 수정 내역 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 게시글 수정 내역 댓글로 가기 인쇄 첨부

출처 = http://gigglehd.com/zbxe/?document_srl=10490646&mid=newsreport&comment_srl=10490950&rnd=10490950#comment_10490950






db84bd591e21d1c1dcc480631d069af0.jpg


테지마 타카토(Pixar Animation Studio, Studio Tools Department, Software Engineer)

 

작년에 열린 SIGGRAPH 2012에서 픽사가 발표했던 오픈 소스 프로젝트 OpenSubdiv를 해설하는 "OpenSubdiv: 오픈 소스의 렌더맨 완전 호환 GPU 대응 서브 디비전 서피스 라이브러리"가 CEDEC 2013에서 열렸습니다.

 

설명을 담당한 건 그란 투리스모 시리즈를 제작하는 폴리포니 디지털에서 픽사 애니메이션 스튜디오로 2년 전에 이적했던 경력의 소유자, 데지마 타카히토입니다.

 

 

게임 그래픽과 다른, 픽사만의 독특한 지오메트리 문화

 

003.jpg

 

픽사의 애니메이션은 모든것이 서브디비전 서피스를 바탕으로 만들어졌습니다.

 

OpenSubdiv를 한마디로 말하자면, 픽사가 지난 15년 동안 제작했던 작품해서 항상 썼었던 서브디비전 서피스 기술을 오픈소스화한 프로젝트입니다.

 

서브디비전 서피스(Subdivision Surface)란 작은 수의 폴리곤으로 만든 3D 모델이나 3D 오브젝트를 가지고 매끄러운 곡면을 표시하도록 폴리곤을 나누는 기술입니다. 다이렉트 X 11 GPU에 있는 테셀레이션과 비슷한 기술이라 말할 수 있겠습니다.

 

현재 게임 그래픽은 폴리곤 수가 제법 많은 상태에서 모델링하고, 시야에 가까이 들어왔을 때만 더 많은 폴리곤을 쓴 오브젝트를 표현하기 위해 테셀레이션을 쓰고 있습니다. 그렇게 하는 경우도 썩 많은 건 아니지만.

 

그러나 픽사는 이 부분에서 게임 그래픽과 완전히 다르다고 합니다. 기본적으로 3D 모델의 폴리곤 수는 많은 편이 아니며, 이 모델을 실제 렌더링에 사용할 때, 해당 시점에서 거리에 따라 적절한 곡면을 표시하도록 서브디비전(여기선 테셀레이션이라 말하겠습니다)하는 것이 픽사의 수법이라고 합니다.

 

픽사가 이 테셀레이션 폴리곤 분할을 어느 정도 수준까지 하느냐 하면, 1개의 삼각형 폴리곤을 그려냈을 때 1픽셀도 안 되는 수준까지 분할한다고 하네요. 게임 업계에서 이 말을 들으면 놀랄 수도 있겠지만, 반대로 픽사 입장에서 보자면 처음부터 많은 폴리곤을 쓰는 데 놀랄지도 모르겠습니다.

 

예를 들어 봅시다. 픽사의 최신 애니메이션인 몬스터 대학에서 나오는 계단 난간의 경우, 모델링 단계에선 겨우 581개 폴리곤만 써서 그려내고 있습니다(아래 슬라이드 왼쪽). 하지만 실제 렌더링에선 이를 1픽셀 미만의 마이크로 폴리곤까지 테셀레이션해 슬라이드 오른쪽처럼 폴리곤이 보이지 않을 정도의 곡선으로 만들어 낸 것입니다.

 

004.jpg

 

몬스터 대학에서 나온 계단 난간의 3D 모델. 원래 데이터는 휴대용 게임기 수준의 지오메트리만 썼지만, 영상에 넣을 때는 방대한 폴리곤을 분석해서 씁니다.

 

이게 배경이니까 가능한 소리 아니냐고 반문할지도 모르겠지만 물론 그렇지 않습니다. 아래 슬라이드는 토이 스토리 시리즈의 주인공인 우디의 3D 모델입니다. 2만 개의 폴리곤을 썼으니 플레이스테이션 3 게임에 나오는 주인공 캐릭터 정도의 폴리곤입니다. 슬라이드를 보면 알겠지만 벨트 중앙의 메달은 상당히 거칠게 그려져 있지요. 그러나 실제 영화에서 얼마나 부드럽게 표현됐는지는 말할 필요도 없을 것입니다.

 

005.jpg

 

토이 스토리의 우디 역시 많은 폴리곤을 써서 만든 캐릭터는 아닙니다.

 

픽사의 애니메이션에서 2~3만 개를 넘는 폴리곤을 써서 모델링하는 캐릭터는 거의 없다고 해도 좋다고 말할 정도라네요.

 

픽사는 폴리곤 모델을 적게 쓰는 것을 기본으로 하지만, 그 대신 데포머(Deformer)라 부르는 3D 모델의 버텍스를 변형-제어하는 방법을 자주 씁니다. 우디처럼 움직임이 많은 캐릭터의 경우 4000~5000개의 데포머가 들어가 있다네요.

 

이를 거꾸로 말하면, 3D 모델의 버텍스 수가 적기 때문에 복잡한 변형을 넣어도, 모델을 쉽게 움직일 수 있었다는 이야기가 됩니다.

 

게임 그래픽의 경우 많은 수의 폴리곤 모델에 몇 십개 정도의 데포머를 넣는 구성이 되는데, 3D 캐릭터가 움직일 때 수축/확대하는 바깥 부분이 깨지지 않도록 버텍스를 혼합하고 자연스럽게 보간하는 것이 정도입니다.

 

반면 픽사는 게임 그래픽과는 반대로 원형 3D 모델은 적은 수의 폴리곤을 써서 만든 다음, 변형 등을 통해 움직이게 하는 것과 세부 묘사를 디테일하게 한다는 방식입니다. 그래서 폴리곤이 적은 모델을 수 천개의 움직임과 변형을 넣어, 프레임 렌더링에 필요한 해상도로 테셀레이션을 줘 더욱 세밀한 표현을 추가한 디스플레이 스마트맵핑을 해 최종 품질을 높인다는 것입니다.

 

폴리곤 수는 낮게, 변형은 많이. 이 방법의 장점은 복잡한 애니메이션이나 변형 메카니즘을 실용적인 속도로 계산할 수 있다는 것입니다.

 

픽사에선 3D 모델에서 변형 전 모델과 변형 후 모델을 준비해, 그 사이를 부드럽게 애니메이션하는 모핑 방법인 브랜드 세이프를 사용하거나, 깃발 등을 비롯한 천의 움직임을 시뮬레이션하거나, 소프트 바디 시뮬레이션을 적용하거나, 텍스처 버텍스의 충돌 판정이나 체적 유지 처리를 계산하는 등, 복잡한 계산을 하고 있습니다. 이런 복잡한 계산을 많은 수의 폴리곤을 써서 만든 모델에서 실행한다면 부하가 엄청날 것입니다.

 

006.jpg

 

적은 수의 폴리곤을 써서 높은 효율의 애니메이션을 만드는 픽사의 제작 문화

 

그러니까 많은 폴리곤을 써서 표현하는 곡면이나 디테일 표현이라 해 봤자, 영상을 보다 잘 보여주기 위한 포스트 이펙트에 지나지 않습니다. 그렇다면 애니메이션 처리를 통해 잘 보여주도록 만드는 것만으로도 충분하다는 게 픽사의 사고 방식인 것입니다.

 

뒤집어보면 픽사는 애니메이션을 만들 때, 그만큼 애니메이션의 움직임이나 감정 표현에 중점을 두고 있다는 이야기가 됩니다. 이 방식이 옳고 그른지, 작업 효율이 어떤지는 따져볼 필요도 없습니다. 왜냐하면 픽사는 15년 동안 애니메이션을 매우 잘 만들어 왔으니까요.

 

픽사 애니메이션의 캐릭터들은 다채로운 표정을 보여주지만, 의외로 실제 배우의 얼굴 움직임을 캡쳐해 이것을 캐릭터 얼굴에 씌우는 페이셜 캡처 기술은 별로 쓴 적이 없다고 합니다. 픽사의 다양하고 매력적인 표정 애니메이션은 복잡한 움직임을 조작하고 만들어나는 기술에서 비롯된 것입니다.

 

 

픽사의 방법을 표준화한 OpenSubdiv

 

이런 작업 환경에서 컴퓨터 그래픽스 애니메이션을 제작하는 픽사에게도 문제는 있었습니다. 이것은 복잡한 변형에 의한 수준 높은 애니메이션 표현을, 적은 수의 폴리곤 모델에서 만들어야 하는 것입니다.

 

결과물이 어떻게 보일지는 마이크로 폴리곤에 테셀레이션에 디스플레이 맵핑으로 디테일을 넣지 않으면 확인할 수 없습니다. 그리고 그 1 프레임을 렌더링하려면 몇 분에서 몇 시간까지 필요합니다.

 

이 작업 공정을 고속화해 효율을 높이려면 픽사 아티스트가 작업하는 워크스테이션에서, 마이크로 폴리곤 수준까진 아니어도 그것과 비슷한 테슬레이션과 디스플레이 맵핑을 더해 렌더링된 결과를 실시간으로 확인할 수 있어야 합니다.

 

007.jpg

 

OpenSubdiv는 픽사 자신을 위해서 만든 것이기도 합니다.

 

때마침 이 때 PC의 GPU에 테셀레이션이 추가되면서, 그런 작업을 실시간으로 처리할 수 있지 않을까. 이런 발상이 나와 픽사가 오랬동안 사용해 왔던 서브디비전 서피스 알고리즘을 PC용 GPU를 사용해 실시간으로 실현하는 프로젝트가 등장했습니다. 이것이 OpenSubdiv 프로젝트와 연결됩니다.

 

이것을 오픈 소스로 만든 이유는, 3D 그래픽 업계에 픽사 스타일의 제작 방식과 문화를 넓히기 위해서입니다. 예를 들어 다른 회사가 개발한 3D 그래픽 소프트웨어나 관련 툴이, 픽사의 서브디비전 서피스와 같은 알고리즘으로 구현됐다면 픽사도 그런 소프트웨어나 도구를 자신의 작업에 도입해 효율을 높일 수 있습니다. 픽사는 제작 관련 툴을 대부분 직접 개발해 쓰고 있지만, 다른 회사의 툴에도 픽사 스타일이 스며드느느 건 자신에게 도움이 된다고 본 것입니다.

 

008.jpg

 

OpenSubdiv의 공개가 픽사에게 가져다주는 장점

 

그럼 왜 지금까지는 서브디비전 서피스를 그래픽 업계에 공개하지 않았을까요? 특허 문제 때문입니다.

 

서브디비전 서피스가 쓰는 테셀레이션 알고리즘인 Catmull-Clark는 Edwin Catmull씨와 Jim Clark씨가 발표한 것으로, 이를 쓰는 데이터 구조나 처리 알고리즘 특허는 픽사가 구입해서 쓰고 있었습니다. 그러나 OpenSubdiv 프로젝트를 출범하면서 픽사는 관련 특허를 프리 라이센스로 바꿨습니다.

 

이를 통해 그래픽 업계가 이 기술을 기반으로 한 소프트웨어나 하드웨어를 개발하게 됐다는 것입니다.

 

009.jpg

 

OpenSubdiv는 소프트웨어 개발자 서비스인 GitHub에서 공개됩니다.

 

010.jpg

 

대응 플랫폼은 상당히 다양한 편.

 

지금까지도 픽사 스타일 테셀레이션을 사용한 3D 모델링이 가능한 컨텐츠 제작 툴로는 오토데스크 마야 등이 있었습니다. 그러나 다른 툴을 사용해 3D 모델을 만들어도 게임 그래픽으로 표시하려면 게임 그래픽 엔진에 픽사의 특허를 위반하는 코드를 넛어야 했습니다. 따라서 게임 그래픽에 픽사 기술을 넣는 건 현실적인 방법이 아니었습니다.

 

어쩌면 그런 요소 때문에 게임 그래픽은 많은 수의 폴리곤으로 모델을 만드는 스타일이 주류가 된 것일지도 모릅니다. 하지만 앞으로는 특허 걱정을 할 필요가 없으니 게임 그래픽도 큰 변화가 생길 수 있습니다.

 

 

OpenSubdiv의 동작 원리

 

001.jpg

 

OpenSubdiv는 Feature Adaptive GPU Rendering of Catmull-Clark Subdivision Surfaces(http://research.microsoft.com/en-us/um/people/cloop/tog2012.pdf)라는 방법을 쓴 것입니다. 이것은 픽사와 마이크로소프트의 공동 연구로 진행된 것으로, 픽사가 오랬동안 사용해 온 Catmull-Clark 기반 서브디비전 서피스 기술에 적응형 처리를 조합하 실시간 실행하는 기술입니다.

 

폴리곤으로 구성된 3D 오브젝트를 보다 섬세한 폴리곤 조합으로 분할해 매끄러운 곡면을 표현하는 방법이지요.

 

002.jpg

 

OpenSubdiv는 SIGGRAPH 2012에서 발표된 Feature Adaptive GPU Rendering of Catmull-Clark Subdivision Surfaces라는 논문을 실천하는 형태로 연구되어 왔습니다.

 

Catmull-Clark 기법의 테셀레이션으로 만들어진 곡면은 Bicubic B-Spline Curved Surface와 같습니다. 그러나 이 방법을 적용할 수 있는 건 버텍스가 4개의 선분으로 이루어져 있을 때 뿐입니다. 그 외의 특이점(Extraordinary vertex), 그러니까 3개나 5개의 선분이 모여 이루어진 버텍스에는 적용이 안됩니다.

 

003.jpg

 

특이점을 포함한 면의 취급.

 

그래서 특이점 이외의 부분에선 보통의 Bicubic B-Spline Curved Surface로 치환해, 다이렉트 X 11 GPU의 테셀레이션을 이용해 필요한 퀄리티가 나올 정도로 폴리곤을 분할 렌더링합니다. 특이점의 경우 특이점 안쪽의 분할 수준을 1단계 올려 분할한다는 것이 OpenSubdiv 논문에 나온 수법입니다.

 

통상적인 버텍스와 특이점의 겨예 부분의 분할에선 트랜지션 패치라 부르는 전용 분할 알고리즘을 적용합니다.

 

주요 쿼드(아래 그림에서 빨갛게 표현한 부분)에 대해 특이점을 포함한 주변 쿼드(녹색 부분)이 어떻게 접해 있느냐에 따라, 미리 준비해 둔 분할 기법을 씁니다. 이것이 바로 적응형 처리의 장점입니다.

 

예를 들어 그림의 왼쪽 끝에 나온 패턴에선 특이점을 포함한 쿼드가 위쪽에 1개 있으니, 특이점을 해당 쿼드 안에서 이등변삼각형으로 분할합니다. 그 오른편의 패턴에선 특이점 쿼드가 위와 오른쪽에 두개 있으니 그 두 특이점과 해당 쿼드의 버텍스를 연결하는 이등변 삼각형으로 분할합니다.

 

004.jpg

 

트랜지션 패치는 5종류의 패턴과 이를 회전한 것으로 구성됩니다.

 

그리고 필요한 만큼 폴리곤을 계속 분할해 나가, 마지막에는 쿼드 그대로 남기거나 혹은 Gregory Patch(http://research.microsoft.com/en-us/um/people/cloop/sga09.pdf)라 부르는 확장형 곡면을 넣는 방법을 씁니다.

 

다만 Catmull-Clark에 국한된 것은 아니지만, 이러한 글로벌 분할 방식을 쓰면 각이 진 부분은 뭐든지 둥글게 된다는 단점도 생기게 됩니다.

 

OpenSubdiv에서는 그런 부분을 특별히 처리해 주변 테셀레이션 분할 차원에서 격리시킵니다. 격리시킨 영역의 테셀레이션을 격리 레벨로 취급 설정해, 각이 진 부분이나 약간 둥그스름한 뿔(Semi-Sharp Crease)를 가진 모델을 표현할 수 있도록 합니다.

 

 

OpenSubdiv의 실장 형태

 

그럼 PC에선 OpenSubdiv 실장은 어떻게 할까요. 3D 모델을 형성하는 정보 중에서, 픽사 스타일의 Catmull-Clark 테셀레이션을 위한 토플로지 데이터로 버텍스 데이터를 나눠 데이터를 처리하고 있습니다.

 

토플로지 데이터는 어디를 얼마나 테셀레이션하는지를 비롯한 제어정보가 들어 있는 데이터입니다. 이것은 서브디비전 테이블 데이터로 GPU에서 정리합니다.

 

한편 버텍스 데이터는 애니메이션을 위한 기본 형상 모델이라고 할 수 있으며, 렌더링 시 버텍스 파이프라인에 넣기 위한 버텍스 버퍼 오브젝트 안에 넣습니다.

 

여기서 특징은 일반적인 면을 Bicubic B-Spline Curved Surface로 대체하거나 특이점을 포함한 면을 Gregory Patch로 바꾸는 처리를, GPGPU에서 처리한다는 것입니다. 물론 그 처리 결과도 버텍스 버퍼 오브젝트에 넣습니다.

 

버텍스 버퍼 오브젝트에 필요한 데이터가 모이면 이를 GPU의 그래픽 렌더링 파이프라인에 넣어 렌더링합니다. 이 때 Bicubic B-Spline Curved Surface이나 Gregory Patch의 실제 처리는 그래픽 파이프라인의 테셀레이션이 담당합니다.

 

005.jpg

 

006.jpg

 

실제 처리의 실장 형태

 

 

OpenSubdiv의 API와 기능


OpneSubdiv는 윈도우를 시작으로 OSX/iOS/안드로이드/리눅스 등의 플랫폼에 보급되고 있습니다. 오픈 소스라는 점도 있고, 여기에는 픽사의 사외 자원봉사 개발자가 참여한 것도 있습니다.

 

OpenSudiv는 주로 렌더링을 실시하는 Draw, 일반적인 면이나 특이점을 포함한 면에 대해 적응형 처리를 하는 Compute, 만들어낸 곡면에 대해 평가를 하는 Eval이라는 3개의 모듈로 구성되어 있습니다. 각각 다양한 기존 API를 이용해 각각의 플랫폼용으로 구현되어 있습니다.

 

또한 앞에서 렌더링 파이프라인의 해설을 했지만, 이 부분은 실질적으로 Draw와 Compute 부분에 대한 것입니다.

 

Eval은 이렇게 만들어 낸 곡면과 충돌을 일으키거나, 두피에서 머리카락을 그려내는 것처럼, 이미 만들어진 곡면에 또 다른 오브젝트를 연결할 때 쓰는 것입니다.

 

Draw는 다이렉트 X, OpenGL, OpenGL ES 간은 렌더링 API를 이용합니다.

 

Compute는 CPU 코드 그대로거나 OpenMP, OpenCL, CUDA 같은 GPGPU 기술의 API를 씁니다.

 

Eval은 최근에야 구현되기 시작한 모듈이라, CPU 코드 구현 밖에 없습니다.

 

007.jpg

 

OpenSubdiv가 지원하는 OS 플랫폼

 

008.jpg

 

OpenSubdiv의 3개 모듈이 어떤 API로 구현되는지를 나타낸 그림

 

OpenSubdiv 자체가 제공하는 API는 지오메트리 표현에 관한 태블릿 라이브러리인 HBR(Half-Edge Boundary Representation), 통상적인 면이나 특이점을 포함한 면에 적응형 처리를 관장하는 API인 FAR(Feature Adaptive Representation), Compute와 Draw의 상관 처리(Interop)를 관장하는 API인 OSD(OpenSubdiv)라는 3개 계층으로 되어 있습니다.

 

HBR에서는 기본적으로 픽사의 레이아웃 시스템인 RenderMan의 코드를 그대로 사용하며, OSD는 하드웨어를 실제로 구동하기 모듈입니다.

 

009.jpg

 

015.jpg

 

3개의 API 층과 파이프라인의 대응

 

020.jpg

 

OSD는 Compute와 Draw의 상관 관계 처리를 담당합니다. 예를 들면 Compute을 CUDA에서 실행하고 렌더링을 다이렉트 X나 OpenGL에서 실행하는 경우에는 CUDA의 처리 결과를 다이렉트 X와 OpenGL에서 이용하기 위한 처리가 필요합니다. OSD는 그런 목적으로 활용합니다.

 

또한 렌더링 실행 시 OpenSubdiv에서 준비한 헐 쉐이더(OpenGL에서는 Tess.Control), 도메인 쉐이더(OpenGL에서는 Tess.Evel), 지오메토리 쉐이더 코드가 추가되기에, 클라이언트 애플리케이션에선 버텍스 쉐이더와 픽셀 쉐이더만 준비하면 됩니다.

 

021.jpg

 

OpenSubdiv에선 테셀레이션 스테이지와 지오메트리 쉐이더를 구동합니다.

 

 

OpenSubdiv의 앞으로 게임 그래픽 관계


OpenSubdiv에 해당하는 기존 GPU에 탑재된 테셀레이션 스테이지는 스펙에 있어 여러 불만이 있다고 합니다.

 

기존 GPU 테셀레이션 스펙에선 주요 폴리곤을 임의의 방향으로 테셀레이션 분할 할 수 있지만, 트랜지션 패치에서 필요로 하는 분할, 그러니까 중앙에서 하나, 각 변마다 중점의 좌우로 임의대로 분할하는 건 안됩니다. 따라서 트라이앵글 도메인을 써서 3~4번으로 나눠 분석해야만 합니다.

 

그래서 앞서 설명한 5개 패턴(과 회전)의 트랜지션 패치를 적용에 따라, 각각 다른 헐 쉐이더 프로그램, 도메인 쉐이더 프로그램을 실행할 필요가 있어, 드로우 콜이 불필요하게 늘어나는 단점이 있습니다.

 

이것은 API 수준의 확장으로 해결할 수 있는지, 아니면 하드웨어 확장이 필요한지는 알 수 없으나, OpenGL을 관장하는 KHRONOS 그룹과 NVIDIA 등의 GPU 제조사에게 스펙 확장을 제안하겠다는 것이 픽사의 입장입니다.

 

022.jpg

 

OpenSubdiv에는 DrawCall을 줄이기 위한 API도 있습니다.

 

023.jpg

 

OpenSubdiv의 앞으로 기능 확장

 

2012년에 OpenSubdiv 프로젝트를 발표한 후, 업계의 반응은 매우 컸고 그래픽 제작 소프트웨어에서도 OpenSubdiv의 채용은 급속히 발전해 왔다고 합니다.

 

게임 업계의 채용 사례도 많습니다. 오토데스크 마야는 차기 버전에서 OpenSubdiv을 통합한다고 밝히기도 했습니다.

 

024.jpg

 

OpenSubdiv을 채용하는 그래픽 소프트웨어들

 

마지막으로 OpenSubdiv와 게임 그래픽의 관계에 대한 전망이 나왔습니다. 결론부터 말하면 현재 OpenSubdiv는 게임 엔진에 넣어 쓸 수준이 아니라는 것.

 

사실 OpenSubdiv는 애시당초 레퍼런스 라이브러리로 제공되는 것이라 그렇습니다. 애시당초 게임 엔진용으로 설계한 것이 아니라, 앞서 말한대로 그래픽 제작 소프트웨어를 가속하기 위해 개발한 것입니다.

 

그래서 3D 모델을 제작하는 툴에 추가해 OpenSubdiv를 사용하는 방안을 검토 중입니다.

 

또 게임 런타임에서 그대로 표시할 수는 없다고 해도, OpenSubdiv을 준수하는 그래픽 제작 소프트웨어를 이용래 3D 모델을 만들 가치는 있다는 게 픽사의 의견입니다.

 

예를 들면 PS4용 게임 타이틀을 위해 테셀레이션을 전제로 두고 어떤 3D 모델을 만들었다고 칩시다. 이 게임을 스펙이 떨어지는 게임기에 이식할 때 OpenSubdiv를 이용하면 확장이 가능한 고품질 3D 모델을 만들 수 있습니다.

 

똑같은 3D 모델을 낮은 폴리곤으로 다시 모델링하거나 전용 컨버터나 수작업으로 폴리곤 수를 줄일 필요가 없다는 것입니다. PS1용으로 만든 그래픽을 PS2로 개조, 다시 PS3에 맞춰 개조할 필요가 없다는 이야기입니다.

 

폴리포니 디지털에선 SPU를 이용한 맞춤형 테셀레이션을 탑재한 자동차 모델 제작법을 도입한 상태입니다. PS3용 게임인 그란투리스모 6에선 적응형 테셀레이션에 의해 표현된 자동차 모델이 나올 예정입니다. 이것이 PS4 등 앞으로의 전개를 내다 본 제작 전략이라는 건 쉽게 알 수 있습니다.

 

026.jpg

 

그란투리스모 6에선 적응형 테셀레이션을 써서 표현한 자동차 모델이 나올 예정입니다.

 

이렇게 서로 다른 수의 폴리곤을 써서 만든 3D 모델을 여러 개로 변화시키는 방식에서, 테셀레이션을 전제로 해서 3D 모델을 만드는 식으로 가는 방식이, 비트맵에서 벡터 폰트로가는 것이라고 비유하고 있습니다.

 

027.jpg

 

028.jpg

 

폴리곤을 많이 써서 모델을 만드는 건, 고해상도 비트맵 폰트를 만드는 것과 같습니다. 이걸 벡터 폰트로 바꾸자는 것.

 

029.jpg

 

030.jpg

 

폴리곤 수를 적게 써서 모델을 만들고, 여기에 복잡한 시뮬레이션이나 컨트롤를 넣어 부드러운 그래픽을 그리자는 제안

 

이렇게 테셀레이션을 전제로 한 3D 모델은 앞으로 게임 런타임에서 이용할 수 있을 것이라 보고 있습니다.

 

OpenSubdiv에 포함된 기술은 오픈 소스 형태로 제공되기 때문에, 게임의 런타임용 고속화나 게임용 최적화 등을 실천하는 것오 이론적으로는 가능합니다.

 

픽사도 3D 모델 자체는 적은 수의 폴리곤을 써서 만들고 있지만, 여기에 딸린 주름이나 돌기 등의 디테일 부분은 디스플레이스먼트 텍스처로 분리해 표현합니다. 렌더링할 때는 테셀레이션과 폴리곤 수를 늘려 만든 모델에 적용하고 있습니다.

 

즉, 적은 수의 폴리곤으로 만든 모델->테셀레이션으로 폴리곤 수를 늘림->디스플레이스먼트 맵핑에 의해 디테일 추가라는 식입니다.

 

게임 그래픽에서 OpenSubdiv의 발상이 도입될 경우엔 이런 접근이 될 것입니다. 적은 수의 폴리곤으로 만든 모델->테셀레이션과 시점/거리에 비례해 폴리곤 수를 늘림->시점과 거리에 비례한 디스플레이스먼트 맵핑에 의해 디테일 추가-라는 식이 됩니다.

 

이 방법을 써서 3D 모델을 만들면, 멀티 플랫폼으로 게임을 만들었을 때, 스펙이 떨어지는 기기에서 3D 모델을 출력해도, 버텍스가 많은 3D 모델의 디테일을 적절한 수준의 해상도로 출력할 수 있게 됩니다.

 

게임 업계에선 다이렉트 X 11 GPU의 테셀레이션 스테이지의 활용에 아직 소극적이지만, 픽사의 OpenSubdiv 프로젝트 진화와 관련 기술이 다듬어지면, 앞으로 게임 개발과 GPU 제조사에 상당한 영향을 줄 것으로 기대됩니다. 

  • ?
    딘키 2013.09.10 10:53
    잘 읽었습니다. ^^
  • ?
    후후훗훗 2013.09.10 15:17

    오호라! 그렇군요.

  • ?
    알리아스 2013.09.10 16:06

    흠.. 그렇다면. 우리 시네마는 언제 도입 하실까?

  • profile
    [길동] 2013.09.10 19:40

    시포디의 하이퍼 넙스가 비슷하지요^^


    웨이트 되는건 시포디가 먼져였구요~(7.0때)


    그런데 구현하는 기술이 좀 다른거 같습니다.

  • ?
    호시노아키조아 2013.09.10 18:43

    이게 지금 렌더 타임 서브디비전 말하는 거죠?

    그런데 시포디에 안들어가 있나요?

  • ?
    엘라스틱마인드 2013.09.10 22:28
    하이퍼 넙스와 서브 폴리 디스플레이스먼트가 그 역할을 합니다.

    대신 모든 면에 대해서 동일 하게 쪼개는 거구요.

     

    어짜피 렌더링 최적화에 대한 이야기 입니다.

     

    헐리웃 급의 큰 영화를 하는거 아니면 크게 의미 없어요.

    또는 헐리웃 급에 참여 한다고 해도 어짜피 아티스트는 그냥 만들면 됩니다.

    기술을 다른 사람이 알아서 전담하니까요.

     

    만약 쓰게 된다면 GI를 그대로 쓰기 힘든거죠. GI같은 레이트레이싱 기술들이

    가져야 하는 폴리곤의 갯수가 다르고 위에서 말하는 일반적인 쉐이딩에서 가져야 하는

    폴리곤의 갯수가 다릅니다.

     

    만약 저 방식으로 렌더링 하는데 카우스틱스나 GI같은 것이 렌더링 되면 위의 자동차 이미지를 예로 들어서

    곡선에는 아주 많은 폴리곤이 밀집되어서 아주많은 GI를 계산 하겠지만 본 네트는 적은 폴리곤으로

    아주 적은 GI를 계산 하겠지요. 하지만 보이는 면은 본네트가 더 잘보이 므로

    이건 GI의 기본 컨셉과 반대인 경우 일 것 입니다. 그럼 결국 원래 대로 더 쪼개야 한다는 거죠.

    (적은 폴리곤 = 적은 GI = 적은 샘플 = 같은 영역(픽셀)에서의 저 퀄리티) 

     

    렌더맨의 렌더링 방식(마이크로폴리곤으로 쪼개고-포인트 방식으로GI를 계산하는) 이나

    게임 엔진의 방식(높은 FPS 유지)일때 유리한 경우라고 보면 될 겁니다.

     

    대신 디스 플레이스먼트를 GPU로 프리뷰를 한다면 좀 더 빠르게 볼 수 있겠죠.

    근데 그렇게 작업하진 않자나요.

     

    C4D 유저하고는 거리가 먼 이야기

  • ?
    돌돌이 2013.09.17 09:50

    캐릭터 애니메이션을 하려면 아직까진 마야가 대세인듯.. 그 외에는 c4d가 쵝오


새소식

news

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 IT 소식 [window]SMB 취약점을 이용한 랜섬웨어 공격 주의 권고 [길동] 2017.05.13 9167
공지 C4D 소식 nVidia 그래픽 카드 관련 Windows에서의 Cinema 4D 안정성 관련 패치 8 스펜서 2015.07.30 12423
597 C4D 소식 [마감] [세미나] Cinema 4D & Houdini Integration 2 file 스펜서 2016.05.16 1065
596 C4D 소식 [웨비나] 3D Printing and Cinema 4D (5/17 22:00~23:00) 스펜서 2016.05.16 297
595 C4D 소식 Octane For C4D 3.00 Beta 2.0... Today.... 2 file eyeonestudio 2016.05.14 548
594 C4D 소식 MAXON 30주년 기념 30% 할인 Flash Sale! file 스펜서 2016.05.10 439
593 C4D 소식 Realflow/cinema4d 6 file 스펜서 2016.04.29 684
592 CG 소식 Solidangle-Arnold - EMX 2016 file [길동] 2016.04.25 59084
591 C4D 소식 Nvidia Iray C4D에 관한 짤막한 사용기..... 7 file 비머 2016.04.21 1032
590 C4D 소식 Iray for Cinema 4D 출시 3 file 스펜서 2016.04.20 623
589 C4D 소식 Octane Render for Cinema 4D 세미나(4/30) 10 file 스펜서 2016.04.19 1139
588 CG 소식 Arnold 렌더, 오토데스트가 인수했습니다. 7 정석.CI 2016.04.19 749
587 C4D / 코로나 렌더러 - 알파 V5발표 1 [길동] 2016.04.15 1594
586 C4D 소식 CINEMA4D @ NABSHOW 프리젠테이션 소개 file 스펜서 2016.04.15 332
585 CG 소식 FREE 3D MODELS SET 2016 - 프리모델 셋트 4 file [길동] 2016.04.09 730
584 C4D 소식 Basic Fluids Simulation Workflow with C4D and RealFlow 1 file 스펜서 2016.03.22 499
583 CG 소식 Houdini Engine Indie 무료화 1 file 스펜서 2016.03.15 694
582 C4D 소식 모카와 c4d의 만남... 5 file 인간조조 2016.02.11 1186
581 C4D 소식 [웨비나] Cinema 4D and RealFlow Youtube 공개 3 스펜서 2016.02.05 642
580 C4D 소식 Cineware 3.0 : Adobe After Effects 13.7 UPDATE 비머 2016.01.28 15217
579 C4D 소식 VR for Cinema 4D 세미나 (2016) - VR 콘텐츠 제작 기법 및 사례 분석(벤타디멘션) file 스펜서 2016.01.27 723
578 C4D 소식 VR for Cinema 4D 세미나 (2016) - VR/AR 콘텐츠와 테크놀로지의 현재와 미래(더부스터) 4 file 스펜서 2016.01.25 616
목록
Board Pagination Prev 1 ... 7 8 9 10 11 12 13 14 15 16 ... 41 Next
/ 41
닫기

마이페이지

로그인을 해주세요