GameMath-Chapter 08 고급렌더링

36
고급 렌더링 (Rendering) 전체적인 구성 및 소개 텍스처 매핑 환경맵을 이용한 환경효과 환경맵을 이용한 굴절효과 범프맵 카툰 렌더링

Transcript of GameMath-Chapter 08 고급렌더링

Page 1: GameMath-Chapter 08 고급렌더링

고급 렌더링(Rendering)

• 전체적인 구성 및 소개

• 텍스처 매핑

• 환경맵을 이용한 환경효과

• 환경맵을 이용한 굴절효과

• 범프맵

• 카툰 렌더링

Page 2: GameMath-Chapter 08 고급렌더링

전체적인 구성 및 소개

환경맵을 이용한 렌더링

범프맵을 이용한 렌더링

카툰 렌더링

텍스처 매핑을 이용한 렌더링 방법

텍스터 매핑 물체에 입체감을 주기 위해 조명 기법 사용 . 더 세밀하게 캐릭터를 표현하고자 할 때 사용하는 것 .

텍스터 매핑을 사용하면 게임상의 캐릭터가 입은 옷을 상세히 표현 삼각형 폴리곤으로는 표현할 수 없는 상세한 모델

확장된 텍스터 매핑을 사용하면 길거리를 주행하는 차에 주변의 풍경이 반사되는 효과 몬스터의 울퉁불퉁한 피부 등을 표현

텍스쳐 매핑을 이용한텍스쳐 매핑을 이용한고급 렌더링은고급 렌더링은

게임을 화려하게 한다게임을 화려하게 한다 .

Page 3: GameMath-Chapter 08 고급렌더링

텍스처 (Texture) 매핑이란 ?

텍스처 매핑 폴리곤 기반 모델링을 간단히 수행 모델 위에 그림을 입혀서 세부적인 디테일을 높여주는 방법

※ 모델링 (modeling) 이란 ? 어떤 대상물의 크기만 변경하여 통일된 형태를 가진 복제물 ( 모형 ) 을 만드는 것

※ 렌더링 (rendering) 이란 ? 컴퓨터 그래픽스 혹은 그 외의 방법으로 만들어진 이미지를 실제와 가깝게 만드는 작업

※ 텍스처 ― 텍스처 매핑에 사용되는 이미지※ 텍셀 ― 텍스처의 가장 작은 이미지 단위 ≒ 픽셀

그림 8 ─ 1

모델은 단순하게 만들어도 텍스처만 그럴싸하게 만들면 , 전체 모델이 실제감을 갖기 때문에 3D 게임에서 텍스처 매핑은 필수다 .

Page 4: GameMath-Chapter 08 고급렌더링

텍스처 종류 및 좌표 텍스처의 종류 1) 1D 텍스처 일차원 배열로 이루어진 이미지로 구성 . 높이가 없고 폭이 있거나 폭이 없고 높이가 있는 텍스처. 2) 2D 2D 텍스처텍스처 3D 게임에서 가장 많이 사용되는 텍스처 . 높이와 폭을 갖는 사각형 이미지

일반적으로 이미지라고 하는 것이 바로 2D 텍스처 3) 3D 텍스처 일반 PC 게임에서는 아직까지 거의 쓰이지 않는 텍스처 PC 용 3D 그래픽카드로 활용하기엔 아직은 역부족인 상태 텍스처 좌표

텍스처를 다각형에 입히는 데 필요한 좌표 ( 0.0 ~ 1.0)

s 좌표와 t 좌표로 구성

s, ts, t 좌표를 이용하여 하나의 텍스처에서 임의의 텍셀을 지정좌표를 이용하여 하나의 텍스처에서 임의의 텍셀을 지정

Page 5: GameMath-Chapter 08 고급렌더링

환경맵을 이용한 반사 효과 환경맵 어떠한 물체에 주변 환경이 반사되어 나타나는 효과를 주기 위해서 사용 예 ) 크롬 도금된 금속성의 물체 니드포스피드에서 자동차 유리창에 주변환경이 반사되는 것

