Why RenderMan needs Displacement Bounds?
왜 renderman류의 renderer에서만 displacement bound 옵션이 있을까? 라는 물음으로 시작하겠다. 이 옵션의 역활은 단순하다. 말 그대로 해당 geometry의 bounding box 사이즈를 정의된 unit단위로 늘리는 것뿐이다. 그럼 왜 bounding box 싸이즈를 displacement 되어 움직여지는 grid vertices 만큼 늘여야만 하는 것일까? 첫번째 이유는 bucket단위로 독립적인 rendering을 하기 때문이고 그 bucket안에 geometry가 안에 있냐 밖에 있냐를 계산할때 bouncing box 단위로 체크를 하기 때문이다.
두번째 이유는 displacement는 shading과정에서 계산되어지기 때문이다. shading을 하기 전까지는 이 grid상태의 micropolygons vertices이 후의 과정인 displacement shading에 의해 어디로 튈지 모르기 때문에 렌더링 초기 과정인 bucket안에 들어와 있는지 여부를 (bounding box 단위로 check & culling) 확인할때 그 bounding box 싸이즈를 크게 하여 계산되고 있는 bucket안에 들어오게 하여 실제 계산인 쉐이딩 까지 그 데이타를 계속 끌고 오게 만드는 것이다. 이 옵션은 상당히 비 계산적인 방식으로 조절해야 하는 것이 사실이다.
그럼 이런 비 계산적인 방식 말고 정확하게 계산해여 displacement bound value를 얻을 수 없는 것도 아니다. extremedisplacement attribute을 씀으로써 정확한 값을 뽑아 올 수가 있다. 이 방식은 먼저 해당 geometry마다 displacement shading을 연산하여 정확한 displacement bounds 값을 산출하여 제공하므로써 메모리를 낭비하는 것을 방지하는 것이다. shading을 먼저 한다는 것 또한 rendering 과정에 상당한 부담을 줄것이지만 어떤 경우에는 이 부담을 안고서도 정확한 값을 필요로 하기에 이 attribute가 있는 것이다. 흔히 Extreme Displacement가 이루어질때 이것이 효과적으로 쓰이기 되는데 Extreme 같은 경우에는 보다 정확한 displacement bounds value가 요구되어 진다. 잘못 쓰인 값은 엄청난 메모리 낭비로 직결되기 때문이다.
두번째 이유는 displacement는 shading과정에서 계산되어지기 때문이다. shading을 하기 전까지는 이 grid상태의 micropolygons vertices이 후의 과정인 displacement shading에 의해 어디로 튈지 모르기 때문에 렌더링 초기 과정인 bucket안에 들어와 있는지 여부를 (bounding box 단위로 check & culling) 확인할때 그 bounding box 싸이즈를 크게 하여 계산되고 있는 bucket안에 들어오게 하여 실제 계산인 쉐이딩 까지 그 데이타를 계속 끌고 오게 만드는 것이다. 이 옵션은 상당히 비 계산적인 방식으로 조절해야 하는 것이 사실이다.
그럼 이런 비 계산적인 방식 말고 정확하게 계산해여 displacement bound value를 얻을 수 없는 것도 아니다. extremedisplacement attribute을 씀으로써 정확한 값을 뽑아 올 수가 있다. 이 방식은 먼저 해당 geometry마다 displacement shading을 연산하여 정확한 displacement bounds 값을 산출하여 제공하므로써 메모리를 낭비하는 것을 방지하는 것이다. shading을 먼저 한다는 것 또한 rendering 과정에 상당한 부담을 줄것이지만 어떤 경우에는 이 부담을 안고서도 정확한 값을 필요로 하기에 이 attribute가 있는 것이다. 흔히 Extreme Displacement가 이루어질때 이것이 효과적으로 쓰이기 되는데 Extreme 같은 경우에는 보다 정확한 displacement bounds value가 요구되어 진다. 잘못 쓰인 값은 엄청난 메모리 낭비로 직결되기 때문이다.
0 Comments:
Post a Comment
Subscribe to Post Comments [Atom]
<< Home