glsl 버텍스 쉐이더의 현재 정점 위치에서 픽셀의 투영 피라미드의 눈금 너비를 계산하고 싶지만 계산이 제대로되지 않습니다. 다음은 명백하게 잘못된 예입니다.GLSL 정점 셰이더의 시선 간격 픽셀 폭
// GLSL VERTEX SHADER
#version 410 compatibility
uniform vec4 viewport; // same as glViewport
in vec4 gl_Vertex;
void main()
{
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
float pixelWidth = gl_Position.z/viewport.z;
<snip>
그러나 이것은 FOV 나 클리핑 평면을 고려하지 않습니다.
이 함수는 프래그먼트 셰이더에서만 사용할 수 있으며 꼭 꼭 사용해야하는 것은 아닙니다. – atb
업데이트 된 답변보기 –
OK, 의미론을 사용하여 버텍스 셰이더의 현재 버텍스 z- 깊이에서 "픽셀 피라미드"의 월드 - 스페이스 너비가 필요합니다. 당신의 대답은 여전히 도움이되지 않지만, 정보를 주셔서 감사합니다. – atb