나는 하나의 구체 만있는 3D 장면이 있으며 두 개의 텍스처가 있습니다. 하나는 밤에, 다른 하나는이 행성의 날입니다. 또한 내 장면에 lightSource (15,15,15)가 있습니다. 구의 각 정점에 대해서도 나는 정상입니다.구체의 두 텍스처 사이의 크로스 페이드
이제는 두 가지 질감을 혼합하여 낮과 밤 사이의 색이 흐려지는 것을 사실적으로 보입니다. 따라서 내적을 사용하여 정상과 빛 사이의 각도를 계산합니다. 그러나이 방법을 사용하면 각도가 0보다 큰지 (즉, 요일이 될지)를 확인하면 단단한 크로스 오버를 얻습니다. 각도에 따라 텍스처를 혼합해야합니다. 부드러운 크로스 오버입니다.
텍스처를 어떻게 혼합 할 수 있습니까? 지금까지 내 코드 :
float angle = dot(L,N);
vec4 texture = texture2D(day, textureCoord);
texture = texture2D(night,textureCoord) * (1-angle) + texture * angle;
vec4 light = vec4(ambientTerm + diffuseTerm + specularTerm , 1);
if(angle > 0) {
color = light * texture;
} else if(angle >= -0.25) {
color = texture2D(night,textureCoord)*(angle-1) + texture * (angle);
} else if(angle < -0.25) {
color = texture2D(night,textureCoord);
}