옆히

언리얼 엔진의 물리기반 렌더링 이해하기 본문

짬통/TEMP

언리얼 엔진의 물리기반 렌더링 이해하기

옆집히드라 2024. 2. 18. 18:55

언리얼 엔진의 물리기반 렌더링 이해하기 (youtube.com)

언리얼엔진의PBR공식이해하기_최종.pdf
3.01MB

 

Physically Based Rendering(PBR)

물리와 비슷한 결과를 만들어내는 렌더링; 실측한 자료와 대조해서 비슷하면 ok

 

씬에 사용되는 모든 재질은 일관된 규칙을 가지고 그럴듯해야함

  • 에너지보존 법칙 : 나가는 빛은 들어오는 빛보다 많을 수 없음
  • 물체의 재질 특성 잘반영

빛 ? -? wavelength-파장을 가지는 전자기적 횡파로 에너지를 전달하는 물질

빛은 에너지를 가지는 Photon-광자들의 집합이기도 함

 

빛의 분석 : 학문적인 영역 : 방사측정(Radiometry) / 사용자 영역 : 광도측정(Photometry) << 실제 사용

 

 

빛의 측정

광속, 광도, 조도, 휘도

  • 광속 : 광원에서 모든 방향으로 방출되는 빛의 양을 에너지로 표현 광원의 빛 에너지 lm루멘 / F; 단위 시간당 모든 방향의 빛을 합한 값
  • 광도 : 광원에서 특정 방향으로 나오는 빛의 양 Cd칸델라 / I; 단위 입체각의 면적을 통과하는 빛의 총량
  • 조도 : 대상 물체에 입사하는 빛의 양 lx, lm/m^2 럭스 / E; 단위 면적에 도달한 빛의 총량
  • 휘도 : 휘도는 대상 물체에 반사되는 빛의 양 눈부심의 정도 sb, nit(니트), cd/m^2 ; 눈에 도달한 빛의 총량 (물체의 밝기)

조도는 주로 조명의 성능을 나타내는 단위로 많이 쓰이고 휘도는 TV, 모니터와 같은 디스플레이의 성능을 나타내는 단위로 많이 쓰임

 

#렌더링 메커니즘

렌더링이 동작하는 영역은 반구 모델을 사용한다.(밑바닥 제외) 실제적으로 한 픽셀당 계산

천정각 zenith angle 위 그림에 phi / 방위각 elevation angle 위 그림에 theta 

i = incoming

 

 일반적으로 게임에서 transmittance는 거르고 셰이더에서적당히 굴절을 시킨다던지 땜빵 시킴

 

지표면에 도달하는 빛이 재질에 따라 크게 transmittance, reflectance로 나뉘고 이를 합쳐서 scattering이라고 함

reflectance는 크게 diffuse와 specular로 나뉨

 

 

BRDF : bidirectional reflectance distribution function 양방향 반사율 분포 함수

BTDF : transmitted scatter distribution 투과 고려

BSDF : bidirectional scattering distribution function 양방향 산란 분포 함수

 

#언리얼 BRDF

 

Image-based lighting (IBL) is a 3D rendering technique which involves capturing an omnidirectional representation of real-world light information as an image, typically using a 360° camera. This image is then projected onto a dome or sphere analogously to environment mapping, and this is used to simulate the lighting for the objects in the scene. This allows highly detailed real-world lighting to be used to light a scene, instead of trying to accurately model illumination using an existing rendering technique.

큐브맵 만들어서 빛을 반구에 골고루 뿌림 확률통계적 방법으로 샘플링...

 

 

도체는 흡수 방출

유전체는 밑에서 산란한 다음 방출

 

 

실제로는 비금속 재질에 빛이 오면 밑에서 산란 후 방출하지만 계산 편의성을 위해 한 곳에서 반사시킨다. 만약 따로 이 효과가 필요하다면(들어온 지점이 아닌 곳에서 빛이 방출) subsurface scarttering 처럼 별도로 구현한다.

 

 

 

뭔가 렌더링 공식은 물리, 수학 공식과 같은 절대적인게 아니라 기존에 있던 물리, 수학 공식과 같은 이론을 기본으로 현실을 모방하려 하는 수학식 중에서 최선이다 싶은걸 (현재까지는) 써놓은거 같다

 

 

long tail << >> short tail

이거보다 위에 나가는 빛의 특징을 보면 specular가 타원형으로 퍼짐(일직선이 아니라)

 

알루미늄은 특이하게 각도가 올라가면 반사율이 오르는 양상이 다르다


[ PBR 이란 무엇인가 ] 17. Fresnel 이란? :: 그냥 그런 블로그 (tistory.com)

 

[ PBR 이란 무엇인가 ] 17. Fresnel 이란?

