SlideShare a Scribd company logo
Voxel Rendering
                         간단소개


  김성익 (http://gamecode.org)
                 2009/10/25
내용
• Voxel 렌더링 소개
 – Voxel Field 렌더링
   • Marching Cube 를 이용한 ISO Surface 렌더링
 – Voxel Volume 렌더링
   • Ray Casting
   • Sparse Voxel Octrees
Voxel Field 렌더링
• Voxel 데이터
   – 3차원 Array
   – Field 값
• 렌더링
   – 값이 일정한 표면을 렌더링

• ISO Bar
   – Marching Square Algorithm
• ISO Surface                    http://www.geisswerks.com/about_terrain.html


   – Marching Cube Algorithm
ISO Bar (1)
• 데이터 : 2d 그리드에 값
• 값이 일정한 지역을 라인으로 렌더링 (등고선)




 http://www.econym.demon.co.uk/isotut/isobars.htm
ISO Bar (2)
• Marching Square
   – 인접한 4개의 점으로 이루어진 유닛 단위
   – 표면값보다 크거나 같은지, 혹은 작은지에 따라 라인이 생기는 패턴이
     결정
   – 패턴이 대칭 및 회전하는 특성 (패턴의 수를 줄일 수 있다)




   http://www.cs.montana.edu/bnct/publications/cory/thesis.html




   – 값의 비율에 따라 라인 위의 버텍스 위치 결정
ISO Surface(1)
• ISO-Bar 의 확장형
• 데이터 : 3차원 필드 데이터
• 값이 일정한 표면을 렌더링

• Marching Cube 알고리즘
   – 인접한 버텍스를 공유하는 유닛
   – 256가지 타입의 패턴
   – 패턴화 (14가지 고유 패턴)


• 3D Voxel Field => 표면 Polygon 화
   – 전처리 가능 (로딩 타임)
ISO Surface(2)
• 적용 사례
  – Crysis Voxel Terrain
  – Blob
  – GPU Gems 3
    Generating Complex Procedural Terrains Using the GPU



• 특징
  – 3D Voxel 데이터를 손쉽게 표현 가능
       • 동굴 같은 지형 표현 가능
       • 손쉬운 터레인 편집 (3d 어레이 값만 간단하게 에디팅)
  – DCC툴 부재로 인한 인하우스 에디터 필요
  – 텍스처 매핑의 어려움
       • Nvidia Case : UV 는 normal 활용, Splatting 기법 활용
       • 각 유닛 별 별도의 UV 채널을 설정하는 방법도 가능
Voxel Volume Rendering
• 데이터
   – 복셀
   – 3차원 컬러 데이터
• 렌더링
   – 화면에 복셀 이미지를 렌더링
• 차세대 렌더링 기법

• Ray Casting
   – Classic Game Ray casting
   – Volume Ray casting
• Octree
• Sparse Voxel Octree
RayCasting
•   울펜스타인 3d, Doom 시절의 Ray Casting
    – 바닥 + 벽 + 천정으로 분리
    – 벽 부분을 Raycasting
    – 데이터 : 벽 2d 맵
       • 시야 방향으로 데이터 탐색해서 벽 정보 계산
       • 맵 기반으로 충돌 지점 계산
       • 가로 라인에 대해서만 계산 (속도가 빠름)
    – 적은 2d 정보를 활용해서 월드의 모든 벽 정보 표현
Volume Raycasting (1)
• 3D Voxel 데이터를 검색
• 뷰에서 Ray 를 쏘아서 Voxel 데이터 상의 충돌 지점을 검출하여 해
  당 픽셀을 렌더링




• 많은 셈플링이 필요함
Volume Raycasting(2)
• 적용예   (http://www.daimi.au.dk/~trier/?page_id=98)

  – 많은 샘플링이 필요함
Volume Raycasting (3)
• 특징
  – 복잡한 이미지를 간단한 알고리즘으로 구현할 수 있다
  – 빛의 방향에서의 레이케스팅을 통해서 그림자를 판단할 수 있다
  – 투명한 표면처리가 가능하다
       • 표면의 두께를 판단할 수 있다
       • 진짜 Subsurface Scattering
  – 차세대 렌더링 퀄리티 !!!

  – 용량이 크다
       • 1024x1024x1024 크기의 RGBA
         데이터는 무려 4 Giga Byte
  –   연산량이 많다
Voxel Octree
• Voxel 3d 이미지의 치명적인 단점 : 용량
• 용량이 크다 = 샘플링을 많이 해야 한다 = 많은 연산이 필요하다

• Octree 를 활용
  – 용량을 줄인다 => 연산량을 줄인다
     • 속도를 높일 수 있다
  – 단, GPU로 구현 난이도 상승
Sparse Virtual Texture
• Sparse Virtual Texture (aka MEGA texture)
   – 운영체제의 가상 메모리 운영하는 것과 비슷
       • 인덱스화 테이블화
   – 철저하게 화면에 맞는 디테일의 데이터만 적제 (블럭단위 LOD)
       • 텍스처 사용량 최소화
       • 비주얼 손실 굉장히 적음
       • 속도 느리지 않음
           – 텍스처 메모리 활용도 증가로 오히려 빠를 수 있음
   – 스트리밍화 (초대형 텍스처 사용 가능)
   – 구현의 복잡함
       • 테이블화
       • 복잡한 텍스처 매니징 시스템
           – 거의 OS 가상 메모리 매니징급 처리
   – Crysis, Unreal3에 적용되어 있음
Sparse Voxel Octree (1)
•   차세대 렌더링 기법으로 지목
    – 크라이텍 GDC 2009 유럽, KGC 2009 키노트
•   Voxel 도 SVT와 유사하게 테이블화
    –   텍스처 MipMap 개념과 유사
    –   Octree 구조
    –   가상 메모리와 유사한 페이지 테이블
    –   스트리밍 로딩
    –   픽셀 압축
• SVO (aka Giga Voxel)
    – Jon Olink (id soft)
    –   http://www.youtube.com/watch?v=VpEpAFGplnI
Sparse Voxel Octrees(2)
•   특징
    –   3D 복셀 이미지 렌더링
    –   화면에 보일 최적의 메모리 사용
    –   적은 메모리 = 적은 셈플링 = 적은 연산
    –   복잡한 픽셀 셰이더 연산
         • But, 현 세대 하드웨어도 렌더링 가능
    – 적용 가능한 Asset제작을 위한 DCC툴 부재
         • 인하우스 툴 개발 필요
         • 폴리곤 => Voxel 화
    – 해결 과제 : 레스터라이즈 시스템과의 궁합
         • Depth 버퍼 문제
         • 볼륨 문제
•   참고 : Zbrush (미래의 비전 제시???)
    – 이미 현 시대에서 활용되고 있음
    – 폴리곤 레스터라이징 방식으로는 따라하기
      힘든 뷰포트상 모델 렌더링 퀄리티
    – 충격적인 퀄리티의 게임 등장 예상???         ZBRUSH Viewport http://vaelberx.egloos.com/1849742
Q/A

More Related Content

PPTX
190909 ambient
PDF
08_Marching Cube Terrains
PPTX
아일렛 온라인에서 사용한 블럭 렌더링 소개
PDF
[GEG1] 3.volumetric representation of virtual environments
PPTX
Deferred decal
PDF
Cascade Shadow Mapping
PDF
Voxelizaition with GPU
PDF
Voxel based game_optimazation_relelase
190909 ambient
08_Marching Cube Terrains
아일렛 온라인에서 사용한 블럭 렌더링 소개
[GEG1] 3.volumetric representation of virtual environments
Deferred decal
Cascade Shadow Mapping
Voxelizaition with GPU
Voxel based game_optimazation_relelase

What's hot (20)

PDF
언리얼 서밋 2016 프로젝트 A1의 구형 월드 라이팅 기술
PDF
[NDC17] 물리 기반 대기와 구름 만들기
PDF
Sw occlusion culling
PPTX
포인트 셰도우
PDF
2017 12 09_데브루키_리얼타임 렌더링_입문편(3차원 그래픽스[저자 : 한정현] 참조)
PPTX
Bump Mapping
PPTX
게임 개발을 위한 렌더링 기법 한성환
PDF
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
PDF
[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법
PPTX
제노블레이도 2 ray marching을사용한 구름 표현
PDF
IndirectDraw with unity
PPTX
[박민근] 3 d렌더링 옵티마이징_2
PDF
2018.12.22 깊이 버퍼 그림자 매핑
PPTX
[0212 박민수]환경 매핑
PPTX
[IGC 2017] 에픽게임즈 최용훈 - 밤낮으로 부수고 짓고 액션 빌딩 게임 만들기 - 포트나이트
PPTX
2018.02.03 이미지 텍스처링
PPTX
[Gpg1권 조진현] 5.6 하드웨어 범프 매핑
PPTX
Implements Cascaded Shadow Maps with using Texture Array
PPTX
15_TextureAtlas
PPT
Shadow mapping 정리
언리얼 서밋 2016 프로젝트 A1의 구형 월드 라이팅 기술
[NDC17] 물리 기반 대기와 구름 만들기
Sw occlusion culling
포인트 셰도우
2017 12 09_데브루키_리얼타임 렌더링_입문편(3차원 그래픽스[저자 : 한정현] 참조)
Bump Mapping
게임 개발을 위한 렌더링 기법 한성환
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법
제노블레이도 2 ray marching을사용한 구름 표현
IndirectDraw with unity
[박민근] 3 d렌더링 옵티마이징_2
2018.12.22 깊이 버퍼 그림자 매핑
[0212 박민수]환경 매핑
[IGC 2017] 에픽게임즈 최용훈 - 밤낮으로 부수고 짓고 액션 빌딩 게임 만들기 - 포트나이트
2018.02.03 이미지 텍스처링
[Gpg1권 조진현] 5.6 하드웨어 범프 매핑
Implements Cascaded Shadow Maps with using Texture Array
15_TextureAtlas
Shadow mapping 정리
Ad

Viewers also liked (12)

PDF
Unity3D Developer Network Study 3rd
PDF
10_무한 평면과 놀기
PDF
Real-time near-field global illumination based on a voxel model
PPTX
Gpg 1.13 ~ 1.14
PPT
옥트리의 구축
PPTX
[Gpg2권 박민근] 4.4 압축된 축 정렬 경계상자 트리
PDF
Game programing gems 4.11
PPTX
[박민근] 3 d렌더링 옵티마이징_3 공간분할
PDF
Game programing gems 3.4 3.6
PDF
Game programing gems 4.17
PDF
06_게임엔진구성
PDF
천만 사용자를 위한 AWS 아키텍처 보안 모범 사례 (윤석찬, 테크에반젤리스트)
Unity3D Developer Network Study 3rd
10_무한 평면과 놀기
Real-time near-field global illumination based on a voxel model
Gpg 1.13 ~ 1.14
옥트리의 구축
[Gpg2권 박민근] 4.4 압축된 축 정렬 경계상자 트리
Game programing gems 4.11
[박민근] 3 d렌더링 옵티마이징_3 공간분할
Game programing gems 3.4 3.6
Game programing gems 4.17
06_게임엔진구성
천만 사용자를 위한 AWS 아키텍처 보안 모범 사례 (윤석찬, 테크에반젤리스트)
Ad

Similar to 09_Voxel rendering (20)

PDF
Ndc2010 전형규 마비노기2 캐릭터 렌더링 기술
PDF
Real-Time Global Illumination Techniques
PPTX
Graphics 8장 텍스처 적용.pptx
PDF
NDC 2013 : 광택 재질 표현 - Voxel Ray Tracing
PPTX
10강최적화 가속화
PDF
Kgc make stereo game on pc
PDF
[Shader study] the rendering technology of lords of the fallen - 발표메모(14.06.23)
PDF
진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전
PDF
Game Visual Art Technologies
PDF
빠른 렌더링을 위한 오브젝트 제외 기술
PDF
3D 게임 그래픽스의 이해
PDF
유니티 게임 그래픽스 아트 개발 사례 분석
PPT
GameMath-Chapter 08 고급렌더링
PDF
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
PPTX
[14.10.21] Far Cry and DX9 번역(shaderstudy)
PPTX
구세대 엔진 신데렐라 만들기 최종본 유트브2
PDF
[Kgc2013] 모바일 엔진 개발기
PPTX
크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)
PDF
Build Lightmap system
PPTX
Light in screen_space(Light Pre Pass)
Ndc2010 전형규 마비노기2 캐릭터 렌더링 기술
Real-Time Global Illumination Techniques
Graphics 8장 텍스처 적용.pptx
NDC 2013 : 광택 재질 표현 - Voxel Ray Tracing
10강최적화 가속화
Kgc make stereo game on pc
[Shader study] the rendering technology of lords of the fallen - 발표메모(14.06.23)
진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전
Game Visual Art Technologies
빠른 렌더링을 위한 오브젝트 제외 기술
3D 게임 그래픽스의 이해
유니티 게임 그래픽스 아트 개발 사례 분석
GameMath-Chapter 08 고급렌더링
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
[14.10.21] Far Cry and DX9 번역(shaderstudy)
구세대 엔진 신데렐라 만들기 최종본 유트브2
[Kgc2013] 모바일 엔진 개발기
크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)
Build Lightmap system
Light in screen_space(Light Pre Pass)

More from noerror (20)

PPTX
11_웹서비스활용
PDF
NDC08_실시간비주얼그래프편집
PDF
NDC12_Lockless게임서버설계와구현
PPTX
KCGS11_실시간 피사계 심도 렌더링 개선 기법
PDF
11_통계 자료분석 입문
PPTX
11_빠른 개발 가능한 레벨 편집 시스템
PPTX
11_SH를 이용한 실시간 투명 근사법
PDF
ICON08_게임 애니메이션 최적화 기법
PDF
08_게임 물리 프로그래밍 가이드
PDF
08_플래시 맛보기
PDF
08_애니메이션고등학교 게임과 특강
PDF
08_Wxwidgets 소개
PDF
07_PhysX 강체물리 입문
PDF
07_스케일폼 소개
PDF
07_Visual Shader Editor
PDF
06_HDR 소개
PDF
06_게임엔진 활용팁
PDF
06_자동차물리입문(1)
PDF
06_앰비언트어클루전 소개
PDF
KGC06_적응성 있는 자원 흐름 관리
11_웹서비스활용
NDC08_실시간비주얼그래프편집
NDC12_Lockless게임서버설계와구현
KCGS11_실시간 피사계 심도 렌더링 개선 기법
11_통계 자료분석 입문
11_빠른 개발 가능한 레벨 편집 시스템
11_SH를 이용한 실시간 투명 근사법
ICON08_게임 애니메이션 최적화 기법
08_게임 물리 프로그래밍 가이드
08_플래시 맛보기
08_애니메이션고등학교 게임과 특강
08_Wxwidgets 소개
07_PhysX 강체물리 입문
07_스케일폼 소개
07_Visual Shader Editor
06_HDR 소개
06_게임엔진 활용팁
06_자동차물리입문(1)
06_앰비언트어클루전 소개
KGC06_적응성 있는 자원 흐름 관리

09_Voxel rendering

  • 1. Voxel Rendering 간단소개 김성익 (http://gamecode.org) 2009/10/25
  • 2. 내용 • Voxel 렌더링 소개 – Voxel Field 렌더링 • Marching Cube 를 이용한 ISO Surface 렌더링 – Voxel Volume 렌더링 • Ray Casting • Sparse Voxel Octrees
  • 3. Voxel Field 렌더링 • Voxel 데이터 – 3차원 Array – Field 값 • 렌더링 – 값이 일정한 표면을 렌더링 • ISO Bar – Marching Square Algorithm • ISO Surface http://www.geisswerks.com/about_terrain.html – Marching Cube Algorithm
  • 4. ISO Bar (1) • 데이터 : 2d 그리드에 값 • 값이 일정한 지역을 라인으로 렌더링 (등고선) http://www.econym.demon.co.uk/isotut/isobars.htm
  • 5. ISO Bar (2) • Marching Square – 인접한 4개의 점으로 이루어진 유닛 단위 – 표면값보다 크거나 같은지, 혹은 작은지에 따라 라인이 생기는 패턴이 결정 – 패턴이 대칭 및 회전하는 특성 (패턴의 수를 줄일 수 있다) http://www.cs.montana.edu/bnct/publications/cory/thesis.html – 값의 비율에 따라 라인 위의 버텍스 위치 결정
  • 6. ISO Surface(1) • ISO-Bar 의 확장형 • 데이터 : 3차원 필드 데이터 • 값이 일정한 표면을 렌더링 • Marching Cube 알고리즘 – 인접한 버텍스를 공유하는 유닛 – 256가지 타입의 패턴 – 패턴화 (14가지 고유 패턴) • 3D Voxel Field => 표면 Polygon 화 – 전처리 가능 (로딩 타임)
  • 7. ISO Surface(2) • 적용 사례 – Crysis Voxel Terrain – Blob – GPU Gems 3 Generating Complex Procedural Terrains Using the GPU • 특징 – 3D Voxel 데이터를 손쉽게 표현 가능 • 동굴 같은 지형 표현 가능 • 손쉬운 터레인 편집 (3d 어레이 값만 간단하게 에디팅) – DCC툴 부재로 인한 인하우스 에디터 필요 – 텍스처 매핑의 어려움 • Nvidia Case : UV 는 normal 활용, Splatting 기법 활용 • 각 유닛 별 별도의 UV 채널을 설정하는 방법도 가능
  • 8. Voxel Volume Rendering • 데이터 – 복셀 – 3차원 컬러 데이터 • 렌더링 – 화면에 복셀 이미지를 렌더링 • 차세대 렌더링 기법 • Ray Casting – Classic Game Ray casting – Volume Ray casting • Octree • Sparse Voxel Octree
  • 9. RayCasting • 울펜스타인 3d, Doom 시절의 Ray Casting – 바닥 + 벽 + 천정으로 분리 – 벽 부분을 Raycasting – 데이터 : 벽 2d 맵 • 시야 방향으로 데이터 탐색해서 벽 정보 계산 • 맵 기반으로 충돌 지점 계산 • 가로 라인에 대해서만 계산 (속도가 빠름) – 적은 2d 정보를 활용해서 월드의 모든 벽 정보 표현
  • 10. Volume Raycasting (1) • 3D Voxel 데이터를 검색 • 뷰에서 Ray 를 쏘아서 Voxel 데이터 상의 충돌 지점을 검출하여 해 당 픽셀을 렌더링 • 많은 셈플링이 필요함
  • 11. Volume Raycasting(2) • 적용예 (http://www.daimi.au.dk/~trier/?page_id=98) – 많은 샘플링이 필요함
  • 12. Volume Raycasting (3) • 특징 – 복잡한 이미지를 간단한 알고리즘으로 구현할 수 있다 – 빛의 방향에서의 레이케스팅을 통해서 그림자를 판단할 수 있다 – 투명한 표면처리가 가능하다 • 표면의 두께를 판단할 수 있다 • 진짜 Subsurface Scattering – 차세대 렌더링 퀄리티 !!! – 용량이 크다 • 1024x1024x1024 크기의 RGBA 데이터는 무려 4 Giga Byte – 연산량이 많다
  • 13. Voxel Octree • Voxel 3d 이미지의 치명적인 단점 : 용량 • 용량이 크다 = 샘플링을 많이 해야 한다 = 많은 연산이 필요하다 • Octree 를 활용 – 용량을 줄인다 => 연산량을 줄인다 • 속도를 높일 수 있다 – 단, GPU로 구현 난이도 상승
  • 14. Sparse Virtual Texture • Sparse Virtual Texture (aka MEGA texture) – 운영체제의 가상 메모리 운영하는 것과 비슷 • 인덱스화 테이블화 – 철저하게 화면에 맞는 디테일의 데이터만 적제 (블럭단위 LOD) • 텍스처 사용량 최소화 • 비주얼 손실 굉장히 적음 • 속도 느리지 않음 – 텍스처 메모리 활용도 증가로 오히려 빠를 수 있음 – 스트리밍화 (초대형 텍스처 사용 가능) – 구현의 복잡함 • 테이블화 • 복잡한 텍스처 매니징 시스템 – 거의 OS 가상 메모리 매니징급 처리 – Crysis, Unreal3에 적용되어 있음
  • 15. Sparse Voxel Octree (1) • 차세대 렌더링 기법으로 지목 – 크라이텍 GDC 2009 유럽, KGC 2009 키노트 • Voxel 도 SVT와 유사하게 테이블화 – 텍스처 MipMap 개념과 유사 – Octree 구조 – 가상 메모리와 유사한 페이지 테이블 – 스트리밍 로딩 – 픽셀 압축 • SVO (aka Giga Voxel) – Jon Olink (id soft) – http://www.youtube.com/watch?v=VpEpAFGplnI
  • 16. Sparse Voxel Octrees(2) • 특징 – 3D 복셀 이미지 렌더링 – 화면에 보일 최적의 메모리 사용 – 적은 메모리 = 적은 셈플링 = 적은 연산 – 복잡한 픽셀 셰이더 연산 • But, 현 세대 하드웨어도 렌더링 가능 – 적용 가능한 Asset제작을 위한 DCC툴 부재 • 인하우스 툴 개발 필요 • 폴리곤 => Voxel 화 – 해결 과제 : 레스터라이즈 시스템과의 궁합 • Depth 버퍼 문제 • 볼륨 문제 • 참고 : Zbrush (미래의 비전 제시???) – 이미 현 시대에서 활용되고 있음 – 폴리곤 레스터라이징 방식으로는 따라하기 힘든 뷰포트상 모델 렌더링 퀄리티 – 충격적인 퀄리티의 게임 등장 예상??? ZBRUSH Viewport http://vaelberx.egloos.com/1849742
  • 17. Q/A