Three. js - Двухсторонние полупрозрачные материалы работают только под определенным углом - PullRequest
1 голос
/ 07 февраля 2020

В настоящее время я использую три. js и пытаюсь создать трехмерный опыт с полупрозрачным материалом, который можно просматривать со всех сторон. Я заметил, что в зависимости от угла камеры, только некоторые части me sh являются полупрозрачными и будут отображать содержимое позади них. В этом примере ниже я создал два полуцилиндра и применил один и тот же прозрачный материал с переполнением стека lo go. Полуцилиндр слева правильно показывает lo go на ближайшей поверхности, а также поверхность позади нее. Полуцилиндр справа показывает только lo go на ближайшей поверхности и не может отобразить lo go, который находится позади него. Тем не менее, он правильно отображает фоновое изображение, поэтому материал по-прежнему корректно обрабатывается как прозрачный: semi-transparent example

Если я поверну орбитальную камеру на 180 градусов в сторону, которую изначально не было видно через сейчас работает и другая сторона демонстрирует неправильное поведение. Это наводит меня на мысль, что это связано с сортировкой положения камеры / глубины. Материалом в этом случае является стандартный MeshPhongMaterial с прозрачным значением true, side как DoubleSide и одной картой для переполнения прозрачного стека lo go. Геометрия формируется из геометрии CylinderGeometry с открытым концом. Любая помощь будет принята с благодарностью!

...