환경맵의 적용 물체의 주변이 물체로부터 무한대 거리에 있다고 가정하고 , 주변 환경을 이미지로 구성하여 적용 예 ) 그럼 8 – 5, 8 – 6 참조

1. 입방체 텍스처 매핑 입방체맵 – 주변 환경을 상하좌우전후 방향에 대해 각각 이미지로

만든 6 개의 이미지를 하나의 세트 . 1) 2D 텍스처맵은 2D 텍스처 좌표를 이용하여 텍스처 이미지 안에서

하나의 색깔을 지정 . 2) 입방체맵은 물체가 놓여있는 입방체맵의 중심으로부터 바깥쪽 맵 평면까지의 3 차원 방향 벡터를 표현하기 위해서 3D 텍스처 좌

표를 이용 . - 방향 벡터와 면과 교차하는 지점의 색깔이 실제로 지정되는

색깔 . - 어떠한 물체에 주변 환경을 반사시키는 효과를 주는 환경맵

을 위한 기능 < 그림 8 – 8 참조 >

Page 6: GameMath-Chapter 08 고급렌더링

환경맵을 이용한 반사 효과2. 입방체맵 생성 정확히 주변 환경을 표현해 내기 위해서는 정해진 법칙에 맞도록

입방체맵 이미지를 생성 . 중심이 될 물체의 위치에 카메라를 놓고 여섯 방향으로 사진을 찍

는 방법 1) 각 방향을 찍기 위한 카메라는 90º 의 시야각을 사용 2) 가로 대 세로 비가 1: 1 3) 각 면의 이미지간에 어떠한 틈새도 없어야 한다 . < 그림 8 – 9 참조 >3. 반사 벡터 계산

입방체맵의 어느 부분과 교차하는지를 결정해야 한다 . 물체 표면상에서 반사되어 나가는 방향 벡터는 입방체맵의 텍스처 좌표와

일치

환경맵을 표현하기 위해서는 반사벡터가 반드시 필요

R = I – 2N(N ㆍ I)4. 환경맵을 위한 가정

환경맵의 이미지는 물체로부터 무한히 멀리 있는 배경으로 가정 . 환경맵은 위치가 아닌 방향을 기준으로 환경맵의 텍스처를 참조하기 때문 . 방향의 변화만을 반영하기 때문에 어떤 물체 주변의 주변 환경이 무한히

멀리 있다는 가정이 필요

* 객체와 객체 사이의 반사되는 효과는 동적 환경맵 생성해야 한다 . – 과도한 계

산 시간

Page 7: GameMath-Chapter 08 고급렌더링

환경맵을 이용한 굴절 효과 환경맵을 이용하여 어떤 물체 주변의 경관을 반사시키는 효과를 줄 수 있을 뿐 아니라 , 물체에 굴절되는 효과를 얻을 수 있다 . 예 ) 다크템플러 , 옵저버 , 레이쓰 - 투명하게 꾸물거리는 효과를 3D 에서 사용하기 위해 필요 . 굴절을 위한 환경맵에서는 입사벡터가 표면에 굴절되면서 , 물체를 관통하여 생성된 굴절 벡터를 텍스처 좌표로 사용된다 . 밀도가 더 높은 매질에서 광선이 더 느리게 진행하기 때문에 발생 .

스넬의 법칙 (Snell’s law)유리로 만든 물체를 빛이 굴절하여 통과

매끄러운 평면에 광선이 비치면 내부를 향해 나아간다 .내부로 향하는 광선의 방향은 물체를 구성하는물질의 굴절률에 따라 다르다 .

'sin'sin θθ nn =표면 밖의 물질

의 굴절률 ( 예 , 공

기 )

대상 물질의굴절률

유리공기 공기광원

물질 굴절률

공기 1.0유리 1.5

* 굴절율이 높아지면 빛의 속도가 느려지고 ( 각은 낮아지고 ) 굴절율이 낮아지면 빛의 속도 저하가 미약해진다 .

Page 8: GameMath-Chapter 08 고급렌더링

환경맵을 이용한 굴절 효과

