normal mapping artifacts

반응형





예전에 디자이너가 게임 케릭터를 확대해 보면 위와 같이 specular가 각져보인다고 말했다.
당시에는 일정이 바빳고 어차피 모바일게임에서 케릭터를 그정도 까지 확대할 일이 없어서 
그냥 넘어갔었는데 어쩌다 보니 눈에 보여서 살펴보게되었다.

우선 원인은 normalmap으로 부터 얻은 normal값이 0~1의 범이기 때문에 *2 -1의 연산이
들어가게 되는데 이 과정에서 normalize를 안해주었던 것이다.
vector를 정규화 해 주는 이유는 벡터의 크기를 고려하지 않고 벡터의 방향만을
고려하기 위한 것이다. (머 이런저런 이유가 더 있을까?)
무튼 그래서 정규화를 해 주면 위의 오른쪽 사진처럼 블럭모양의 결점은 안생긴다.
그런데 이 문제를 해결하기 위해 검색을 하다보니 Lyon이라는 specular model에 대한
아티클을 발견하게 되었다.
이는 하프벡터와 노말을 내적한 후 specular power값으로 지수연산하는 블린 퐁과
조금 다른 연산을 한다.

이 방식은 블린퐁 모델과 매우 비슷한 결과값을 만드는데 거리값과 훨씬 작은
specular power 연산을 한다.(Specular power로 지수연산을 하지 않는다.)

자세한 내용은 아래 링크된 pdf를 보면 된다.(난 마지막 부분 소스만 봤지만.ㅡㅡ;)






reference links : 
- http://theinstructionlimit.com/tag/blinn-phong
- http://jalnagakds.tumblr.com/post/25825085620/phong-blinn-phong 
- Lyon model pdf file

'Study > Graphics ' 카테고리의 다른 글

normal map compression  (0) 2016.06.13
Semantics  (0) 2016.05.09
tangent space, 접선 공간  (0) 2014.04.07
DXT 압축  (0) 2013.03.15
BRDF (Bidrectional Reflectance Distributing Function)  (0) 2012.12.06
TAGS.

Comments