Я создаю набор трехмерных фигур для отображения в Интернете (в качестве дополнительного материала для физической бумаги), и у меня возникают некоторые проблемы с настройкой функций прозрачности.
В частности, у меня есть набор поверхности, построенные с использованием примитива <IndexedFaceSet>
, с предваряющим элементом <Material>
внутри тега <Appearance>
, который содержит элемент прозрачности:
<Shape>
<Appearance>
<Material diffuseColor='1. 0.5 0.'
specularColor='1. 1. 1.'
shininess='0.9'
transparency='0.5' />
</Appearance>
<IndexedFaceSet colorPerVertex='false'
normalPerVertex='true'
solid='false'
coordIndex='0 1 2 -1 3 4 5 -1 ...'
/>
Однако при отображении в x3dom на рисунке показан неровный внешний вид с пятнистым поведением:
Из того, что я могу сказать, только некоторые из многоугольников в <IndexedFaceSet>
получают визуализируется таким образом, что учитывает полигоны позади них, но я не уверен.
График доступен для просмотра здесь и x3d файла был произведен в Mathematica, как описано в этом Mathematica Stack Exchange Q & A , с прозрачностью, добавленной вручную. Я не знаю, связана ли проблема с c для x3dom или с форматом x3d - я получаю то же самое в freeWRL и в view3dscene , но средства визуализации там не либо наполни меня уверенностью.
Итак:
- Как называется этот эффект? Я думаю, это довольно распространенная вещь, которую можно увидеть в 3D-графике. , но я не знаю, как это назвать, и у меня возникает ощущение, что это затрудняет поиск соответствующих решений.
- Это ошибка в x3dom? признак несовершенного рендерера? Другими словами, ограничен ли движок x3dom отображением этой графики таким образом, и мне нужно либо принять это, либо сбросить прозрачность? или
- есть ли способ исправить модель или сцену, настройки или рендеринг, чтобы предотвратить появление этого пятнистого изображения?
I ' Я немного заблудился относительно того, как подойти к этому (я просто скромный физик, пытающийся вводить новшества в графическом форматировании) и был бы благодарен за любые указания о том, как подойти к этому.