fur rendering

Post on 09-Jul-2015

905 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

Computer GraphicsShader

TRANSCRIPT

Real-time Fur Rendering Basic

http://cafe.naver.com/shader

임용균 (guardin@naver.com)

Fur?!?

…..

Real-time Fur Rendering

• Cone

▫ 현재의 하드웨어에서 너무 느리다. 낮은 필터링 퀄리티

• Line

▫ 털이 너무 없어 보인다. 낮은 필터링 퀄리티

Real-time Fur Rendering

• Shells

▫ 원래의 geometry를 각 edge의 normal 방향으로 옮긴 방법.

• Fins

▫ 각각의 edge를 normal방향으로 밀어낸 추가의 geometry를

이용하는 방법.

• Shells & Fins

Shell Textures

(a) geometric hair (b) shell textures (c) fin texture

Generating Shell Textures

a. ‘curl’ 들을 시작점으로 설치 한다. (파티클 시스템 같이 자라남)

b. ‘curl’ 들을 보간 하여 원하는 만큼의 fur를 생성한다.a. 속도를 위해 hair to hair 충돌은 무시한다.

c. 볼륨 텍스쳐화 한다.

a. color, opacity

Problems with Shell Textures

• Surface Parametrization

▫ 임의의 표면(Arbitrary Surface)에 적용할 수 있어야 한다.

• Texture Memory Usage

▫ 전체 표면을 몇 개의 shell로 표현 할 수 있어야 한다.

Lapped Volume Texture

• Poor silhouettes

Fin Textures

texture patch

surface

Lapped Textures

Fin Textures

offset shells

original mesh extruded

fin

fade based on viewing angle : scale * (fabs(EdotN) - offset)

Runtime Rendering

• Surface Rendering▫ 먼저 전체 메쉬의 불투명한 부분을 렌더링 한다. Z-Buffer를 설정한다. (Z-

Test, Z-Write Enable)

• Fin Rendering▫ No Z-Buffer Writing

• Shell Rendering▫ 가장 안쪽의 shell부터 가장 바깥쪽의 shell까지 차례대로 렌더링 한다.

(shell texture 이용)

▫ No Z-Buffer Writing

▫ 커다란 patch를 타일링 하기 위해 texture wrapping enable.

Simple Implementation (VS)

Simple Implementation (PS)

Simple Implementation (Direct3D9)

Fur Shadowing

• UV Offset

Simple Implementation Result

References

• Real-Time Fur and More: Xbox Visual Effects

• Real-Time Fur over Arbitrary Surfaces

• Generating Fur in DirectX or OpenGL Easily -http://www.xbdev.net/directx3dx/specialX/Fur/index.php

top related