SlideShare a Scribd company logo
Chapter 6. Fire in the “Vulcan” DemoGPU Gems 1http://cafe.naver.com/shader임용균 (guardin@naver.com)
Creating Realistic Flamesfully procedural flamesScreen space distortion based flames
Creating Realistic FlamesParticle System 으로 많은 화염을 표현 하기에는 Polygon이 너무 많이 필요함.물리 연산도 무시하지 못 할 수준임.Video-Textured Sprite(Animated Sprite) 를 사용하자.
Implementing Animated Sprites2개의 화염, 1개의 연기 에니메이션(각 64프레임)1개의 떠다니는 불똥 에니메이션(64프레임)총 256프레임프레임당 256x256 텍스쳐일때Uncompressed Texture : 67MBCompressed Texture (DXT1) : 8.4MB
Custom Smoke GeneratorAnimated Sprite로는 연기를 표현하기가 쉽지 않았다.적절한 조명, 색 등등으로 인한 연기의 적절한 영상 만들기 어려움.결국 Particle System을 이용하기로 함.불 환경에 맞게 lighting을 미세 조정하여 색을 제어함.Smoke Particle이 x축에서 회전하게 함Smoke가 자기 자신으로 말려 들어가는 듯한 효과를 손쉽게 구현.
Adding Variety to the Flames효과에 사용할 수 있는 에니메이션의 수가 적다면 같은 이미지가 반복되는 것이 문제가 될 수 있다.Animated Sprite도 Particle System화 하여 크기, 위치, 수명, 시작 프레임, 알파값 등을 설정된 값 범위에서 무작위로 설정한다.Animated SpriteParticle의 축을 뒤집어 다양성을 증가시킨다.
Storing the AnimationVolume texture (3D texture) 를 사용하는 것이 유용함.Z-texture coordinate를 증가시키는 것이 곧 에니메이션을 재생하는 것임.압축된 256x256x256 B8G8R8A8 texture를 사용함. (16mb)
Blending Flames and Smoke처음에 additive blending 을 사용함.(srcblend = one, destblend = one)Sprite들을 독립적으로 그릴 수 있음.하지만 결과물이 사실적이지 않으며 카툰 같아짐.화염과 연기를 섞는 것이 더 까다로워 진다.Alpha Blending을 사용함. (srcblend = srcalpha, destblend = invsrcalpha)위의 문제점들이 해결됨.파티클을 프레임마다 정렬하여 렌더링 해야 함.하지만 그 성능상의 영향은 무시해도 좋을 정도 이다.
Particle Motion화염 근원지가 움직일 경우 그 간격을 채우기에는 particle이 충분하지 않고 따로 떨어져 있는 particle은 효과를 망친다.불이 연속되게 유지하기 위해 불과 발화체의 가중치를 이용하였다.처음 생성 했을 때 가중치가 높아 발화체가 움직이면 불도 같이 움직인다.particle이 오래 될 수록 가중치가 낮아져 같이 움직이는 정도가 줄어든다.
PerformanceVideo-textured 빌보드는 막대한 양의 픽셀 처리 능력을 소비함.Layer Composition을 이용해 해결함.
Layer Composition화염을 저해상도 버퍼(1/4)에 렌더링 한 후 원래의 Scene에 합성한다.전체 이미지 품질의 저하는 미비했으나 성능 향상은 매우 컸다.
Custom Sprite정사각형 Particle Sprite는 불 모양에는 낭비가 심했음. (보통 1/3정도만 차지)화염에 더 잘 맞는 직사각형 sprite를 사용함.각 프레임에 맞는 최적의 직사각형을 생성한 후 particle 위치를 기준으로 sprite 중심에 오프셋을 더하여 맞춘다.
Post-Rendering Effectsglow, film grain, heat shimmer (distortion)
Glow첫 번째 패스에서 x축에 8픽셀 넓이 Blurring두 번째 패스에서y축에 8픽셀 넓이 Blurring최종 Blurring될 부분을 선택하기 위해 Alpha 채널을 이용함.
Heat ShimmerRender target texture에 “heat shimmer” 즉 왜곡(distortion) 정보를 렌더링 한다. (왜곡 정보는 heat shimmer texture에 있음.)최종 혼합 과정에서 “rendered scene” 픽셀의 u,v좌표값에heat render target texture에 저장되어 있는 red, green값을 더하여 왜곡된 좌표를 해당 픽셀의 color값으로 사용한다.
Heat Shimmer
Grain
Conclusion

More Related Content

