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_Rendering_Webgl - Fatal编程技术网

Javascript 无法使用three.js更改材质颜色

Javascript 无法使用three.js更改材质颜色,javascript,three.js,rendering,webgl,Javascript,Three.js,Rendering,Webgl,我有一个obj文件,其中包含顶点组和主对象。我正在尝试为通过顶点组标记的每个组指定颜色。我能找到的是,在three.js中,每个顶点组的类型都是Object3D,没有类似于setColor的函数,而是每个这样的子对象都有两个three.Mesh类型的子对象,并且它有通过材质属性访问的setColor函数。我不清楚这种等级制度。如何为每个顶点组设置颜色 还有一件事,早期版本的three.js具有不同层次的对象-子对象关系。请给我一些意见。我正在深入地寻找一个解决方案在stackoverflow中有

我有一个
obj
文件,其中包含顶点组和主对象。我正在尝试为通过顶点组标记的每个组指定颜色。我能找到的是,在
three.js
中,每个顶点组的类型都是
Object3D
,没有类似于
setColor
的函数,而是每个这样的子对象都有两个
three.Mesh
类型的子对象,并且它有通过材质属性访问的
setColor
函数。我不清楚这种等级制度。如何为每个顶点组设置颜色


还有一件事,早期版本的
three.js
具有不同层次的对象-子对象关系。请给我一些意见。我正在深入地寻找一个解决方案

在stackoverflow中有几个类似的问题,可以帮助您喜欢和喜欢

要能够为顶点设置颜色,您需要遍历对象树,直到找到网格几何体的面,然后在那里可以指定
顶点颜色
阵列:

var numberOfSides, j, vertexIndex;

for ( var i = 0; i < geometry.faces.length; i++ ) 
{
    face = geometry.faces[ i ];   
    face.color = baseColor;      
    numberOfSides = ( face instanceof THREE.Face3 ) ? 3 : 4;
    for( j = 0; j < numberOfSides; j++ ) 
    {
        vertexIndex = face[ faceIndices[ j ] ];
        face.vertexColors[ j ] = geometry.colors[ vertexIndex ];
    }
}
var numberOfSides,j,vertexIndex;
对于(变量i=0;i
有关更多详细信息,请查看链接问题