티스토리 뷰
F0 대신 Specular를 사용할 수 있단다
In other words, the Fresnel factor adds a dependency of the material color on the angle between the direction to the viewer and the halfway vector.
Thus, we replace the constant material color with Schlick's approximation in any calculation of the specular reflection.
어짜피 Fresnel term은 작아서 빛과 정반대가 되지 않으면 효과는 없다
검은색이 보기 좋진 않다.
http://www.valvesoftware.com/publications/2008/GDC2008_StylizationWithAPurpose_TF2.pdf
MMD 에서는 이 역활로 Toon 이라는 넘이 있다
그런데 shadow를 쓰면 이걸 안쓰고
comp = GetShadow( input.shadowPositionCS, input.positionCS.xyz );
diffuseShadow *= MaterialToon;
float3 diffuse = lerp(diffuseShadow, diffuseMaterial, comp);
Toon 의 가장 어두운 한점을 가지고 lerp 를 취한다
specular term 을 D는 Beckmann, G는 cook-torrance
http://simonstechblog.blogspot.kr/2011/12/microfacet-brdf.html https://en.wikipedia.org/wiki/Specular_highlight
D term 해설 http://lifeisforu.tistory.com/351?category=567143
하프 벡터 h 와 미세면 노멀 m 의 각도가 0 이 되는 미세면의 분포를 찾는 것이 Specular D 함수의 목적입니다.
그러므로 어떤 문헌들에서는 이런 가정을 깔고 "하프 벡터가 미세면의 노멀이다" 라는 식의 표현을 하게 되는 것입니다.
그냥 더해버리면 약간이라 specular를 가진다면 흰색으로 떠버린다;
NCHL 에서는 이걸 막기 위해 0.1 을 곱해준다
좀더 찾아보니,
http://lifeisforu.tistory.com/306
k 는 diffuse 계수입니다.
( 1 - k ) 가 들어 가는 것은 에너지 보존을 위해서입니다.
그리고 rs 는 specular 항입니다.
이런것도 있고,
Sébastien Lagarde even states that using (1−F0) to weight the diffuse term is incorrect.
답변은 아래와 같다.
Lerp(diffuse, specular, total_surface_reflection)
저 위의 (1-F0) 는 아래 2개 링크에서
http://simonstechblog.blogspot.kr/2011/12/microfacet-brdf.html
결국, 앞에서의 이야기 종합한다면 다 비슷한 소리다.
(c_diff + c_spec) <= 1 이라면 (1-Fresnel) 이 추가로 필요없다는 건데,
c_spec 은 specular 계수이고,
예전의 specular_material 를 F0 로 러프하게 가정한다면
diffuse의 계수는 1-F0 = 1 - specular_material
의미는 알 수 없지만 합은 1이다.
specular term 의 F0 를 sepcular_material 를 썼다면
Hemisphere
http://blog.naver.com/lifeisforu/80023387725
ambient를 1로
ambient를 0.2로 그결과 앞보다 밝아짐;
Rim 이란 factor가 있는데 Backlight 랑 막 곱한다;
이건 나중에 보고
Rim light
너무 광할하다
https://www.slideshare.net/leemwymw/wrapped-diffuse
뒤에걸 보면 rim 을 dot(L, normal) 으로 곱해준다.
http://www.gamedevforever.com/35
요즘엔 림라이트셰이더 rim-light shader로 많이들 fake하는데 바로 이 프레넬효과를 immitate하는 것입니다.
사실인지는 모르겠지만 그렇다하면 버리자.
우선 Rim의 이름을 가졌지만 backlight의 림 부분만 땃다고 보고 따라가보자.
5배 factor의 경우
목표는 아래다.
머 이케 차이나는지
'Game > MMD' 카테고리의 다른 글
NCHLShader (4) (0) | 2017.11.29 |
---|---|
NCHL Shader (3) (0) | 2017.11.29 |
NCHL Shader (1) (0) | 2017.11.27 |
Skinning (2) (0) | 2017.11.27 |
Motion Blur (1) (0) | 2017.11.24 |
- Total
- Today
- Yesterday