그래픽렌더링파이프라인 -...

12
1 그래픽 렌더링 파이프라인 발표자 : 김경석 2 랜더링 파이프 라인………………………………………………3 OpenGL과 Direct3D의 파이프라인 비교 그림…………………4 아키텍쳐…………………………………………………………..5 응용 단계………………………………………………………….7 기하 단계………………………………………………………….9 모델 변환과 시야 변환…………………………………………….10 조명 처리와 셰이딩………………………………………………..12 투영………………………………………………………………….14 클리핑……………………………………………………………….17 화면 매핑……………………………………………………………18 래스터화 단계……………………………………………………19 파이프라인에 대한 정리…………………………………………22

Upload: others

Post on 15-Jun-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 그래픽렌더링파이프라인 - graphics.hallym.ac.krgraphics.hallym.ac.kr/teach/2008/acg/src/chap02.pdf · 3 렌더링파이프라인 렌더링파이프라인이란? 가상카메라,

1

그래픽 렌더링 파이프라인

발표자 : 김경석

2

랜더링 파이프 라인………………………………………………3

OpenGL과 Direct3D의 파이프라인 비교 그림…………………4

아키텍쳐…………………………………………………………..5

응용 단계………………………………………………………….7

기하 단계………………………………………………………….9

모델 변환과 시야 변환…………………………………………….10

조명 처리와 셰이딩………………………………………………..12

투영………………………………………………………………….14

클리핑……………………………………………………………….17

화면 매핑……………………………………………………………18

래스터화 단계……………………………………………………19

파이프라인에 대한 정리…………………………………………22

Page 2: 그래픽렌더링파이프라인 - graphics.hallym.ac.krgraphics.hallym.ac.kr/teach/2008/acg/src/chap02.pdf · 3 렌더링파이프라인 렌더링파이프라인이란? 가상카메라,

3

렌더링 파이프라인

렌더링 파이프라인이란?가상카메라, 3차원 객체, 광원, 조명 처리 모델, 텍스쳐 등이 주어졌을 때 그것으로부터 2차원 이미지를 만들어 내는 것. 즉, 2D나 3D를2D로 렌더링 하는 것을 말한다.

1. 3D 물체들은 물체의 모양과 외각을 묘사하는 삼각형들의 리스트인 삼각형메쉬들로 표현된다.

2. 가상 카메라는 절두체로 모델링되며 절두체 내의 공간이 카메라가 보는 것이된다.

3. 3D 물체들은 로컬 스페이스 내에 정의되며 모두 하나의 월드 스페이스 시스템으로 옮겨진다. 투영을 위해서는 추려내기와 같은 다른 직업이 필요하며이어 뷰 스페이스로 물체를 변환하고, 카메라를 원점으로 옮기고 양의 z-축을 내려다보도록 하는 과정이 진행된다. 뷰 스페이스 내에 놓여진 물체들은투영 윈도우로 투영되며, 뷰 포트 변환을 통해 투영 윈도우의 기하 물체가뷰 포트로 변환된다. 최종적으로 래스터라이즈를 거쳐 최종 2D 이미지를 구성하는 각각의 픽셀 컬러가 계산된다

로컬 스페이스 월드 스페이스 뷰 스페이스 후면 추려내기 조명 클리핑 투영 뷰 포트 래스터라이즈

4

OpenGL과 Direct3D의 파이프라인 비교 그림

Page 3: 그래픽렌더링파이프라인 - graphics.hallym.ac.krgraphics.hallym.ac.kr/teach/2008/acg/src/chap02.pdf · 3 렌더링파이프라인 렌더링파이프라인이란? 가상카메라,

5

아키텍쳐

랜더링 파이프라인은 크게 응용단계, 기하단계, 래스터화 단계로나눌수 있음

기하 단계의 아래 그림처럼 파이프라인이 될수 있으며 래스터화 단계의 그림처럼 부분적으로 병렬화가 될 수도 있다.

6

아키텍쳐(계속)

각 단계는 그 자체로 하나의 파이프라인이 된다.

개념적 단계(응용, 기하, 래스터화), 기능적 단계, 파이프라인 단계들은 다른 의미로 구별

하나의 파이프라인 단계는 다른 모든 파이프라인 단계들과 동시에 실행

하나의 파이프라인 단계는 성능 향상 요구를 충족시키기 위해 병렬화 되기도 한다.

랜더링 속도, 즉 이미지의 갱신 속도를 결정하는 것은 가장 느린파이프라인 단계이다. 가장 느린 파이프라인 단계가 어디인지알고 그 단계를 통과할 때 걸리는 시간을 알면 렌더링 속도를 계산할 수 있다. (단위 : 초당 프레임수(ftp) 또는 Hz)

병목 단계 수행 속도 = 20ms이면 렌더링 속도는 1/0.020=50Hz