PDF
Unite2015 probelight(150417)
PDF
Lighting in Stingray
PDF
Devtree lightmapping unity5_2_1stday
PDF
Gametech2015
PDF
Kgc2013 defense technica_converting_이상윤
PPT
NDC2015 유니티 정적 라이팅 이게 최선인가요
PPTX
제노블레이도 2 ray marching을사용한 구름 표현
PPTX
크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)
Unite2015 probelight(150417)
Lighting in Stingray
Devtree lightmapping unity5_2_1stday
Gametech2015
Kgc2013 defense technica_converting_이상윤
NDC2015 유니티 정적 라이팅 이게 최선인가요
제노블레이도 2 ray marching을사용한 구름 표현
크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)

What's hot (20)

PPTX
영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014
PPTX
니시카와젠지의 3 d 게임 팬을 위한 ps4
PPTX
Ue4 에서의 환경변화 구현
PDF
Devtree illu
PPTX
자동 동적 3차원 입체시각
PPTX
니시카와젠지의 3 d게임 팬을 위한「gravity daze」그래픽스 강좌
PPTX
유니티 Rpg게임배경 스타트업 6번째 스터디자료
PDF
LCD Monitor 선택 가이드와 Gamma의 이해
PPTX
Deferred decal
PDF
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
PPTX
2009-2016 기본기(손맵)의 중요성
PDF
Game Visual Art Technologies
PPTX
[1023 박민수] 깊이_버퍼_그림자_1
PDF
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
PPTX
PPT
NDC2015 광개토태왕 테크니컬 아트
PPTX
Unity cookbook 17
PPTX
[Ndc11 박민근] deferred shading
PDF
Ndc17 - 차세대 게임이펙트를 위해 알야아할 기법들
PDF
유니티 게임 그래픽스 아트 개발 사례 분석
영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014
니시카와젠지의 3 d 게임 팬을 위한 ps4
Ue4 에서의 환경변화 구현
Devtree illu
자동 동적 3차원 입체시각
니시카와젠지의 3 d게임 팬을 위한「gravity daze」그래픽스 강좌
유니티 Rpg게임배경 스타트업 6번째 스터디자료
LCD Monitor 선택 가이드와 Gamma의 이해
Deferred decal
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
2009-2016 기본기(손맵)의 중요성
Game Visual Art Technologies
[1023 박민수] 깊이_버퍼_그림자_1
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2015 광개토태왕 테크니컬 아트
Unity cookbook 17
[Ndc11 박민근] deferred shading
Ndc17 - 차세대 게임이펙트를 위해 알야아할 기법들
유니티 게임 그래픽스 아트 개발 사례 분석
Ad

Similar to Gpu Gems 1 Chapter 6 (19)

PDF
[Kgc2013] 모바일 엔진 개발기
PDF
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
PDF
Ndc12 이창희 render_pipeline
PPTX
gametech 2012 Gladius project
PDF
유인호, <드래곤하운드>비주얼이펙트 연출, NDC2019
PDF
[Shader study] the rendering technology of lords of the fallen - 발표메모(14.06.23)
PDF
[KGC2014] 울프나이츠 엔진 프로그래밍 기록
PPT
KGC 2007 소프트웨어 렌더러 개발
PDF
06_HDR 소개
PDF
[Kgc2012] deferred forward 이창희
PDF
06_게임엔진 활용팁
PDF
윈도우 매니저 스터디: 1. 윈도우 매니저 출력
PPT
3D Engine (ICON 2007)
PPTX
20120713 ch12
PDF
multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트
PPTX
모바일 엔진 개발기
PDF
Unity3D로 풀3D web mmorpg 만들기
PPTX
유니티의 툰셰이딩을 사용한 3D 애니메이션 표현
PPTX
14장 입자 시스템과 스트림 출력.pptx
[Kgc2013] 모바일 엔진 개발기
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
Ndc12 이창희 render_pipeline
gametech 2012 Gladius project
유인호, <드래곤하운드>비주얼이펙트 연출, NDC2019
[Shader study] the rendering technology of lords of the fallen - 발표메모(14.06.23)
[KGC2014] 울프나이츠 엔진 프로그래밍 기록
KGC 2007 소프트웨어 렌더러 개발
06_HDR 소개
[Kgc2012] deferred forward 이창희
06_게임엔진 활용팁
윈도우 매니저 스터디: 1. 윈도우 매니저 출력
3D Engine (ICON 2007)
20120713 ch12
multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트
모바일 엔진 개발기
Unity3D로 풀3D web mmorpg 만들기
유니티의 툰셰이딩을 사용한 3D 애니메이션 표현
14장 입자 시스템과 스트림 출력.pptx
Ad

More from yong gyun im (8)

PPTX
Fast skin shading
PPT
Rendering realistic Ice objects
PPT
Rendering realistic Ice objects
PPTX
Fur rendering
PPTX
Sumie rendering
PPTX
Inferred Lighting
PPTX
Gpu Gems 2 Chapter 15 Sketchy Rendering
PPTX
Shaderstudy Motion Blur
Fast skin shading
Rendering realistic Ice objects
Rendering realistic Ice objects
Fur rendering
Sumie rendering
Inferred Lighting
Gpu Gems 2 Chapter 15 Sketchy Rendering
Shaderstudy Motion Blur

