我现在已经使用了Three一段时间,但过去几天我已经陷入困境了。我试图将自定义属性传递给我的着色器,我想经常更新。着色器作为ShaderMaterial添加到我的网格中。我遇到的问题是,我注意到几个版本之前,三个重做它处理属性的方式。您可以在几何体上使用它们,而不是将它们放在材质中。虽然我能够理解,但是普通的几何体无法处理自定义属性,这种情况使我陷入了困境,因为我非常依赖它提供的所有便利。我尝试过使用BufferGeometry,但是当我无法正确地将我的UV贴图(我不断更新)放到它上面时,这最终导致混乱和沮丧。如果您想要自定义属性,或者可能(虽然不太理想)将UV正确应用到其上,是否有任何BufferGeometry方法的替代方法?普通几何体有没有原因可以使用自定义属性?
答案 0 :(得分:0)
您可以将几何转换为缓冲几何,然后设置其自定义属性,从而保持两个世界的最佳状态。这将为您省去处理缓冲测量uvs的麻烦,正如您似乎要问的那样。紫外线应该被传递。
像这样:
var bufferGeometry = new THREE.BufferGeometry().fromGeometry( geometry );