예전 글은 여기
http://chulin28ho.egloos.com/3749030
개념 자체는 꽤 간단하고, 제작 공식도 꽤 간단한데다가
예제들을 보면 대단히 효과가 좋아보여서 적용해 봤는데
현실은 생각만큼 녹록하지 않군요 OTL

좌측이 적용된 것 우측이 적용 안된 것.
공식은 이거
float height = tex2D(normalTex, In.Tex).a;
float offset = 0.02 * (2.0f* height - 1.0f);
In.Tex = In.Tex + offset * V.xy;
분명히 작동은 잘 하는데, 원하는것 만큼 대단하지는 않다고 할까요.
게다가 노말맵의 Z 부분의 높이 표현은 꽤 엉망이어서 따로 하이트 맵을 그려주지 않으면 제대로 효과가 나오지 않습니다.
나왔다 하더라도, 균일하고 붙어있는 벽돌같은 재질이 아니면 효과가 눈에 띄이기도 힘들고요.
여기에서는 일단 봉인해 둬야 하겠습니다.
…패럴렉스 오클루젼 맵핑에 도전해봐?
* 변화가 잘 보여지도록 GIF 에니메이션으로 만들었습니다.
확실히 잘 튀어나오네요. 이렇게 알고 보면 물론 보이지만, 일반인들이 한 쪽만 봤을때는 그다지 차이를 못느낀다는 것이 단점.
‘이 기능이 잘 보이는 모양’이 따로 있네요 역시. 예제에서처럼 벽돌벽 같은 연속되고, 낮은 부분이 뾰족하고 폭이 적은 부분에 어울리는 기능입니다. 지금처럼 들어간 부분이 넓으면 그 효과는 상당히 감쇠됩니다.
지금 외각에 띠가 둘러진 것처럼 보이는 부분은 시차맵핑을 계산할 때 텍스쳐를 어느 부분까지 가져올것이냐에 대한 상수값이기 때문에, 저 라인을 정확하게 맞추는건 사실 불가능합니다.
즉 패럴렉스 맵핑을 사용하기 위해서는 경계선이 확실한 텍스쳐로 되어 있는 돌출부분을 그려서는 안되고, 경계선이 아예 없거나 어느 정도 뭉뚱그려진 디퓨즈 텍스쳐일때 효과가 좋다는 말이겠지요.
