44
Rim Lighting ( 림 림림림 ) 박박박 ( 박박박박 ) 박박박박 박박박 2011.08.06

[0806 박민근] 림 라이팅(rim lighting)

Embed Size (px)

Citation preview

Page 1: [0806 박민근] 림 라이팅(rim lighting)

Rim Lighting( 림 라이팅 )

박민근 ( 알콜코더 )데브루키 스터디 2011.08.06

Page 2: [0806 박민근] 림 라이팅(rim lighting)

Rim Light-ing 이란 ?

Page 3: [0806 박민근] 림 라이팅(rim lighting)

Rim Light = 역광 (Back Light-ing)

오브젝트 뒷면의 조명이 비춰서 , 오브젝트의 외곽이 빛나는 듯이 보이는 현상

(= 엣지 라이팅 )

Page 4: [0806 박민근] 림 라이팅(rim lighting)
Page 5: [0806 박민근] 림 라이팅(rim lighting)

Rim Light-ing 사용 사례

Page 6: [0806 박민근] 림 라이팅(rim lighting)

림 라이트 없음

Page 7: [0806 박민근] 림 라이팅(rim lighting)

림 라이트만 렌더링

Page 8: [0806 박민근] 림 라이팅(rim lighting)

최종 화면

Page 9: [0806 박민근] 림 라이팅(rim lighting)
Page 10: [0806 박민근] 림 라이팅(rim lighting)
Page 11: [0806 박민근] 림 라이팅(rim lighting)
Page 12: [0806 박민근] 림 라이팅(rim lighting)
Page 13: [0806 박민근] 림 라이팅(rim lighting)
Page 14: [0806 박민근] 림 라이팅(rim lighting)
Page 16: [0806 박민근] 림 라이팅(rim lighting)

스타워즈 – 구 공화국(GDC 2011)

Page 17: [0806 박민근] 림 라이팅(rim lighting)

Rim Lighting

Page 18: [0806 박민근] 림 라이팅(rim lighting)

Rim Lighting

•In film, a light placed behind the character

•Separates the characters from the background

•Highlights shapes and contours

•Game rim light created in the shader

•Our rim light mimics the style of our concepts - not real light behavior

Page 19: [0806 박민근] 림 라이팅(rim lighting)

Rim Lighting Evolution

•Began as a way to make skin look nice.

•Art director wanted to try it on everything.

•Original version was too velvety and got too blown out.

•The current implementation has gone through lots of refine-ments.

Page 20: [0806 박민근] 림 라이팅(rim lighting)
Page 21: [0806 박민근] 림 라이팅(rim lighting)
Page 22: [0806 박민근] 림 라이팅(rim lighting)
Page 23: [0806 박민근] 림 라이팅(rim lighting)
Page 24: [0806 박민근] 림 라이팅(rim lighting)
Page 25: [0806 박민근] 림 라이팅(rim lighting)
Page 26: [0806 박민근] 림 라이팅(rim lighting)
Page 27: [0806 박민근] 림 라이팅(rim lighting)
Page 28: [0806 박민근] 림 라이팅(rim lighting)
Page 29: [0806 박민근] 림 라이팅(rim lighting)
Page 30: [0806 박민근] 림 라이팅(rim lighting)
Page 31: [0806 박민근] 림 라이팅(rim lighting)
Page 32: [0806 박민근] 림 라이팅(rim lighting)
Page 33: [0806 박민근] 림 라이팅(rim lighting)
Page 34: [0806 박민근] 림 라이팅(rim lighting)
Page 35: [0806 박민근] 림 라이팅(rim lighting)

Rim Light-ing 장점

Page 36: [0806 박민근] 림 라이팅(rim lighting)

Rim Lighting

• 캐릭터와 배경을 구별을 명확히 한다

캐릭터가 배경이 묻히는 것을 극복한다

• 물체의 외곽선을 살려준다

• 빛을 받지 않는 부분의 디테일을 높여준다

• 구현이 아주 간단하다

Page 37: [0806 박민근] 림 라이팅(rim lighting)

Rim Light-ing 구현

Page 38: [0806 박민근] 림 라이팅(rim lighting)

Rim Lighting 구현 코드float3 vCameraPos = normalize( vCameraPos - v.pos );

float fRimLightColor = smoothstep(1.0f - rimWidth, 1.0f,

1 - max(0, dot(v.nor, vCameraPos)));

* 즉 , 캐릭터의 외곽에 가까운지만 판단하면 된다 . ( 외곽선 검출 )

Page 39: [0806 박민근] 림 라이팅(rim lighting)

smoothstep()smoothstep(min,max,x)  x 가 [min, max] 사이의 값인 경우에 대해서 [0, 1]

사이에서 부드럽게 변하는 Hermite 보간법을 리턴한다 .

x 가 min 보다 작다면 0 을 리턴하고 , max 보다 크다면 1을 리턴한다 .

Page 40: [0806 박민근] 림 라이팅(rim lighting)
Page 41: [0806 박민근] 림 라이팅(rim lighting)

UDK 로 구현한Rim Lighting

Page 42: [0806 박민근] 림 라이팅(rim lighting)

림 라이팅 (Rim Lighting) / 엣지 라이팅

Page 44: [0806 박민근] 림 라이팅(rim lighting)

Q & A