굴절 벡터 R 구하기 ( 그림 8 – 12 참조 ) 1. 입사벡터 I 와 표면의 법선 벡터 N 으로부터 입사각 θ

I 를 계산

cosθI = - I • N

(-) 부호가 붙는 이유는 벡터의 사잇각을 계산할 때는 입사방향이 반대이기 때문

2. P. 204 참조

Page 9: GameMath-Chapter 08 고급렌더링

환경맵을 이용한 굴절 효과

굴절 효과를 위한 환경맵 적용

- 반사효과를 위한 환경맵과 마찬가지로 굴절 벡터 R 은 입방체맵과 교차하는 부분의 텍스처 색상이 굴절되는 표면상의 색상

프레넬 효과

- 빛이 두 매질이 맞닿아 있는 경계에 이르면 일부는 반사되고 일부는 굴절되는 현상이 발생

예 ) 유리의 경우 수직으로 입사하는 경우 96% 가 굴절하고 4% 가 반사

- 실세계의 물체처럼 반사와 굴절이 혼합되어 보이기 때문에 좀더 실감나는 게임 . - 프레넬 방정식은 프레넬 효과를 수학적으로 모델링한 것이며 , 매우 복잡 . - 수행 속도를 높이기 위해서 단순화한 프레넬 방정식을 주로 사용

반사계수 = max(min(1, bias + scale X (1+ I• NP))) bias – 프레넬 바이어스 , scale – 프레넬 크기 , P 는 프레넬 급수

최종 색상 = 반사 계수 X 반사색상 + (1 – 반사계수 ) X 굴절 색상

분광 효과 - 굴절량은 입사광의 파장과도 관련 . - 빛의 파장에 따라 굴절량의 차이를 보이면서 빛이 분리되는 듯한 현상 - 굴절 벡터가 환경맵의 색상 인덱스를 참고할 때도 같은 텍스처 좌표를 사용하지 않고 , 파장에 따라서 조금씩 오프셋된 텍스처 좌표를 사용

Page 10: GameMath-Chapter 08 고급렌더링

범프맵 범프맵 – 표면 법선 정보를 담고 있는 하나의 텍스처 - 울퉁불퉁한 표면상의 광원 효과를 표현하는데 사용 - 기하적인 변경없이 텍스처만으로 이루어지기 때문에 기하적 정보로만 구현하는 것보다 빠름 .

1. 법선맵- 모든 범프맵은 표면의 법선을 저장하고 있으며 , 저장된 표면 법선을 이용하여 표면의 변화를 나타냄 .- 각 법선의 표면으로부터 나가는 방향 벡터 . - 3 개의 벡터 성분 .( i, j, k)- RGB 텍스처맵의 색상정보 또한 3 개의 성분을 가지므로 법선벡터를 컬러로 변환하여 저장한 것 일반 RGB 텍스처 : 0. ~ 1.0 법선맵 : -1.0 ~ 1.0- 법선벡터에서 RGB 텍스처 값으로 변경 : Color = 0.5 * Normal + 0.5- RGB 텍스처 값에서 법선벡터로 변경 : Normal = 2 * (Color - 0.5)

와이어프레임 – 철사줄과 같은 선들을 연결하여 3 차원 객체의 형상을 입체감 있게 표현

범프맵을 이용하면 물체의 기하적인 복잡성을 증가시키는 대신에 하나의 텍스처로 그 물체의 상세한 표면 형상을 표현 < 그림 8 – 18 참조 >

Page 11: GameMath-Chapter 08 고급렌더링

범프맵2. 높이맵으로부터 법선맵 생성

- 게임 그래픽 모델러가 법선을 직접 계산하여 , 이미지로 만드는일은 매우 어려운 일

- 높이맵 - 높이정보를 담고 있는 2 차원 이미지

- 256 단계의 그레이스케일 이미지 ( 검정색과 흰색으로 구성되는 이미지 ) 로 구성

- 어두울수록 낮은 높이 , 밝을수록 더 높은 높이

- 이웃텍셀의 높이값과의 차이로부터 s 좌표 방향과 t 좌표 방향의 두 개의 벡터를 구하고

두 벡터의 외적이 법선 벡터다

