Valient killzone ps4 lighting

Post on 02-Jul-2015

874 views 4 download

description

killzone

Transcript of Valient killzone ps4 lighting

Lighting Shader Study

이민웅

물리 기반 라이팅을 채용 • 퀄리티가 높은 사실적인 랜더링 • HDR 라이팅 환경에서도 외형 일관성이 있다 • 실제 재질관련의 변수들을 사용하기 쉽다

– 아티스트가 사용하는 머트리얼 매개 변수를 단순화하기 쉽다.

• 현실 세계에서의 물리 법칙이라는 분명한 척도가 있기 때문에 문제 해결이 쉽거나 확장도 쉽다.

게임 물체의 표면에 빛이 닿으면 반사행동을 균일하게 반사함 디퓨즈 반사는 지향성있고 스펙큘라는 외형에 의존해 근사

비금속의 경우 아래 그림과 같이 확산 디퓨즈(파란 선)와 스펙큘라 반사 (노란선) 모두가 일어남

금속의 경우는 아래와 같이 거의 스펙큘라 반사 (노란선)이 지배적입

마이크로 패싯 : 물리학 기반의 스펙큘라 조명

F (l, h) : 프레넬에 의해 빛 벡터와 하프 벡터가 이루는 각도에 따라 스펙큘라의 반사율이 달라짐

D (h) : Roughness(거칠기)는 마이크로 패싯이 반사하는 스펙큘라의 확산 정도 (노말상태)을 변경

기하 감쇠율 G (l, v, h) : 마이크로 패싯 자신에 의해 차폐되는 조명의 양을 구함

적은 재료에서 사실적으로 표현

• 세 가지 매개 변수를 사용 – Albedo (RGB8) – Roughness (R8) – Specular Reflectance

(RGB8)

• 디퓨즈 라이팅과 스펙큘라 라이팅(반사율)을 따로 계산

• 스펙큘라 라이팅에서는 Roughness , Specular Reflectance 이것만을 가지고 계산

Roughness(거칠기) 를 변화 시켰을 때의 스펙큘라라이팅의 외형 변화에서 거칠기가 거친(0.0)때 노말 반사되고 거칠기가 매끄럽게 (1.0)의 경우 선명한 반사

비금속 재질의 Specular Reflectance 과 roughness 을 변화 시켰을 때의 외형의 변화

roughness 을 변화 시켰을 때의 각 금속 재료의 외형 변화에서 값이 낮으면 굵고 까칠 까칠한 외형되고 값이 높으면 매끄러운 외형

재질의 물리학적 값 사용

• 재질중에는 실제 측정 된 데이터 값을 사용함

– EX) Diffuse, Specular Reflectance 실제 값 이용

• 디자이너는 실제 값(물리학적으로 계산된 값)을 이용하여 텍스쳐를 만듬

– Diffuse같은 경우는 사진촬영으로 수정할수 있음

– Specular Reflectance는 BRDF값을 참조

비금속 (물이나 플라스틱 등)의 Specular Reflectance 측정 결과

금속의 Specular Reflectance장의 측정 결과

마이크로 패싯의 에너지 보존

• Roughness의 값을 변경하였을때 스펙큘라라라이팅의 하이라이트 영역의 크기가 바뀌였을때 밝기도 같이 바뀌도록 설정함

• 마이크로 패싯의 에너지 보존(저장)하는 방법

– 계산시에 값을 정규화하기 때문

Energy Conservative

Non - Energy Conservative

스페큐라라이팅의 계산 방법

Cook Torrance BRDF

• 디퓨즈 라이팅 계산은 k_d * R_d되고 있고, 매우 간단

• 스펙큘라라이팅은 Roughness에 값에 따라 변화하는 마이크로 패싯과 프레넬과 연동

• 마이크로 패싯 기하 감쇠 – Smith Schlick Visiblity Function 를 사용

• Shadow Fall BRDF

• Based on Cook-Torrance

– Fresnel

– Smith Schlick Visiblity Function

– Normalization based on Specular Reflectance

– Roughness as Specular Importance Cone Angle

• Approximate translucency

– Density maps

– Translucency diffusion maps

Based on Cook-Torrance • Fresnel – Schlick Approximation

– inSpecularReflectance + (1.0 - inSpecularReflectance) * pow(1.0 - inX,5.0)

• Geometric Attenuation Factor – Smith Schlick Visiblity Function – (inNdotL * inNdotE) / ( (inNdotL * (1.0 - a) + a) *

(inNdotE * (1.0 - a) + a) )

• Normalization based on Specular Reflectance – ( 1.0 - inSpecularReflectance ) * saturate(inNdotL)

IBL을 사용한 라이팅 방법

• IBL을 계산시 Roughness 값을 가지고만 원하는 결과를 뽑을 수 없어서 Ambient BRDF 사용를 사용한거

• Ambient BRDF 사용 – 시점과 법선의 각도, Roughness , Specular

Reflectance 3 개의 값을 BRDF의 평균치를 계산(라이트를 계산 무시) 반구 적분하여 사전에 Mathematica로 계산하고 3D 텍스쳐로 저장

IBL Point Based BRDF – factor visualization

IBL Point Based BRDF

IBL Point Based BRDF – factor visualization

IBL Ambient BRDF – factor visualization

IBL Ambient BRDF

IBL Point Based BRDF