Page 4: 그래픽렌더링파이프라인 - graphics.hallym.ac.krgraphics.hallym.ac.kr/teach/2008/acg/src/chap02.pdf · 3 렌더링파이프라인 렌더링파이프라인이란? 가상카메라,

7

응용 단계(The Application Stage)

응용 단계는 소프트웨어로 실행되기 때문에 개발자는 이 단계에서 일어나는 모든 것들을 통제할 수 있다.

렌더링될 삼각형의 개수를 줄인다든지 하는 방법으로 기하 단계나 래스터화단계에서 소요되는 시간에 영향을 줄 수 있다.

응용 단계는 소프트웨어로 실행되기 때문에 개발자는 이 단계에서 일어나는 모든 것들을 통제할 수 있다.

소프트웨어 기반으로 구현된 응용단계는 기하 단계나 래스터화 단계에서 하는 것처럼 부분 단계들로 분할할 수 없다.

성능 향상을 위해 여러 개의 프로세서에서 병렬적으로 실행시킬 수는 있다. 이것을 CPU설계에서는 수퍼스칼라(superscala)구조라고 부른다.

Superscala : 파이프라인과 병렬 처리의 장점을 모은 것으로 프로세서가 한사이클 동안 여러 명령어를 동시에 처리할 수 있게 하는 설계이다.

키보드, 마우스 가상현실 헬멧 등과 같은 입력 소스로부터 들어온 입력값을 처리.

8

응용 단계(계속)

충돌 검출 프로세스

응용 단계에서 구현되는 일번적인 프로세스 중의 하나.

두 객체 사이에서 충돌이 검출되면 그에 대한 반응을 생성하여 충돌객체들과 포스 피드백 장치로 보냄.

텍스처 애니메이션

변환을 통한 애니메이션

기하 모핑

그 외의 다른 단계에서 수행될 수 없는 각종 계산 프로세스

계층적 시각 절두체 선별(=가속화 알고리즘)

Page 5: 그래픽렌더링파이프라인 - graphics.hallym.ac.krgraphics.hallym.ac.kr/teach/2008/acg/src/chap02.pdf · 3 렌더링파이프라인 렌더링파이프라인이란? 가상카메라,

9

기하 단계(The Geometry Stage)

기하 단계는 다각형 단위의 조작이나 정점 단위의 조작을 주로담당.

구현 방법에 따라 몇 개의 연속된 기능 단계들이 하나의 파이프라인 단계를 형성할 수도 있고 하나의 기능 단계가 여러 개의 작은 파이프라인 단계들로 분할될 수 있다.

모델 변환과시각 변환

조명처리 투영 클리핑 화면 매핑

기하 단계는 매우 부하가 큰 업무를 수행한다. 만일 광원만으로구성된 경우에도 각각의 정점들에 대략 100개의 고정밀도 부동소수점 연산이 필요.

☞기하 단계를 여러 기능 단계들의 파이프라인으로 분할한 모습

10

모델 변환과 시야 변환(Model and View Transform)

최종적으로 화면에 그려지기까지 하나의 모델은 여러 개의 다른공간 또는 좌표계로 변환된다.

하나의 모델은 자신의 고유한 공간에 존재하는데, 이것은 그 모델에 아무런 변환도 적용되지 않았다는 것을 의미한다.

모델 변환에 의해 변형되는 대상은 모델의 정점과 법선 벡터들.

물체가 모델 좌표에 적용되고 나면 월드 좌표계 또는 월드 공간에 위치

카메라(또는 관측자)가 볼 수 있는 모델들만 렌더링된다.

Page 6: 그래픽렌더링파이프라인 - graphics.hallym.ac.krgraphics.hallym.ac.kr/teach/2008/acg/src/chap02.pdf · 3 렌더링파이프라인 렌더링파이프라인이란? 가상카메라,

11

모델 변환과 시야 변환(계속)

왼쪽 그림에서 카메라는 사용자가 원하는 위치에서 원하는 방향을가리킨다.

시야 변환 후 카메라는 원점으로 이동하고 음의 z축을 지향한다.

클리핑과 투영 연산이 더 단순해지고 빨라진다.

밝은 회색으로 표시된 부분은 시야 볼륨이다.

시야 영역이 절두체로 되어 있으므로 원근 투영이라 가정한다.

12

사용자는 광원을 끄거나 켬으로써 그 광원이 최종 이미지에 영향을 미치도록 할지를 선택할 수 있다.

왼쪽 장면은 조명없이 텍스쳐를 이용한 것이고 오른쪽 장면은 조명을 사용한 것이다. 조명없이 텍스쳐만으로 3차원 효과를 줄 수 있지만, 색상만으로는 어렵다.

조명 처리와 셰이딩(Lighting and Shading)