주의 : 잘못된 내용이 포함되어 있을 수 있으므로 이상하면 참고자료를 확인하세요. [ PBR 이란 무엇인가 ] Fresnel 이란? 프레넬 공식이란? 앞서 [ [ 번역 ] 모든 것은 프레넬을 가집니다 ] 와 [ Reflecti

lifeisforu.tistory.com

Everything is Shiny – Filmic Worlds

 

Everything is Shiny

Every once in a while I’ll see a tutorial online or a paper that talks about specular. And it will have a line like “Some materials such as cloth and cardboard are pure diffuse surfaces with no specular”. This is a lie. Every object in the real world

filmicworlds.com

polarized 편광

 

Everything has Fresnel – Filmic Worlds

 

Everything has Fresnel

You can sorta think of this post as part 2 of my “Everything is shiny rant”. While standard specular lighting is pretty common in games, one effect that we rarely see in games is proper fresnel.

filmicworlds.com

Intuitively 직관적으로 aligned 정렬된 grazing angle subtle  미묘한 perpendicular 수직

 

Blinn-Phong

H = normalize(V+L);
specVal = pow(saturate(dot(H,N)),power);

블린퐁 모델에 따르면 노말벡터와 incident light의 사이각이 적을수록 밝아야하지만 현실 세계에서는 grazing angle 일 때가 더 밝다. It's called fresnel

 

To account for this affect, you can use Fresnel. A pretty good realtime approximation for Fresnel is the Schlick Fresnel. From the GPU Gems 3 chapter on skin:

float base = 1 - dot(V,H);
float exponential = pow( base, 5.0);
float fresnel = exponential + F0 * (1.0 - exponential);
specVal *= fresnel;

For some reason, most people tend to want fresnel only on the really shiny surfaces, like water, glass, and metals. But really, fresnel has a strong effect on almost every material. In fact, I would argue that fresnel is more important visually on the less-shiny materials. Here is a piece of PVC pipe.

 

프레스넬은 스피큘러가 약한 곳에서 더 강조됨

Going from almost nothing to very specular is much more important than going from high to higher specular.

 

물 유리 금속과 같은 재질에서만 프레스넬은 논하는건 실수다

For me, it’s a mistake to think about fresnel only as an effect for water/glass/metal, because it makes a tremendous visual difference on the less shiny surfaces. Here are a few more examples.

 

운전중 낮에 더 밝은 이유는 사실 포장도로에 영향을 주는 프레스넬 때문

Ever wonder why it feels bright when you drive to work in the morning? Most people think that happens because the sun is in their eyes. Actually, the major source of brightness is that road pavement has a strong fresnel as well.

비균일 표면으로부터의 diffuse reflection
scattering center

[ PBR 이란 무엇인가 ] 16. Reflection 에 대한 잘못된 상식들 :: 그냥 그런 블로그 (tistory.com)

 

[ PBR 이란 무엇인가 ] 16. Reflection 에 대한 잘못된 상식들

주의 : 잘못된 내용이 포함되어 있을 수 있으므로 이상하면 참고자료를 확인하세요. [ PBR 이란 무엇인가 ] 16. Reflection 에 대한 잘못된 상식들 사전적 의미 우리는 일상적으로 diffuse reflection( 확산

lifeisforu.tistory.com

diffuss의 대부분은 표면의 거칠기 때문에 발생하는 것이 아님 diffuse reflection은 재질의 구성에 따라서 반사되었을 때 자신의 빛의 파장을 유지하지 못함 일반적인 경우에 표면 아래에서의 산란을 계산하기에는 너무 복잡하고 계산비용이 비싸서 albedo(반사율)라는 개념을 사용 specular는 산란이 없는데도 왜 albedo의 영향을 받는가? 평평한 면이라고 하더라도 diffuse는 막을 수 없다. 이상적으로 매끈한 평면은 존재안함

 

그렇다고 모든 물체가 diffuse reflection을 가지지는 않음 metal, 빛이 들어갈 수 없는 물질, gas, liguid, glass, transparent plastic, 일부 gem, salt crystal과 같은 single crystal 물질들, tissue, lens of a eye 같은 특별한 재질들은 diffuse reflection 을 가지지 않음 금속은 모든 빛을 흡수해서 albedo = 0 하지만 금속 내부의 자유전자가 에너지를 흡수, 방출해서 금속 자신을 구성하는 원자에 따라서 고유의 색상을 가지게 됨 

 

일반적으로 거울면 반사, 즉 정반사는 입사각과 반사각이 같을 때 가장 세다고 알고 있지만 이는 표면의 roughness에 따라 달라짐 일반적인 재질에서 specular는 거울면 반사를 하지 않고 약간 벗어나서 반사를 하는데 이를 off-specular reflection이라 부름 가장 센곳은 off-specular peak이라 부름

 

 

굴절률(Refractive index) : 굴절률은 빛이 진공에서 특정 매질(media)로 이동할 때 속도가 얼마나 느려지는지 그 비율을 측정한 것. 일반적으로 과학 문서에서는 "Index of refraction(IOR)" 이란 표현을 많이 사용

 

#스넬의 법칙(snell's law)

매질이 다를 때 얼마나 꺾이는지에 대한 공식

interface 매질의 경계

 

빛이 굴절률이 다른 매질을 만나게 되면 특정 각도에서는 굴절을 하지 않고 완전히 반사하는 경우가 있음

 

 

Fresnel Reflectance

금속은 기본 반사율 값이 높아서 작은 각도여도 반사가 잘 일어

 

프레넬 공식은 스넬의 법칙, 반사 법칙 등을 이용해서 유도됨 (편광도 고려)

n은 어떤 매질의 굴절

CG에서 쓰이는 근사계산 공식 : Schlick's approximation

모든 각도에서의 IOR( Index of refraction - 굴절율)을 알 수는 없다 그래서 근사하는 식을 사용(슐릭스식) R_{0}은 0도에서으 반사율 값 대부분의 엔진이나 문서에서는 F0 (Fresnel at Degree 0)라고 표현

IORtable.pdf
0.16MB


 


실제로는 위에 것들만 계산한거보다 더 어두워서 실측 값과 맞추기 위한 표면 거칠기에 따른 감쇄를 넣음

 

 

최종적으로 specular와 diffuse를 합산함

 

 

specular)fresnel, metallic, roughness(diffuse

 

PBS는 대량의 에셋이 필요한 프로젝트에서 더 적은 비용에서 최대의 값을 얻어내는 기술 100점 기술을 120으로 올리는 기술이 아니다.