Game/MMD

안정화 작업(4) - Camera bug 수정, Outline

newpolaris 2017. 11. 17. 01:07

Camera가 모션 중간에 엄청 밝아지는 현상 발견

문제는 2개가 섞였는데

tone mapping operator 를 꺼놔서 auto exposer의 값이 감당 안되는 것이고

distance 가 음수일 경우

SetEyeAtUp( cameraPos, m_Position, up );

여기서 direction을 구할때 음수가 나와서 그렇다.

이 후에 윤곽선이 진하게 나오는 현상이 발견

거리 자체는 멀지만 projection matrix의 scaling으로 화면과 가깝게 표현해서 그렇다.

float4 posVS = mul(toView, float4(pos, 1));
float fovFactor = length(float2(projection[0][0], projection[1][1]));
float scale = length(posVS.xyz) / fovFactor / edgeFactor;
pos = pos + normal * Mat.EdgeSize * input.edgeScale * scale;

아래는 깡패같은 MMD의 outline

shader 안타고 vertex를 전처리했는데 어떻게 한건지;