我正在尝试创建一个考虑到我在场景中定义的裁剪平面的着色器。所有我使用了“香草”的材料,这些裁剪平面做工精细:THREE.MeshLambertMaterial
,THREE.MeshPhongMaterial
,和THREE.MeshPhysicalMaterial
,但THREE.ShaderMaterial
缺少此实现。这是我的意思的示例:https : //jsfiddle.net/fraguada/27LrLsv5/
在此示例中,有两个立方体,一个带有a THREE.MeshStandardMaterial
,另一个带有由定义的材料THREE.ShaderMaterial
。带有THREE.MeshStandardMaterial
夹子的立方体可以。具有THREE.ShaderMaterial的多维数据集不会被裁剪。
(我通常不像我在jsfiddle中显示的那样在脚本标签中定义顶点/片段着色器,而是以类似于此的方式定义它们:https : //github.com/mrdoob/three.js/blob /dev/examples/js/shaders/BasicShader.js。)
因此,有几个问题: