컴퓨터공학/Computer Graphics

Graphics Pipeline Architecture

Pyxis 2024. 7. 16. 16:25

[ Computer Graphics Pipeline Architecture ]

 

[ Physical Approach ]

- Ray Tracing

영역 밖으로 나갈 때까지 Object 끼리 무한히 반사되고 반사되고... 투과도 가능

→ 다중 반사, 투과

 

단점 : 굉장히 느림 (연산되는 광선의 양이 많음)

Real-time에서는 거의 사용할 수 없다.

 

[ Practical Approach ]

Object들을 한 번에 하나의 Object만 처리함

이렇게 해도 인간의 눈은 어색하게 느끼지 않는다.

Physical Approach에선 Object와 다른 Object간에 빛이 반사되고 투사되는게 가능했는데, 이 방식은 되지 않는다.

 

[ Pipeline Architecture ]

[ Vertices ] → [ Vertex Processor ] → [ Clipper and Primitive Assembler ] → [ Rasterizer ] → [ Fragment Processor ] → [ Pixel ] → [ Display ]

 

모든 단계들이 하드웨어적으로 구현되어 있음.

 

[ Vertex Processing ]

주요 역할로 좌표 변환들

Vertex당 Color 처리도 함

 

 

[ Primitive Assembly ]

Vertices들을 Primitive(line, polygon, surface)로 Assemble하는 과정

 

[ Clipping ]

View Frustum의 경계에 걸쳐져있는 부분들의 외부를 제거, 잘라내는 과정

 

 

[ Rasterization ]

Clipping 되지 않았다면, 보여야하므로 이제 Pixel이 되어야 한다.

어떤 Color로 어디에 찍혀야 ㅎ는지 계산

Pixel로 바꿔주는 과정

Fragments : potential pixels

 

어디에 찍혀야 하는지 위치를 갖고 있고, 무슨 색, Depth를 Frame Buffer에 갖고 있음

색상이 보간(Interpolation) 된다.

Assemble됐던 Primitive들이 Pixel로 변환됨.

 

 

[ Fragment Processing ]

빨강에서 빛에 의해 밝은 빨강, 어둡다면 어두운 빨강으로 변환

Texture Mapping도 이뤄짐.

Vertex Color Interp

카메라에 의해 Hidden Surface Removal도 일어남.

 

 

Scan Conversion이 이뤄지고 Clipping이 이뤄지는 경우가 있고, 그 반대도 있다.

1) View Frustum에 걸쳐져있는 Primitives

Rasterization 전에 미리 Clipping

 

2) 복잡한 Text 등

일단 Rasterization을 해서 Pixel로 변환하고, 그 다음에 화면 밖의 Text를 지움.