- 높이맵으로부터 차분 벡터를 어떻게 계산하는가 ?

Nh 와 Nv 를 구한 후 두 벡터의 외적이 법선 벡터다 .

- 법선은 -1.0 ~ 1.0 의 범위를 갖기 때문에 앞의 변환식을 통해 RGB 텍스처로 변환되어 저장

- z 성분 ( 청색의 범위 ) 은 항상 양수이며 , 거의 1.0 에 가깝다 .

- RGB 텍스처로 저장된 법선맵의 전체적인 색깔은 푸른색

- 7 장에서 최종적인 조명 방정식에

N 에 지금까지 구한 법선맵을 사용

L 은 광원벡터를 법선맵과 유사하게 텍스처

범프효과가 부여된렌더링 수행

Page 12: GameMath-Chapter 08 고급렌더링

카툰 렌더링

NPR(Non - Photorealistic Rendering) - 3D 그래픽을 이용하여 만화같은 효과를 내기 위해 사용되는 렌더링 방법 - 일정한 물체를 렌더링하고 물체의 윤곽선을 뚜렷하게 그려주는 것

1) 두 개의 색상값을 주고 분산광 성분을 표현 2) 전반사 성분은 물체의 가장 밝은 곳을 표현하기 위한 하나의 색상으로 표현 3) 물체를 만화처럼 보여주기 위해 굵은 외곽선을 추가

카툰렌더링 구현 내용

1. 분산 성분의 표현

- 셰이딩된 색상을 2 개의 구분된 색상영역으로 나누는 것

- 2 개의 색상영역만을 갖는 이미지 ( 계단 함수 )

- 텍스처 참조 테이블 역할을 하는 1 차원 맵을 사용

< 그림 8 - 26 참조 >

Page 13: GameMath-Chapter 08 고급렌더링

카툰 렌더링

3. 외곽선 그리기

- 외곽선을 그리기 위해서는 물체의 외곽에 놓여진 픽셀을 찾아야 한다 .

- 가장 쉬운 방법은 N ㆍ V 를 이용하는 것 (7. 조명 P.177)

- N ㆍ V 는 현재 시점으로부터 그 표면이 얼마만큼 보여질지를 측정하는 역할

- N ㆍ V > 0 일 경우 (0 < cosθ < 90, 180 < cosθ < 270) 에는 점이 보이고 ,

N ㆍ V < 0 일 경우 (90 < cosθ < 180, 270 < cosθ < 360) 에는 점이 안 보인다 .

- 계단 함수로 구성할 수 있으며 , 1D 텍스처로 인코딩

< 그림 8 - 28 참조 >

2. 전반사 성분

- 점직적 변화 대신 전반사 하이라이트에 계단 함수를 적용

- 전반사 성분을 카툰 렌더링에 추가

< 그림 8 - 27 참조 >

Page 14: GameMath-Chapter 08 고급렌더링

Thank You

Page 15: GameMath-Chapter 08 고급렌더링

모델링

와이어 프레임 (w i re frame)

모델링 (modeling) 어떤 대상물의 크기만 변경하여 통일된 형태를 가진 복제물 ( 모형 ) 을 만드는 것

서페이스 모델 (surface model)

솔리드 모델 (solid model)

물체의 중요한 특징을 점과 선으로 표현

다각형의 평면체 집합으로 물체를 표현

물체를 안이 꽉 찬 물체로 표현

면과 속의 내용이 없고 뼈대만 있기 때문에물체 내부에 자유로이 들어갈 수 있다 .

표면에 의해 안팎이 차단되어 내부에 자유롭게 들어갈 수 없으나 , 일부를 절단하면내부를 볼 수 있고 , 들어갈 수 있다 .

물체를 절단하면 안이 꽉 차있기 때문에절단면이 보이며 , 내부는 보이지 않는다 .

3 차원 물체의 입체 모델을 구축하는 방법

Page 16: GameMath-Chapter 08 고급렌더링

3 차원 모델링 작업

W ire Frame

물체를 점으로 표현

Shading

Surface

물체에 음영처리(ray tracing)