Page 7: 그래픽렌더링파이프라인 - graphics.hallym.ac.krgraphics.hallym.ac.kr/teach/2008/acg/src/chap02.pdf · 3 렌더링파이프라인 렌더링파이프라인이란? 가상카메라,

13

조명 처리와 셰이딩(계속)

광원에 의해 영향을 받는 모델들은 조명 계산식(lighting equation)을 이용하여 모델의 각 정점 색상을 계산한다. 이 수식은 실세계의 광자와 표면간에 일어나는 현상을 근사적으로 표현한 것이다.표면의 각 정점에서의 색상은 광원의 위치와 속성, 정점의 위치와 법선 벡터, 정점을 포함하고 있는 물체의 특성을 이용하여 계산한다.삼각형의 각 정점들에서의 색상은 화면상에 렌더링되는 시점에서 삼각형 위의 모든 점들로 보간된다. 이 보간기법을 (Gouraud셰이딩)이라 한다.보통 조명 효과는 월드 공간에서 계산된다.광원이 시야 변환에 의해 변환되면 동일한 조명 효과를 시야 공간에서도 얻을 수 있다. 이유는 조명 효과 계산의 대상이 되는 모든 개체들이 시야 공간이라는 동일한 공간으로 변환되는 경우에광원, 카메라, 모델간의 상대적인 관계가 유지되기 때문이다.

14

투영(Projection)

왼쪽은 직교 투영한 것이고, 오른쪽은 원근 투영한 것이다.

Page 8: 그래픽렌더링파이프라인 - graphics.hallym.ac.krgraphics.hallym.ac.kr/teach/2008/acg/src/chap02.pdf · 3 렌더링파이프라인 렌더링파이프라인이란? 가상카메라,

15

투영(계속)

조명 처리를 하고 나면 렌더링 시스템은 투영을 한다. 이것은 시야 영역을 양끝 모서리 점이 (-1,-1,-1)과 (1, 1, 1)의 좌표를 가지는 단위 정육면체로 변환하는 것이다.

이런 단위 정육면체를 정규 시야 영역(canonical view volume)이라 한다.

대표적인 두가지 투영 방법

직교 투영(orthographic projection) 또는 평행 투영(parallel projection)

원근 투영(perspective projection)

16

투영(계속)

직교 투영의 시야 영역은 보통 직사각형 모양이고 이러한 시야 볼륨은단위 정육면체로 변환된다.

직교 투영의 주된 특징은 평행선이 변환 후에도 평행을 유지한다.

이 변환은 평행 이동과 크기 변환의 조합으로 표현된다.

원근 투영은 물체가 카메라에서 멀어질수록 작게 보인다.

평행선은 수평선에서 한 점으로 수렴할 수도 있다.

원근 투영 변환은 인간이 물체의 크기를 인지하는 방법을 흉내낸 것이라고 할 수 있다.

절두체(frusturn)라 불리는 시야 영역은 직사각형의 바닥면을 가지고 정점이 잘려진 피라미드 모양을 가진다. 이 절두체도 단위 정육면체로 변환된다.

직교 투영과 원근 투영 변환은 모두 4x4 행렬로 구성될 수 있으며, 변환후에 모델은 정규화된 장치 좌표계(normalized device coordinate)에놓여 있다라고 한다.

Page 9: 그래픽렌더링파이프라인 - graphics.hallym.ac.krgraphics.hallym.ac.kr/teach/2008/acg/src/chap02.pdf · 3 렌더링파이프라인 렌더링파이프라인이란? 가상카메라,

17

클리핑(Clipping)

전체 또는 일부가 시야 영역에 포함되는 기하 요소들만이 래스터화 단계로 전달되어야 한다. 래스터화 단계에서는 그것들을 화면에 그려준다.

시야 영역에 완전히 포함되는 기하 요소들은 그대로 다음 단계로넘어가고 완전히 벗어나 있는 기하 요소들은 렌더링되지 않으므로 다음 단계로 넘기지 않는다.

시야 볼륨 내에 부분적으로 포함되는 기하 요소들은 클리핑이 필요하다.

18

화면 매핑(Screen Mapping)

시야 영역의 안족에 있는(클리핑된) 기하 요소들만이 화면 매핑단계로 전달된다.

이 단계에 진입할 때까지 좌표는 아직 3차원이다.

각 기하 요소의 x와 y좌표들은 화면 좌표계(screen coordinates)를 형성하기 위해 변환된다.

z좌표를 포함한 화면 좌표계를 윈도우 좌표계(window cooedinates)라 한다.

x1<x2 이고 y1<y2이면 (x1, y1)이 최소 모서리이고, (x2, y2)가최대 모서리로 윈도우 내에 렌더링 된다. 이런 화면 매핑은 크기변환 연산과 평행 이동을 연이어서 하는 것이라 생각할 수 있다.

