three.js-如何在ShaderMaterial和fragmentShader中使用alphatest值
从Thansk到@Mugen87,我使用后期处理方法在我的场景中创建了一个动态遮罩:(如果你移动相机,你会看到立方体消失在后面,看不见的圆圈,用这张图片制作:) 我想使用片段着色器脚本在我的遮罩上添加一些效果。在这把小提琴上,你可以看到我的纹理在移动(我将three.js-如何在ShaderMaterial和fragmentShader中使用alphatest值,three.js,fragment-shader,Three.js,Fragment Shader,从Thansk到@Mugen87,我使用后期处理方法在我的场景中创建了一个动态遮罩:(如果你移动相机,你会看到立方体消失在后面,看不见的圆圈,用这张图片制作:) 我想使用片段着色器脚本在我的遮罩上添加一些效果。在这把小提琴上,你可以看到我的纹理在移动(我将THREE.MeshBasicMaterial替换为THREE.ShaderMaterial): 当我将这种新材料与后处理方法相结合时,我无法达到与第一个JSFIDLE相同的结果。我不知道在片段着色器中哪里添加我的#define ALPHATE
THREE.MeshBasicMaterial
替换为THREE.ShaderMaterial
):
当我将这种新材料与后处理方法相结合时,我无法达到与第一个JSFIDLE相同的结果。我不知道在片段着色器中哪里添加我的#define ALPHATEST值。
您可以在此处看到结果:
我想我已经接近预期的结果了。有人知道在我的片段着色器中正确添加ALPHATEST值的位置吗?谢谢您这里是您的自定义着色器材质的原始更新小提琴: 将图像用作alpha贴图时,可以像内置材质一样对其进行采样。这意味着alpha测试看起来是这样的:
if (texture2D(texture1,xy).g < 0.5) discard;
if(texture2D(texture1,xy).g<0.5)丢弃;
谢谢,它很有魅力。谢谢你的时间和解释!