小编Lui*_*ada的帖子

将剪辑添加到THREE.ShaderMaterial

我正在尝试创建一个考虑到我在场景中定义的裁剪平面的着色器。所有我使用了“香草”的材料,这些裁剪平面做工精细:THREE.MeshLambertMaterialTHREE.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。)

因此,有几个问题:

  1. THREE.ShaderMaterial是否应该开箱即用剪切平面?(有一个裁剪属性,但不确定它启用了什么)
  2. 如果没有,如何修改此着色器以包括必要的参数和着色器块以启用剪切?

glsl three.js

2
推荐指数
1
解决办法
724
查看次数

标签 统计

glsl ×1

three.js ×1