http://antongerdelan.net/opengl/cubemaps.html의 GLSL 코드를 사용하여 FxPlug에서 큐브 매핑을 구현하려고합니다. 코드에 대한 유일한 주요 수정 사항은 변수 이름 변경과 gl_Vertex 및 gl_Normal 속성 대신 사용이었습니다.FxPlug는 거리에서 큐브 맵을 반전합니다.
정점 프로그램 조각 :
varying vec3 pos_eye;
varying vec3 n_eye;
pos_eye = vec3(ViewMatrix * ModelMatrix * gl_Vertex);
n_eye = vec3(ViewMatrix * ModelMatrix * vec4(gl_Normal, 0.0));
gl_Position = ProjectionMatrix * ViewMatrix * ModelMatrix * gl_Vertex;
조각 프로그램 조각가 :
vec3 incident_eye = normalize(pos_eye);
vec3 norm = normalize(n_eye);
vec3 reflected = reflect(incident_eye, norm);
reflected = vec3(InverseViewMatrix * vec4(reflected, 0.0));
vec3 cubemapColor = textureCube(cubemap, reflected).rgb;
그때 카메라를 삽입 모델에로드, 큐브 맵은 실제로 거꾸로 밖으로 시작하지만 카메라를 특정 거리에서 멀리 이동 시키면 적절한 결과를 얻습니다. 큐브 맵을 구현할 때이 문제를 본 사람이 있습니까? 나는 이것이 모션 및/또는 FxPlug에서 카메라를 다루는 방법과 관련된 문제라고 생각하고 있습니다.
행동 문제의 비디오는 비디오에서 http://youtu.be/Yj85y-VKjCY
에서 찾을 수 있습니다, 나는 기본 영역을로드를 확장하고 스카이 박스를 할 수 있습니다. 구의 큐브 맵이 거꾸로 시작됩니다. 구체를 회전 시키면 큐브 맵이 이동하지 않습니다 (카메라가 움직일 때 비디오 전체에 걸쳐 검은 질감의 인공물을 무시합니다. 메모리가 부족할 때 발생하는 것처럼 보입니다). 구형을 확대 한 후에는 좀 더 사실적인 "반사"왜곡이 발생하지만 큐브 맵은 여전히 거꾸로되어 있습니다. 큐브 맵이 어떻게 보이게되는지를 알맞은 거리로 축소하기 시작할 때가 아닙니다. 내가 알아 챘던 것은 큐브 맵이 구를 둘러싸고있는 흰색 직사각형이 완전히 보일 때 올바르게 보인다는 것입니다.
이 문제를 해결하는 방법에 대한 조언을 주시면 감사하겠습니다. 미리 감사드립니다!