gpt4 book ai didi

javascript - 无法使用 Three.js 更改 Material 颜色

转载 作者:行者123 更新时间:2023-12-02 16:27:42 25 4
gpt4 key购买 nike

我有一个 obj 文件,其中包含顶点组以及主对象。我正在尝试为通过顶点组标记的每个组分配颜色。我可以发现的是,在 Three.js 中,每个顶点组都是 Object3D 类型,并且没有像 setColor 这样的函数,而是每个这样的子节点有两个 THREE.Mesh 类型的子代,并且它具有通过 Material 属性访问的 setColor 函数。我不清楚这个层次结构。如何为每个顶点组设置颜色。

还有一件事是,早期版本的 Three.js 具有不同的对象子关系层次结构。请给我一些意见。我正在认真寻找解决方案

最佳答案

堆栈上有几个类似的问题溢出可以帮助您,例如 herehere .

为了能够为顶点设置颜色,您需要遍历对象树,直到找到网格几何体的面,然后您可以分配一个vertexColors数组:

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 ];
}
}

有关更多详细信息,请查看链接的问题。

关于javascript - 无法使用 Three.js 更改 Material 颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28556048/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com