Page 10: 그래픽렌더링파이프라인 - graphics.hallym.ac.krgraphics.hallym.ac.kr/teach/2008/acg/src/chap02.pdf · 3 렌더링파이프라인 렌더링파이프라인이란? 가상카메라,

19

래스터화 단계(The Rasterizer Stage)

변환되고 투영된 정점과 색상 그리고 텍스처 좌표가 주어졌을 때기하 단계에서 제공) 래스터화 단계의 주 목적은 이미지를 올바르게 만들어내기 위해 각 픽셀에 정확한 색상을 지정하는 것이다. 이것을 래스터화 또는 스캔 변환이라 부른다.

Z값(깊이값), 하나 또는 두 개의 색상 그리고 각 정점과 연관된 하나또는 그 이상의 텍스처 좌표값을 가지는 화면 공간상의 2차원 정점을 화면상의 픽셀들로 변환하는 것

기하단계 : 다각형 단위 조작, 래스터화 단계 : 픽셀 단위 조작

색상버퍼는 2차원 배열(RGB)

이중 버퍼 기법 : 관측자가 기하 요소들이 래스터화되어 보내지

는 과정을 숨기기 위한 방법.

20

래스터화 단계(계속)

가시성 결정 : 전체 화면 렌더링시 색상 버퍼는 카메라의 관점에서만 보이는 기하 요소들의 색상만을 포함.

Z버퍼 알고리즘 사용(사용 불가시 BSP트리 사용)

z-값 < Z-값 : 그려질 기하 요소의 z-값과 색상으로 대치

z-값 > Z-값 : 기존의 색상 버퍼와 Z-버퍼의 내용 변하지 않음

복잡도 : O(n), n은 렌더링 될 기하 요소 수

각 픽셀의 깊이값만 계산할 수 있다면 어떤 그리기 요소에도 적용

<= 왼쪽의 그림을 텍스처 처리를 해 현실

감의 수준을 높여줌

Page 11: 그래픽렌더링파이프라인 - graphics.hallym.ac.krgraphics.hallym.ac.kr/teach/2008/acg/src/chap02.pdf · 3 렌더링파이프라인 렌더링파이프라인이란? 가상카메라,

21

래스터화 단계(계속)

알파 채널 : 각 픽셀에 대응하는 불투명도 값을 저장

스텐실 버퍼 : OpenGL의 한가지 요소로서 한 픽셀당 한 비트에

서 8비트까지의 정보를 표현

(특수 효과를 만들어내는 강력한 도구)

프레임 버퍼 : 생상 버퍼 + Z-버퍼

누적 버퍼 : Haeberli와 Akeley고안

이 버퍼의 화상들은 일단의 연산자를 이용하요 누적할

수 있음

(모션 블러, 초점 신도, 안티앨리어싱, 부드러운 그림

자)효과

22

파이프라인에 대한 정리

대상 모델 조건

선과 삼각형을 모두 포함하고 있으며, 삼각형들 중에 일부는 2차원 이미지로 텍스쳐가 입혀져 있다. 또한 대상 모델에는 단일 광원에서 나오는 빛이 비춰지며, 장면은 화면상의 윈도우로 원근투영 방식에 의해 렌더링된다.

응용 단계

모델의 일부를 움직여 사용자가 입력ㄷ한 내용이 반영되도록 갱신

카메라 매개변수들을 응용프로그램에 의해 갱신

이 단계의 종단에서 모델을 구성하는 기하 요소들을 파이프라인 다음 단계인 기하 단계로 공급

Page 12: 그래픽렌더링파이프라인 - graphics.hallym.ac.krgraphics.hallym.ac.kr/teach/2008/acg/src/chap02.pdf · 3 렌더링파이프라인 렌더링파이프라인이란? 가상카메라,

23

파이프라인에 대한 정리(계속)

기하 단계앞 단계에서 계산된 시야 변환값에 모델 변환 값을 결합결합된 행렬을 이용하여 모델의 정점들과 법선 벡터들을 변환모델은 시야 공간으로 들어감정점의 조명 효과는 재질, 텍스처, 광원의 속성을 이용하여 계산모델은 투영 변환에 의해 단위 정육면체로 변환정육면체 바깥의 모든 기하 요소 제거단위 정육면체와 교차하는 모든 기하 구조 클리핑함정점들은 화면상의 윈도우로 매핑다각형 다누이 조작이 이루어지면 결과 데이터를 다음 단계인 래스터화로넘김

래스터화 단계모든 기하 요소들이 윈도우상의 픽셀들로 변환텍스처와 연관된 기하 요소들은 거기에 적용된 텍스처(이미지)와 함꼐 렌더링됨가시성은 Z-버퍼 알고리즘으로 검사