Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Three.js-如何更改缓冲几何体中的选定对象材质?_Javascript_Three.js - Fatal编程技术网

Javascript Three.js-如何更改缓冲几何体中的选定对象材质?

Javascript Three.js-如何更改缓冲几何体中的选定对象材质?,javascript,three.js,Javascript,Three.js,我在缓冲几何体中有一堆对象 问题: 如何更改单个对象的材质属性以使所有其他对象不受影响 详情: 我可以获得单个选定对象(通过光线投射技术)。 此外,我可以看到所选对象仅具有.material属性(而不是.materials)。此.material属性恰好是缓冲几何体的材质。因此,当我更改选定对象的材质属性(比如颜色)时,它实际上会影响缓冲几何体中的所有对象 我希望这个解释/问题有意义 如何获取所选对象: var intersects = this.Raycaster.intersectObjec

我在缓冲几何体中有一堆对象

问题: 如何更改单个对象的材质属性以使所有其他对象不受影响

详情:

我可以获得单个选定对象(通过光线投射技术)。 此外,我可以看到所选对象仅具有.material属性(而不是.materials)。此.material属性恰好是缓冲几何体的材质。因此,当我更改选定对象的材质属性(比如颜色)时,它实际上会影响缓冲几何体中的所有对象

我希望这个解释/问题有意义

如何获取所选对象:

var intersects = this.Raycaster.intersectObject(this.Mesh);

                if (intersects.length > 0) {
                    this.IntersectObject = intersects[0];
如何获取选定对象的材质:

this.IntersectObject.object.material

一个网格有一个几何体和一种材质,如果将多个几何体合并为一个几何体,它们不能有不同的材质,可能有多个网格具有相同的材质参照,这就是为什么所有对象都会受到影响我有一个缓冲几何体。所以我相信这是一个网格,对吗?为了解决这个“一个网格,一种材质”的限制,我能改变一个对象的属性吗,比如颜色,或者它的不透明度,即使它在缓冲几何体中?不像使用多个网格那么容易,您可能需要将自定义属性添加到几何体中,并编写自己的着色器材质来使用它们(例如,不透明度是一个统一的=绑定到材质,而不是顶点),我认为颜色已经内置为属性,添加“颜色”属性和更改对象每个顶点的值应该不需要参考