Graphics Pipeline Architecture
[ 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를 지움.