три js меня sh с альфа-маской, отбрасывающая тень - PullRequest
1 голос
/ 14 февраля 2020

Одна плоскость с альфа-маской должна отбрасывать тени. Это так, но для всей плоскости - без применения альфа-маски -.

Обыскивая, я обнаружил, что добавление customDeptMaterial к me sh должно сделать это:

var customDepthMaterial = new THREE.MeshDepthMaterial( {
            depthPacking: THREE.RGBADepthPacking,
            alphaMap: alphaTex,  
            alphaTest: 0.5
        } );
figures.customDepthMaterial = customDepthMaterial;

Не то чтобы я был абсолютно уверен в том, что происходит в точности, но я должен что-то упустить, потому что он продолжает разыгрывать всю плоскость

Пожалуйста, посмотрите полную скрипку: https://jsfiddle.net/truji7/gj7az9eo/34/

Как я могу отбросить тень с альфа-фильтром?

1 Ответ

2 голосов
/ 14 февраля 2020

PointLights - единственный тип освещения, который использует MeshDistanceMaterial вместо MeshDepthMaterial .

object.customDistanceMaterial = new THREE.MeshDistanceMaterial( {
    alphaMap: alphaTex,
    alphaTest: 0.5,
}

Пример JSFiddle

...