티스토리 뷰
디버거 한번, 롤백 한번
Debugger가 날 엿먹여도 이번엔 빠르게 잡은 듯
spTex 에서 흰색 영역을 과도하게 가져온다.
sphere 라고 제질 광택 분포를 나타낸 값이라
값이 없다면 가운데 검정색 부분을 가져와야한다
(specularlight 값을 저장해둔거라 보면된다)
if ( mat.sphereOperation != kSphereNone ) {
float2 normalVS = mul( (float3x3)view, normalWS ).xy;
output.spTex = normalVS * float2(0.5, -0.5) + float2(0.5, 0.5);
}
normalVS 가 0 이 나왔는데
output.spTex가 계속 0 이 나온다.
normalWS 를 강제로 0으로 주니 (0.5, 0.5) 로 제대로 나온다 머가 잘못된걸까?
모델을 보니 normal 값이 0인 부분이다.
The normalized x parameter. If the length of the x parameter is 0, the result is indefinite.
결과가 비정의라고 디버거 너까지 멋대로 동작하면 안되잖아
any 로 예외 처리했다.
DX9 에서는 0으로 주나보다
비슷한 예외.
pow 쪽에도 예외 값 있는데 이것도 디버거에서 값을 0으로 바꾼다.
값이 너무 커서 bloom 처리 결과가 사각형이 되었다.
color.rgb += input.specular;
저기 지난후 color 가 0 이 된다.
output.specular = pow( max( 0, dot( halfVector, output.normalWS ) ), mat.specularPower ) * SpecularColor;
머가 나온 걸까
예외처리하니까 정상적으로 나온다
'Game > MMD' 카테고리의 다른 글
안정화 작업(4) - Camera bug 수정, Outline (0) | 2017.11.17 |
---|---|
Dual Quaternion 버그 (0) | 2017.11.16 |
안정화 작업 (2) - 모핑이 너무 과도하다 (0) | 2017.11.14 |
안정화 작업 (1) Bullet 에서 값이 발산할 때 (0) | 2017.11.14 |
Vertex에 여러 Skinning model 지원하기 (0) | 2017.11.12 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크