물체를 다각형의 평면체집합으로 표현

Texture Mapp ing

물체에 질감 처리(mapping)

Solid

고체 모델로 표현

3D 스튜디오에서의 모델링 작업 예

Page 17: GameMath-Chapter 08 고급렌더링

렌더링

셰이딩 기법 (shading method)

렌더링 (rendering) 컴퓨터 그래픽스 혹은 그 외의 방법으로 만들어진 이미지를 실제와 가깝게 만드는 작업

매핑 방식 (mapp ing method)

물체에 빛이 닿으면 밝은 곳과 어두운 곳이생기는데 빛이 닿는 정도를 컴퓨터 그래픽스로나타내는 기법

질감 자료를 입체 모델 표면에 부치거나 , 색을얻을 수 있는 함수를 사용하여 입체 단면을 표현

렌더링 기법

이미지 매핑 (image mapp ing)

절차적 매핑 (procedura l mapp ing)

질감 자료를 디지털화 이미지에 의해 제공 - 그리기 , 스캔 , 계산 , 렌더링이 가능

수학 함수에 의해 표면의 변화를 계산하여 적용 - 연기 , 먼지 , 비누 거품 , 침식 , 요동 등에 이용

Page 18: GameMath-Chapter 08 고급렌더링

모델링과 렌더링

W ire Frame

Shading Texture Mapp ing

Surface

모델링입체를 윤곽선에따라 표현

렌더링물체의 표면을 처리 ( 색상을 입힘 )

물체에 음영처리(ray tracing)

물체에 질감 처리(mapping)

물체를 점으로 표현 물체를 다각형의 평면체집합으로 표현

Page 19: GameMath-Chapter 08 고급렌더링

영화 ‘스타워즈’의 예

실사

모델링

렌더링

무비 카메라로 실사 촬영

실사 필름 (negative film) 을 디지털화

캐릭터와 환경 창조

와이어프레임 구현 ( 모델링 )

수정 , 합성 , 변조 ( 렌더링 )

필름으로 다시 옮김 ( 색상과 화질의 재현 )

그래픽 도구 (graphics tool) 를 이용

실제 카메라를 들고 촬영

Page 20: GameMath-Chapter 08 고급렌더링

질감 (Texture)

주변 색상 (amb ient color)

주변 광만으로 비춰진 표면

질감 (texture) 물체의 색상이나 그 물체가 갖는 고유의 재질 패턴

확산 색상 (diffuse color)

반사 색상 (specu lar color)

주변 색상 (amb ient color)

물체의 표면에 빛이 직접 비추는곳에 나타남

광원이 반사되는 곳에 나타남

재질의 색상 요소

컴퓨터 그래픽에서 모델링된 3 차원 물체의 표면의사실감을 위해 , 모델링된 물체에 질감을 표현한다 .

빛과 물체의 관계로부터 물체 표면의 밝기 , 빛의반사 , 굴절 등을 고려하여 질감을 입힌다 .

질감의 여러 가지 예

사진이나 그림 등의 2 차원 이미지를입체 모델 표면에 붙일 수도 있다 .

Page 21: GameMath-Chapter 08 고급렌더링

표면 매핑

표면 (surface)

범프 (bump)

반사 (ref lection)

텍스쳐 매핑 (texture mapp ing)

확산 요소 (diffuse component)

검경 요소 (specu lar component)

반사 요소 (ref lect ion component)

범프 매핑 (bump mapp ing)

돌기 매핑 (roughness mapp ing)

조명 모델의 요소를 변형

비금속 , 비투과 물질로 분류예 ) 피부 , 종이 , 옷감 등

강조 (highlight) 는 물체 내의 색으로 구현예 ) 금 , 은 , 금속 등

표면에서 반사된 것처럼 표현

표면 색 외에 충돌이나 파동 등을 보완

물체 표면의 거친 정도를 조정

전송 요소 (transmitted component) 색의 패턴 변화를 강조예 ) 건물 벽 , 얼룩진 유리 등

굴절 요소 (refract ion component) 표면이나 물체를 통해 굴절

