Presentation is loading. Please wait.

Presentation is loading. Please wait.

Matrix 및 Rendering 파이프라인

Similar presentations


Presentation on theme: "Matrix 및 Rendering 파이프라인"— Presentation transcript:

1 Matrix 및 Rendering 파이프라인
2017/04/28 박진호

2 Matrix 정의 및 연산 직사각형 모양으로 배열하여 괄호로 묶어놓은 것
표기방법 𝑞 11 𝑞 12 𝑞 13 𝑞 21 𝑞 22 𝑞 23 𝑞 31 𝑞 32 𝑞 33 N차 정사각행렬 → 행과 열의 수가 n개로 같은 행렬 상등 → 두 행렬의 모양이 같고, element가 동일 역행렬 →𝐴𝐵=𝐵𝐴=𝐸, 𝐴= 𝐵 −1 , 𝐵= 𝐴 −1 행렬 곱셈

3 Rendering 파이프라인 Vertex Shader Model Transformation View Transformation
Fixed Pipeline → shader가 없는 상태에서 3D를 2D로 projection하는 과정 𝑥 𝑦 1 = 𝑀 𝑃𝑟𝑜𝑗𝑒𝑐𝑡𝑖𝑜𝑛 𝑀 𝑉𝑖𝑒𝑤 𝑀 𝑀𝑜𝑑𝑒𝑙 𝑥 𝑦 𝑧 1 Model Transformation → 로컬 좌표계를 월드 좌표계로 변환 View Transformation → 카메라 설정 및 카메라를 월드 좌표계의 원점으로 이동 Projection Tranformation → projection효과에 따른 변환( perspective, orthogonal ) Clipping → Viewing Frustum Culling, Back-face culling Viewport Tranfromation → 버퍼 정규화 Rasterization → Pixel 생성 Vertex Shader Model Transformation View Transformation Projection Transformation Clipping Viewport Transformation Rasterization Fragment Shader

4 Model Transformation 로컬 좌표계인 모델, primitive의 vertex를 월드 좌표계로 변환
검은색은 월드 좌표계 주황색은 로컬좌표계 Translation Matrix Scaling Matrix Rotation Matrix

5 View Transformation 𝑛= (𝑓−𝑒) |𝑓−𝑒|
카메라를 월드 좌표계의 원점으로 이동 후 각 모델과 primitive의 vertex를 camera 좌표계로 변환 ( 실제 계산은 월드좌표계의 원점을 카메라 원점으로 이동 ) 𝑉= 𝑊 −1 = ( 𝑇 𝑤 𝑅 𝑤 ) −1 = 𝑅 𝑤 −1 𝑇 𝑤 −1 e = camera의 위치, f = camera가 바라보는 위치 n = camera가 바라보는 방향, u = camer의 up 벡터 𝑛= (𝑓−𝑒) |𝑓−𝑒| 𝑣= 𝑣 0 |𝑣 0| , 𝑣 0 =𝑢−𝛼𝑛, 𝛼= (𝑢∙𝑛) |𝑛| 𝑤=𝑛×𝑣 𝑅 𝑤 = 𝑊 𝑥 𝑊 𝑦 𝑉 𝑥 𝑉 𝑦 −𝑛 𝑥 −𝑛 𝑦 𝑊 𝑧 𝑉 𝑧 −𝑛 𝑧 𝑇 𝑤 = 𝑒 𝑥 𝑒 𝑦 𝑒 𝑧 1

6 Projection Transformation
3D 오브젝트를 2D공간으로 투영 𝑀 𝑝 = − − 𝑓𝑜𝑐𝑢𝑠 𝑓𝑜𝑐𝑢𝑠=𝑐𝑎𝑚𝑒𝑟𝑎에서 view plane까지 거리 𝑀 𝑝 𝑃= 𝑥 𝑦 −1 𝑧 𝑓𝑜𝑐𝑢𝑠 = 𝑥∙( 𝑓𝑜𝑐𝑢𝑠 𝑧 ) 𝑦∙( 𝑓𝑜𝑐𝑢𝑠 𝑧 ) − 𝑓𝑜𝑐𝑢𝑠 𝑧 1

7 Clipping Viewing frustum 밖이나 보이지 않아도 되는 triangle을 제외
- back face culling, view frustum culling, Occlusion Culling back face culling - 각 triangle의 normal vector가 camera방향이 아니면 그리지 않음 . View frustum culling - View frustum밖의 triangle은 그리지 않음. - 표시할 object를 하나의 트리 구조로 만들어 각 node의 bounding volume이 view frustum에 포함되지 않으면 하위 node도 포함되지 않음. Occlusion Culling - 벽 뒤의 object들은 view frustum에 포함되어 있더라도 많은 경우 그릴 필요 없음 - 실외의 경우 Occlusion Culling의 계산량과 그려질 triangle의 축소가 비슷비슷하여 크게 필요치 않음 - 실내의 경우 창문, 문에서 보이는 object가 전체가 아니므로 미리 PVS( potential visible set )을 계산하여 보여지지 않는 부분 을 제거한 후 사용. ( portal rendering )

8 Viewport Transformation & Rasterization
View volume 계산 - culling이 완료된 후 view frustum을 3축이 -1에서 1사이의 cube로 변환 Rasterization - device의 좌표계( 윈도우 기준 화면 가운데가 0, 0 )로 변환 및 frame buffer( color buffer )에 저장


Download ppt "Matrix 및 Rendering 파이프라인"

Similar presentations


Ads by Google