Three.js 是否支持 gl_FragDepthEXT?

Kah*_*ess 1 three.js

我试图在着色器中使用 gl_FragDepthEXT 但遇到了问题。我需要做些什么才能启用此扩展程序吗?

小智 5

是的,您缺少一项要求,当您使用原始着色器时,您必须在着色器代码中使用以下字符串启用:

“#extension GL_EXT_frag_depth:启用”

使用 THREE.ShaderMaterial 时,程序字符串是部分自动生成的,因此无法在着色器字符串中足够早地添加上述字符串以避免着色器编译器错误,因此您可以启用:

material.extensions.fragDepth = true

如果支持扩展,这将使 gl_FragDepthEXT 可用作片段着色器输出。