Я успешно реализую теневой объем на iOS.
Однако у меня возникла следующая проблема: как я могу обрезать положение вершины в дальней плоскости, как это делает NV_depth_clamp в GLSL?это мой код вершинного шейдера:
void main( void ) {
highp vec3 eyepos = vec3( MODELVIEW * vec4( VERTEX, 1.0 ) );
normal = normalize( NORMALMATRIX * NORMAL );
highp vec3 ldir = normalize( LIGHTPOS - eyepos );
highp float ndotl = max( dot( normal, ldir ), 0.0 );
// How can I clip that to the far plane automatically!??!!?
if( ndotl > 0.0 ) gl_Position = PROJECTION * vec4( eyepos + ( ldir * -2000.0 ), 1.0 );
else gl_Position = PROJECTION * vec4( eyepos, 1.0 );
}
Во-вторых, при поиске вышеуказанной проблемы я обнаружил, что метод теневого тома zfail (который я реализую) запатентован, так ли это?Значит ли это, что я не могу использовать его в коммерческом приложении в App Store?
TIA!