3D 렌더링 파이프 라인

Unity3D 2015. 1. 5. 11:34
반응형

http://www.slideshare.net/ddayin/0911-5184655

 

3D세계에 대한 기하학적 표현과 이세계를 바라보는 관점을 정의하는 가상 카메라를 이용해 2D이미지를 만들어 내는 과정

 

 

 

로컬변환 -> 월드 변환 -> 뷰 변환 -> 후면 추려내기 -> 조명 -> 테셀레이션 -> 클리핑 -> 투영 -> 뷰포트 -> 래스터라이즈 -> 텍스쳐 적용 -> 렌더 벡엔드 -> 출력

 

1. 로컬 변환

모델 하나의 고유 좌표계(모델좌표계)

 

2. 월드변환

로컬 스페이스의 개체들을 월드 좌표계로 변환 (이동, 회전, 크기변형)

 

3. 뷰 젼환 (카메라변환)

카메라를 좌표계의 원점으로 변환 (모든 개체들 변환)

 

4. 후면 추려내기 (back-face culling)

두르기 순서의 시계방향에 지정된 폴리곤을 전면(front-face)폴리곤으로 설정

 

5. 조명

광원 벡터, 시선 벡터, 법선 텍터등 조명 계산식을 이용해 정점의 색상 계산

 

6. 테셀레이션 (Tesselation)

GPU에서 정점을 자유 자재로 증가, 감소

 

7. 클리핑(clipping)

시야를 벗어나는 폴리곤을 잘라냄 (시야절두체 기준)

 

8. 투영(projection)

3차원에서 2차원을 얻는 과정 (원근 투영, 직교투영)

 

9. 뷰포트(vireport) 변환(screen mapping)

윈도우 화면 좌표로 변환

 

10. 래스터라이즈(triangle setup)

변환이 끝난 폴리곤을 화면에 보여줄 픽셀로 계산

 

11. 텍스쳐 적용

UV좌표계 이용 (0~1)

 

12. 렌더 백엔드

비디오 메모리에 써넣어도 좋을것인가?

알파테스트 (Alpha Test)

스텐실 테스트 (Stencil Test)

깊이 테스트 (Z Buffter Test)

비디오 메모리에 어떻게 써엏을 것인가?

알파블렌딩

안개

안티앨리어싱

 

반응형

'Unity3D' 카테고리의 다른 글

Vector3.Dot  (0) 2015.01.15
Shader in Unity ( CG, ShaderLab, HLSL, GLSL )  (0) 2015.01.05
Doxgen과 Graphviz  (0) 2014.11.27
litJson에서 %문자가 파싱 되지 않는 현상  (0) 2014.11.26
List 검색  (0) 2014.11.26
: