- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
三.js
我正在尝试创建一个每面都有不同颜色的二十面体。
var IcoGeom=new THREE.IcosahedronGeometry(1);
var IcoCol=[];
for (var i=0;i<IcoGeom.faces.length;i++) {
IcoCol.push(new THREE.MeshBasicMaterial({color:SkyColorRandomizer()}));
}
var IcoMat=new THREE.MeshFaceMaterial(IcoCol);
var myObj=new THREE.Mesh(IcoGeom, IcoMat);
SkyColorRandomizer只是一个返回随机颜色的函数。
现在,问题来了:它将所有二十面体着色为相同的颜色(每次都是随机的),因此它无法按预期工作。现在,如果您将 IcoGeom 更改为 BoxGeometry,它工作得非常好,并且将立方体的面全部着色为不同的颜色,这非常奇怪。另一件事是:如果你进入 myObj.material.materials 你会看到它们都有不同的颜色,但我只是不明白为什么它在二十面体的情况下不起作用,但在立方体上却完美地工作。
感谢任何帮助:)
最佳答案
如果您使用MeshFaceMaterial
,则必须为每个面分配一个materialIndex
,如下所示:
geometry.faces[ i ].materialIndex = i;
但是,为每个面分配不同颜色的更好方法是设置面颜色:
geometry.faces[ i ].color.set( Math.random() * 0xffffff );
...
var mesh = new THREE.Mesh( geometry, new THREE.MeshBasicMaterial( { vertexColors: THREE.FaceColors } ) );
关于javascript - MeshFaceMaterial 不适用于某些几何形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28998379/
三.js 我正在尝试创建一个每面都有不同颜色的二十面体。 var IcoGeom=new THREE.IcosahedronGeometry(1); var IcoCo
根据three.js github上的各种帖子,MeshFaceMaterial最终会被弃用。 我目前将它用于我的地形。当然,这不是最好的方法。其实它很蹩脚。对于一个我不能使用 BufferGeome
我们最近切换到 r68 并将所有几何图形移动到 THREE.BufferGeometry。 我们在很多地方使用了 THREE.MeshFaceMaterial,根据 BufferGeometry fa
当前尝试在 three.js 上将图像环绕立方体并出现以下错误“THREE.MeshFaceMaterial 已被删除。请改用数组。',从以前的搜索来看,我尝试使用的方法可能不再可用,是否有任何人知道
我现在尝试了几种不同的光源(Directional、Spot、Point),但它们都没有在 MeshFaceMaterial 对象上产生漂亮的阴影。相反,整个 MeshFaceMaterial 对象将
我正在尝试使用 THREE.js 框架在 WebGL 中 build 一座建筑。 我是 3D 图形新手,从未使用过任何其他工具(DX、OpenGL...) 我正在尝试使用以下代码在我的场景中创建一座建
我是 Three.js 的新学习者。 MeshFaceMaterial 有一些问题。所以任何人都可以在这种情况下帮助我。我将非常感谢他。 最佳答案 是的,MeshFaceMaterial 已弃用。您可
我的代码设置可以根据不同的条件更改某些对象的颜色。它当前使用诸如之类的循环 for (j = 0; j < objects[i].children.length; j++) { objects
由于我使用修订版 54 而不是修订版 48,我在脚本中得到了以下异常(exception): Uncaught TypeError: Cannot read property 'map' of und
我正在使用 ThreeJS r65 创建一个简单的多维数据集。立方体的相对面分配了相同的颜色: var scene = new THREE.Scene(); var camera = new THRE
我正在使用 ThreeJS r65 创建一个简单的多维数据集。立方体的相对面分配了相同的颜色: var scene = new THREE.Scene(); var camera = new THRE
我是一名优秀的程序员,十分优秀!