Chapter 16 Vegetation Procedural Animation and Shading in Crysis 잃어버린 채식주의자를 찾아서
Overview <ul><li>Vegetation Rendering </li></ul><ul><ul><li>Interaction (breaking, physics) </li></ul></ul><ul><ul><li>Pro...
Motivation <ul><li>그동안의 식물은 대부분  Static 하거나 매우 간단한 움직임만을 가졌음 </li></ul><ul><li>수천종의 다양한 식물에 적용 </li></ul><ul><li>다양한  Wind...
Procedural Animation <ul><li>크게  2 개의  Part </li></ul><ul><ul><li>Main Bending (Entire) </li></ul></ul><ul><ul><li>Detail ...
Main Bending <ul><li>Mesh 의  Center 에서  Vertex 까지의 거리 (Height) 에 따라 흔들리는 정도가 결정됨 </li></ul><ul><ul><li>어느정도의  Limit  필요 </...
Leave Bending <ul><li>Artist 가 별도의  Texture 에 넣은 정보를 이용 </li></ul><ul><ul><li>R : Leaf Edge 의 뻣뻣함 </li></ul></ul><ul><ul><...
Wave <ul><li>Triangle Wave  사용 </li></ul><ul><ul><li>Sine  곡선의 근사 </li></ul></ul><ul><ul><li>4 개의  Triangle Wave 를 사용하여 합성...
Bending Shader
Shading <ul><li>종류 </li></ul><ul><ul><li>Per-pixel shading + Vertex shading </li></ul></ul><ul><ul><li>Ambient Lighting, E...
Ambient Lighting <ul><li>CryEngine 의  Ambient Light  종류 </li></ul><ul><ul><li>Outdoor </li></ul></ul><ul><ul><li>Indoor </...
Edge Smoothing <ul><li>Alpha Test 의  Side Effect -> Hard Edge </li></ul><ul><li>Post Processing 으로 처리 </li></ul><ul><ul><u...
 
Shading Shader
Conclusion <ul><li>Vegetation  외  Hair, Cloth  등에도 사용 가능 </li></ul><ul><li>Crysis 의 모든  Shading 은  World Space 에서 이루어져서 의미...
Upcoming SlideShare
Loading in …5
×

GPU Gems3 Vegetation

1,525 views

Published on

Published in: Business, Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,525
On SlideShare
0
From Embeds
0
Number of Embeds
348
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

GPU Gems3 Vegetation

  1. 1. Chapter 16 Vegetation Procedural Animation and Shading in Crysis 잃어버린 채식주의자를 찾아서
  2. 2. Overview <ul><li>Vegetation Rendering </li></ul><ul><ul><li>Interaction (breaking, physics) </li></ul></ul><ul><ul><li>Procedural Animation (16.1) </li></ul></ul><ul><ul><li>Shading (16.2) </li></ul></ul>
  3. 3. Motivation <ul><li>그동안의 식물은 대부분 Static 하거나 매우 간단한 움직임만을 가졌음 </li></ul><ul><li>수천종의 다양한 식물에 적용 </li></ul><ul><li>다양한 Wind Source 에 따라서 </li></ul><ul><ul><li>Omnidirectional </li></ul></ul><ul><ul><li>Local Wind, Global Wind </li></ul></ul><ul><li>GPU 상에서 효율적으로 계산 </li></ul>
  4. 4. Procedural Animation <ul><li>크게 2 개의 Part </li></ul><ul><ul><li>Main Bending (Entire) </li></ul></ul><ul><ul><li>Detail Bending (Leave) </li></ul></ul><ul><li>직관적인 시스템 구축 </li></ul><ul><ul><li>Artist 가 Texture 에 Bending 속성을 작성 / 저장 </li></ul></ul><ul><ul><li>디자이너에게는 Wind Dir, Speed 만 노출 </li></ul></ul><ul><ul><li>Wind Source 를 Entity 에 Attach 가능 </li></ul></ul><ul><ul><li>(Helicopter, Particle, …) </li></ul></ul>
  5. 5. Main Bending <ul><li>Mesh 의 Center 에서 Vertex 까지의 거리 (Height) 에 따라 흔들리는 정도가 결정됨 </li></ul><ul><ul><li>어느정도의 Limit 필요 </li></ul></ul>
  6. 6. Leave Bending <ul><li>Artist 가 별도의 Texture 에 넣은 정보를 이용 </li></ul><ul><ul><li>R : Leaf Edge 의 뻣뻣함 </li></ul></ul><ul><ul><li>G : 잎 하나의 변화도 </li></ul></ul><ul><ul><li>B : 잎들의 전체적인 뻣뻣함 </li></ul></ul><ul><ul><li>A : Precomputed Ambient Occlusion </li></ul></ul><ul><ul><ul><li>추후 Shading 에서 사용 </li></ul></ul></ul>
  7. 7. Wave <ul><li>Triangle Wave 사용 </li></ul><ul><ul><li>Sine 곡선의 근사 </li></ul></ul><ul><ul><li>4 개의 Triangle Wave 를 사용하여 합성 </li></ul></ul><ul><ul><ul><li>잎의 Edge * 2 </li></ul></ul></ul><ul><ul><ul><li>잎의 면 * 2 </li></ul></ul></ul><ul><ul><li>Cubic Interpolation 으로 Smoothing </li></ul></ul>
  8. 8. Bending Shader
  9. 9. Shading <ul><li>종류 </li></ul><ul><ul><li>Per-pixel shading + Vertex shading </li></ul></ul><ul><ul><li>Ambient Lighting, Edge Smoothing </li></ul></ul><ul><li>Trunk( 줄기 ) : Lambert + Phong </li></ul><ul><li>Foliage( 잎 ) </li></ul><ul><ul><li>앞면과 뒷면의 Rendering 이 다름 </li></ul></ul><ul><ul><li>잎은 Alpha Test, 풀은 Alpha Blending </li></ul></ul><ul><ul><li>Subsurface Scattering Approximation </li></ul></ul><ul><ul><ul><li>우유 , 나뭇잎 , 피부 등 반투명한 굴절 반사 </li></ul></ul></ul><ul><ul><ul><li>Artist 가 Texture Map 에 생성 (128x128 등 낮은 해상도 ) </li></ul></ul></ul>
  10. 10. Ambient Lighting <ul><li>CryEngine 의 Ambient Light 종류 </li></ul><ul><ul><li>Outdoor </li></ul></ul><ul><ul><li>Indoor </li></ul></ul><ul><ul><li>Low-Spec ( 반구 조명 이용 ) </li></ul></ul><ul><ul><ul><li>Precomputed Ambient Occlusion 이용 </li></ul></ul></ul>
  11. 11. Edge Smoothing <ul><li>Alpha Test 의 Side Effect -> Hard Edge </li></ul><ul><li>Post Processing 으로 처리 </li></ul><ul><ul><ul><li>Bi-Linear Filter </li></ul></ul></ul>
  12. 13. Shading Shader
  13. 14. Conclusion <ul><li>Vegetation 외 Hair, Cloth 등에도 사용 가능 </li></ul><ul><li>Crysis 의 모든 Shading 은 World Space 에서 이루어져서 의미가 있음 </li></ul><ul><li>Shading Kernel 로의 진입을 최소화 해야함 </li></ul><ul><li>Lights, Ambient 계산 , Occlusion Mapping, Decal 등이 내부적으로 감추어짐 </li></ul><ul><ul><li>사용자는 Initialize Custom Data, Per Light Computation, Ambient Lighting, Shading Finalization 의 4 가지 처리만 가능 </li></ul></ul>

×