【发布时间】:2015-03-09 23:31:07
【问题描述】:
我想使用柏林噪声修改网格中的一个对象。我现在是怎么做的……
-
我正在创建对象并将它们添加到 3d 对象...
spheres = new THREE.Object3D(); for ( var i = 0; i < 40; i ++ ) { var ball = new THREE.Mesh(new THREE.SphereGeometry(20,20,20), material); ball.position.x = Math.random() * 600 - 300; ball.position.y = Math.random() * 600 - 300; ball.position.z = Math.random() * 600 - 300; spheres.add(ball); } scene.add(spheres); -
我正在使用着色器材质...
material = new THREE.ShaderMaterial({ uniforms: { time: { type: "f", value: 0.0 }, noisemax: { type: "f", value: 100.0 }, transparent: true }, vertexShader: document.getElementById( 'vertexShader' ).textContent, fragmentShader: document.getElementById( 'fragmentShader' ).textContent });
着色器材质适用于所有 40 个球没有问题。我想做的是更改 spheres.children[0] 的着色器。是否可以更改一个对象的 perlin 噪声值 (noiseMax),或者它本质上是否会影响使用该材质的所有对象的材质?
【问题讨论】:
-
这是个好问题。你试过了吗?在过去的几天里,我也一直在玩着色器,如果您有兴趣,我已经在 here 发了一篇关于它的帖子
标签: three.js glsl webgl shader