티스토리 뷰

Game/MMD

NCHL Shader (1)

newpolaris 2017. 11. 27. 23:08

TAA 구현 중 지겨워서

캐릭터 표현을 바꾸기 위해 찾아보니

https://youtu.be/987OuFe8590

이런게 있었다. 기본 Shader로 NCHL 라는 걸 사용했다는데

http://mmdguide.tistory.com/459

Cook-Torrance 반사 모델, Half Lambert, 림 라이트 등으로 구성되었다고 한다.

Halft Lambert의 정의는 square를 포함해야 하는 것 같다.

https://developer.valvesoftware.com/wiki/Half_Lambert

그 덕에 아래 아저씨는 normalized half-lambert 계산할 때 치환해서 품

http://www.project-asura.com/program/d3d11/d3d11_006.html

그럼 왜 다들 suqre는 빼먹고 쓸나 했더니

http://www.valvesoftware.com/publications/2008/GDC2008_StylizationWithAPurpose_TF2.pdf

squre를 안썼다. 다른 slide에서는 not used 라고 된 것도 봄.

어짜피 그리 안 중요

당연히 좀더 검은게 squre 붙인 것

저 normalize term (energy conserve trerm)은 왜 필요한가?

https://computergraphics.stackexchange.com/questions/3684/how-to-correctly-implement-lambertian-brdf-with-point-light

https://seblagarde.wordpress.com/2012/01/08/pi-or-not-to-pi-in-game-lighting-equation/

구식의 Diffuse + Specular + Ambient 를 사용한다면

http://www.rorydriscoll.com/2009/01/25/energy-conservation-in-games/

별 필요는 없다.

이미지를 Gamma 환경에서 조정한거랑 유사하게 실제 화면에 잘 보이게 조정 된 거라 보면 되는 듯

굳이 한다면,

ambient는 주변광이니 좀 줄이고,

diffuse + specular > 1 보다 크니 잘라내고

light는 1 기준이므로 적당히 곱해서 강도를 늘리고

단일 light source 에 대해 spec, diffuse balance 나 맞춰지는 정도

Li * (Cs * Specular + Cd * diffuse) where Cd + Cs <= 1

http://www.project-asura.com/program/d3d11/d3d11_006.html

Phong + Half Lambert

너무 블링블링하다. Ambient term 이 plat 한색을 넣어주는 역활을 했는데

위 식에서는 그걸 죽여버리니 위와 같이 됨

http://www.rorydriscoll.com/2009/01/25/energy-conservation-in-games/

Clearly, the specular model benefits significantly from being energy conserving so I think most people would say that it’s worth it. 
Switching to a model where the diffuse and specular have to compete for energy might not be though, since it’s can be harder to tweak. 

'Game > MMD' 카테고리의 다른 글

NCHL Shader (3)  (0) 2017.11.29
NCHL Shader (2)  (0) 2017.11.28
Skinning (2)  (0) 2017.11.27
Motion Blur (1)  (0) 2017.11.24
버그 잡기 (1) - shadow map  (0) 2017.11.23
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크