주변 요소 (amb ient component) 주변 색상에 적용확산 요소보다 어둡거나 다른 색조로 구현

표면 매핑 3 차원 물체의 표면에 재질을 입히는 것

Page 22: GameMath-Chapter 08 고급렌더링

텍스쳐 매핑

텍스쳐 매핑 (texture mapp ing) 사진이나 그림 등의 2 차원 이미지를 입체 모델 표면에 표현하는 렌더링 기법

텍스쳐 매핑의 적용 과정

W ire Frame Solid

입체를 그 윤곽선에 따라 표현

Texture Mapp ing

입체를 고체 모델로 표현 2 차원 이미지를 입체 표면에입혀 질감으로 표현

Page 23: GameMath-Chapter 08 고급렌더링

텍스쳐 매핑의 적용 방법

바나나

사과

텍스쳐 맵 (texture maps)

텍스쳐 맵 부드러운 중간 객체 원하는 모양으로 모델링

텍스쳐 매핑의 여러 가지 적용 예

텍스쳐 맵에 의한 모델링

다면체 객체로 물체를 처리하는 이유

쉬운 렌더링 전략의 출현과 작업이 용이

Page 24: GameMath-Chapter 08 고급렌더링

광원

광원 (light source) 모든 광원은 광원 형태와 광원 색상을 갖는다 . - 부가적인 정보 : 위치 , 방향 , 집중 지수 , 분산 각 , 감쇠지수

발광원

반사 광원

분산 광원

발광원 전구 , 태양 등

반사 광원 다른 물체로부터 반사되는 빛( 대상 물체 가까이 있는 벽 등 )

배경 빛 주위 빛 (amb ient light)물체 주위에 있는 여러 개의 반사 광원에의해 만들어진 하나의 빛

분산 광원 대상 물체 가까이 있는 빛( 형광등 등 )

점광원 대상 물체에 비해 작은 광원

반사 광원 (ref lect ing light source)

분산 광원 (distributed l ight source)

명암 주위 광원과 점광원 모두를 고려

반사 빛

확산 반사 (diffuse ref lection)

검경 반사 (specu lar ref lection)

Page 25: GameMath-Chapter 08 고급렌더링

확산 반사

확산 반사 (diffuse ref lect ion) 두 개의 광원에 의한 모든 방향에서부터의 산발된 반사 빛 ( 난 반사 ) - 표면의 굴곡에서 기인 - 모든 방향으로 같은 양의 반사를 일으킨다 .

N

L

θ

표면에 직각이 되는 방향

입사 광선의 방향

입사 각도

표면 (surface)

확산 반사의 빛의 강도

ad IkI =표면의 반사 계수