Gpu Gems 1 Chapter 6

  • 1. Chapter 6. Fire in the “Vulcan” DemoGPU Gems 1http://cafe.naver.com/shader임용균 (guardin@naver.com)
  • 2. Creating Realistic Flamesfully procedural flamesScreen space distortion based flames
  • 3. Creating Realistic FlamesParticle System 으로 많은 화염을 표현 하기에는 Polygon이 너무 많이 필요함.물리 연산도 무시하지 못 할 수준임.Video-Textured Sprite(Animated Sprite) 를 사용하자.
  • 4. Implementing Animated Sprites2개의 화염, 1개의 연기 에니메이션(각 64프레임)1개의 떠다니는 불똥 에니메이션(64프레임)총 256프레임프레임당 256x256 텍스쳐일때Uncompressed Texture : 67MBCompressed Texture (DXT1) : 8.4MB
  • 5. Custom Smoke GeneratorAnimated Sprite로는 연기를 표현하기가 쉽지 않았다.적절한 조명, 색 등등으로 인한 연기의 적절한 영상 만들기 어려움.결국 Particle System을 이용하기로 함.불 환경에 맞게 lighting을 미세 조정하여 색을 제어함.Smoke Particle이 x축에서 회전하게 함Smoke가 자기 자신으로 말려 들어가는 듯한 효과를 손쉽게 구현.
  • 6. Adding Variety to the Flames효과에 사용할 수 있는 에니메이션의 수가 적다면 같은 이미지가 반복되는 것이 문제가 될 수 있다.Animated Sprite도 Particle System화 하여 크기, 위치, 수명, 시작 프레임, 알파값 등을 설정된 값 범위에서 무작위로 설정한다.Animated SpriteParticle의 축을 뒤집어 다양성을 증가시킨다.
  • 7. Storing the AnimationVolume texture (3D texture) 를 사용하는 것이 유용함.Z-texture coordinate를 증가시키는 것이 곧 에니메이션을 재생하는 것임.압축된 256x256x256 B8G8R8A8 texture를 사용함. (16mb)
  • 8. Blending Flames and Smoke처음에 additive blending 을 사용함.(srcblend = one, destblend = one)Sprite들을 독립적으로 그릴 수 있음.하지만 결과물이 사실적이지 않으며 카툰 같아짐.화염과 연기를 섞는 것이 더 까다로워 진다.Alpha Blending을 사용함. (srcblend = srcalpha, destblend = invsrcalpha)위의 문제점들이 해결됨.파티클을 프레임마다 정렬하여 렌더링 해야 함.하지만 그 성능상의 영향은 무시해도 좋을 정도 이다.
  • 9. Particle Motion화염 근원지가 움직일 경우 그 간격을 채우기에는 particle이 충분하지 않고 따로 떨어져 있는 particle은 효과를 망친다.불이 연속되게 유지하기 위해 불과 발화체의 가중치를 이용하였다.처음 생성 했을 때 가중치가 높아 발화체가 움직이면 불도 같이 움직인다.particle이 오래 될 수록 가중치가 낮아져 같이 움직이는 정도가 줄어든다.
  • 10. PerformanceVideo-textured 빌보드는 막대한 양의 픽셀 처리 능력을 소비함.Layer Composition을 이용해 해결함.
  • 11. Layer Composition화염을 저해상도 버퍼(1/4)에 렌더링 한 후 원래의 Scene에 합성한다.전체 이미지 품질의 저하는 미비했으나 성능 향상은 매우 컸다.
  • 12. Custom Sprite정사각형 Particle Sprite는 불 모양에는 낭비가 심했음. (보통 1/3정도만 차지)화염에 더 잘 맞는 직사각형 sprite를 사용함.각 프레임에 맞는 최적의 직사각형을 생성한 후 particle 위치를 기준으로 sprite 중심에 오프셋을 더하여 맞춘다.
  • 13. Post-Rendering Effectsglow, film grain, heat shimmer (distortion)
  • 14. Glow첫 번째 패스에서 x축에 8픽셀 넓이 Blurring두 번째 패스에서y축에 8픽셀 넓이 Blurring최종 Blurring될 부분을 선택하기 위해 Alpha 채널을 이용함.
  • 15. Heat ShimmerRender target texture에 “heat shimmer” 즉 왜곡(distortion) 정보를 렌더링 한다. (왜곡 정보는 heat shimmer texture에 있음.)최종 혼합 과정에서 “rendered scene” 픽셀의 u,v좌표값에heat render target texture에 저장되어 있는 red, green값을 더하여 왜곡된 좌표를 해당 픽셀의 color값으로 사용한다.
  • 17. Grain