установить прозрачность (непрозрачность: 0) для некоторых граней геометрии сферы - PullRequest
0 голосов
/ 29 марта 2019

Я хочу сделать половину лица сферы прозрачной, а другую половину - цветной.Как я могу это сделать?

Я пытался установить прозрачный цвет, но, похоже, это не сработало.

            geometry = new THREE.SphereGeometry(1.0, 17, 17);

            for (var i = 0; i < geometry.faces.length; i++) {

                let x = Math.random();

              //Here I'm trying to set a transparent color to half the faces of the sphere.

                let color = 0
                if (x < 0.5) {
                    color = '0x000000';
                } else {
                    color = '0xffffff';
                }
                geometry.faces[i].color.setHex(color);

            }

            var material = new THREE.MeshPhongMaterial({ vertexColors: THREE.VertexColors });

            sphere = new THREE.Mesh(geometry, material);

Все грани сферы окрашеныесли я сделаю так, как указано выше.

Я хочу, чтобы половина граней была выбрана случайным образом и была прозрачной, чтобы свет внутри сферы рассеивал свои лучи подобно эффекту богов, который похож на тот, что показан на видео ниже.https://www.youtube.com/watch?v=suqFV7VGsL4

1 Ответ

0 голосов
/ 03 апреля 2019

Глядя на шейдеры GLSL в three.js, three.js не поддерживает альфа на цветах вершин.Он использует только красный, зеленый и синий, а не альфа.

Чтобы использовать цвета вершин для создания чего-то прозрачного, вам нужно написать собственный шейдер или изменить шейдеры three.js

...