10 ≤≤ dk 흡수 수( 반사

LN ⋅=θcos

)(0

LNdd

IkI pd ⋅

+=

광원의 밝기

광원과 물체 표면간의 거리

)(0

LNdd

IkIkI pd

ad ⋅+

+=

표면의 모든 지점

표면에서의 한 점주위 빛과 한 점광원에 의한 전체 확산 반사량

Lambert’s law

Page 26: GameMath-Chapter 08 고급렌더링

검경 반사

검경 반사 (specu lar ref lect ion) 점 광원에 의해 만들어진 표면의 밝은 점 ( 전반사 ) - 거울의 표면에서 반사되는 빛의 형태 - 무딘 표면보다 매끄러운 표면에 확실히 나타난다 .

N

L

θ

표면에 직각 되는 방향

광원의 방향

입사 각도

표면 (surface)

R

θV

검경 반사의 방향

관측 방향

검경 반사 각도φ

검경 반사의 빛의 강도 반사 함수 (ks)( 표면의 재질 )

RV ⋅=φcos

]cos)()([0

φθ n

d

p

ad WLNkdd

IIkI +⋅

++= ])()([

0

n

sd

p

ad RVkLNkdd

IIkI ⋅+⋅

++=

LLNNR −⋅= )2(

200≥n 매우 매끈한 표면

∞=n 완전 반사경

1=n 아주 거친 표면

N

L

θ

매끄러운 표면

N

L

θ

무딘 표면

θncos

Page 27: GameMath-Chapter 08 고급렌더링

굴절 빛

굴절 빛 (refracted l ight) 물체 표면을 통과한 빛 ( 통과빛 , transmitted light).

스넬의 법칙 (Snell’s law)

N

I

θ

입사 광선

물체 표면

S

θ

반사 광선

T

유리로 만든 물체를 빛이 굴절하여 통과

매끄러운 평면에 광선이 비치면 일부는 반사하고일부는 내부를 향해 나아간다 .내부로 향하는 광선의 방향은 물체를 구성하는물질의 굴절률에 따라 다르다 .

'sin'sin θθ nn =표면 밖의 물질

의굴절률 ( 예 , 공

기 )

대상 물질의굴절률

유리공기 공기

광원

물질 굴절률

공기 1.0유리 1.5

Page 28: GameMath-Chapter 08 고급렌더링

그림자 영역에서의 반사광

반사광 강도에 따른 변화그림자 영역의 반사광 강도

그림자 (umbra)반그림자 (penumbra)

광원과 객체에 대응하는 그림자 / 반그림자의 효과

ad IkI =반사 계수

Page 29: GameMath-Chapter 08 고급렌더링

셰이딩 기법

Gouraud

Phong

- 점광원과 관측점이 표면으로부터 멀리 떨어져 곡면의 변화가 완만할 경우 명암 표현이 우수- 방향 경사가 크면 사실적이지 못하다 .- 표면의 무늬나 결 , 그림자를 고려할 때 좋지 못하다 .- 빛 밝기의 차이가 부드럽지 못하다 .

- 서로 이웃하는 면에서의 밝기가 연속적으로 변하지 않는 현상을 제거 - 한 물체의 명암을 유연하게 나타낸다 .- 밝거나 어두운 표면의 선인 마하선이 나타난다 .- 계산 시간이 많이 걸린다 .

- 고로드 명암법을 개선- 모든 점에서의 정규 벡터를 명암 모델에 적용 계산- 마하선 효과를 줄일 수 있다 .

균일 광도법

고로드 (Gouraud) 명암법

퐁 (Phong) 명암법

Lambert

Page 30: GameMath-Chapter 08 고급렌더링

고로드와 퐁 셰이딩의 비교

셰이딩의 여러 가지 예

Solid Texture Mapp ing

1N

aN bN

4N2N

3N

sN

현 스캔 라인

),( 111 yxI

),( saa yxI

),( sbb yxI

),( 444 yxI

),( 222 yxI

),( 333 yxI

sI

현 스캔 라인

sy

고로드 셰이딩

퐁 셰이딩

))()((1

1221

21

ssa yyIyyIyy

I −+−−

=

))()((1

1441

41

ssb yyIyyIyy

I −+−−

=

))()((1

asbsba

ab

s xxIxxIxx

I −+−−

=

))()((1

1221

21

ssa yyNyyNyy

N −+−−

=

))()((1

1441

41

ssb yyNyyNyy

N −+−−

=

))()((1

asbsbs

ab

s xxNxxNxx

N −+−−

=

인접 다각형들간의 표면 법선을 평균 계산

표면 법선을 분해하여 면의 모든 픽셀에 대한법선을 계산

정점 법선 정점 법선보간 법선

원래의 표면

Page 31: GameMath-Chapter 08 고급렌더링

광선 추적 방법

- 자연 현상을 충실하게 시뮬레이션 - 여러 방향의 광선을 모두 추적하는 비능률성- 광원에서 출발한 광선을 무한하게 세분 필요 ( 불가능 )

- 시선 방향으로 빛을 역추적하여 광선을 추적- 시선 경로에 따라 가다 빛을 분산 시키는 물체에 도달하면 셰이딩 모델로 광선의 밝기와 색을 결정- 광원과 물체 표면의 각도를 이용하여 색의 밝기를 표현- 여러 물체와의 교점 중에서 가장 가까운 교점을 시선이 도달한 곳으로 결정

정방향 광선 추적법 (forward ray trac ing)

역방향 광선 추적법 (backward ray trac ing)

광선 추적법 (ray trac ing) 관찰자의 눈에 들어오는 광선을 찾아 그 광선의 색을 화면에 표시하는 방법

광원이 내보내는 빛의 방향을 세분하여 추적

관찰자의 눈에서 광원 방향으로 시선을 추적

광원

픽셀 위치

투영의 중심( 관측점 )

Page 32: GameMath-Chapter 08 고급렌더링

그림자 생성 방법 (1)

셰이딩 (shading) 3 차원 공간에서 그림자를 생성하는 방법

스캔라인 알고리즘을 이용한 셰이딩 그림자 입체를 이용한 셰이딩

관측점

광원다각형 1 다각형 2

스캔라인

이미지 평면

다각형 1 로부터의그림자

관측점

광원

다각형

이미지 평면

그림자 입체

전처리 단계물체를 구성하는 각 평면들이 빛의방향에서 서로 겹치는지 검사 , 저장

렌더링 단계정보를 이용하여 그림자를 계산( 그림자가 없을 때는 단순하게 색칠 )

전처리 단계점광원 중심으로 각 평면에 대해그림자 입체를 생성

렌더링 단계시점 중심으로 평면을 스캔라인 알고리즘을 이용하여 평면을 계산

Page 33: GameMath-Chapter 08 고급렌더링

그림자 생성 방법 (2)

z- 버퍼를 이용한 셰이딩 레이 트레이싱을 이용한 셰이딩

관측점광원

이미지 평면

그림자 z-버퍼

객체 다각형

픽셀 다각형의 투영

픽셀

관측점광원

이미지 평면

픽셀

교점

시선 광선

전처리 단계광원을 시점으로 거리에 대한 깊이정보를 계산하여 저장

렌더링 단계 z-버퍼 알고리즘을 사용하여 렌더링

전처리 단계관찰자 시점으로부터 광선을 추적하여광선과 만나는 점을 결정

렌더링 단계다른 물체와 만나면 그림자 영역으로결정 ( 계산 시간이 많이 걸린다 )

Page 34: GameMath-Chapter 08 고급렌더링

레이 트레이싱 (1)

레이 트레이싱 (ray trac ing) 반사 , 음영 , 빛의 굴절 등을 정확히 묘사하고 , 보다 현실에 가까운 입체 표현이 가능한 방법으로 가장 유효한 렌더링 방법

레이 트레이싱의 적용 방법

시점

물체 공간

이미지 평면

픽셀 (m, n)

시선 광선

m, n 의 초기값을 설정설 시점으로부터 픽셀 (m, n) 에 광 선을 방사하고 , 모든 물체와의 교점을 구한다 .. 교점이 존재하면 , 이미지 평면에 가장 가까운 교점을 구한다 . 교점이 없으면 , 로 간다 . 3 점의 물체 그림자를 만들고 , 색을 결정하여 픽셀 (m, n) 에 부여한다 .. 픽셀 (m, n) 을 배경색으로 한다 .. 이를 모든 픽셀에 대해 행한다 .

알고리즘

Page 35: GameMath-Chapter 08 고급렌더링

레이 트레이싱 (2)

윈도 (w indow)

투영의 중심(centre of pro jection)

장면 (scene)

현실의 빛을 거꾸로 더듬어 이미지 합성

레이 트레이싱의 장단점

할 표면의 반사 , 투명도 , 굴절률 등 매우 사실적으로 물체 표현 가능

가 그림자 여부를 결정하기 위해 매우 복잡한 계산이 필요

필 픽셀 단위로 시뮬레이션하기 때문에 처리 시간이 많이 걸린다 .

. 우수한 이미지 획득이 가능하나 , 실시간 이미지 수행에는 부적합

가상화면

객체

가상관측점

가상관측점

가상화면객체

가상화면

때때로 빛은 객체의 모든 것을놓친다 .

때때로 빛은 객체를 맞춘다 .

빛은 객체에 부딪쳐 반사된다 .

예 레이 트레이싱의 예

Page 36: GameMath-Chapter 08 고급렌더링

레이 트레이싱의 여러 가지 예