0

一度に大量のオブジェクトを書き込もうとしていて、色を薄くしたい。ただし、を使用して文字列を作成した後.toString(16)、それが言うところのコードを読みません。new THREE.MeshBasicMaterial({ color: '0x' + color, wireframe: false, opacity: 0.5 });

現在のコードは次のとおりです。

    for (var i = 0; i < 10; i++) {
        for (var j = 0; j < 10; j++) {
            for (var k = 0; k < 10; k++) {
                geometry = new THREE.CubeGeometry(50, 50, 50);
                colorr = 254 / 10 * k;
                colorr = Math.round(colorr);
                colorr = colorr.toString(16);
                colorg = 254 / 10 * k;
                colorg = Math.round(colorg);
                colorg = colorg.toString(16);
                colorb = 254 / 10 * k;
                colorb = Math.round(colorb);
                colorb = colorb.toString(16);
                color = '0x' + colorr + colorg + colorb;
                material[i] = new THREE.MeshBasicMaterial({ color: color, wireframe: false, opacity: 0.5 });


                mesh[i] = new THREE.Mesh(geometry, material[i]);
                mesh[i].position.x = -500 + (k * 100);
                mesh[i].position.y = -500 + (j * 100);
                mesh[i].position.z = -500 + (i * 100);
                scene.add(mesh[i]);
                objects.push(mesh[i]);

            }
        }
    }

ただし、灰色がかった黒色になります。

4

2 に答える 2

2

0からコンポーネントを作成して使用する方がはるかに簡単1です...

var color = new THREE.Color().setRGB(r, g, b);
于 2013-08-20T03:27:10.953 に答える