本文主要是介绍babylon中的世界坐标反算,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
//从uv、深度中反算世界坐标
vec3 getWorldPosition(vec2 uv, float textureDepth, mat4 projection, mat4 viewProjInvert){
float zclip = textureDepth * (zMax + zMin) - zMin;
float zndc = projection[2].z / (1.0 - projection[3].z / zclip);
vec4 ndc = vec4((uv.x - 0.5) * 2.0, (uv.y - 0.5) * 2.0, zndc, 1.0);
mat4 invProj = viewProjInvert;
vec4 clip = invProj*ndc;
vec3 worldPos = (clip/clip.w).xyz;
return worldPos;
}
这篇关于babylon中的世界坐标反算的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!