Наложенные прозрачные поверхности в x3dom выглядят неровными, пятнистыми - PullRequest
2 голосов
/ 23 марта 2020

Я создаю набор трехмерных фигур для отображения в Интернете (в качестве дополнительного материала для физической бумаги), и у меня возникают некоторые проблемы с настройкой функций прозрачности.

В частности, у меня есть набор поверхности, построенные с использованием примитива <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 на рисунке показан неровный внешний вид с пятнистым поведением:

image

Из того, что я могу сказать, только некоторые из многоугольников в <IndexedFaceSet> получают визуализируется таким образом, что учитывает полигоны позади них, но я не уверен.

График доступен для просмотра здесь и x3d файла был произведен в Mathematica, как описано в этом Mathematica Stack Exchange Q & A , с прозрачностью, добавленной вручную. Я не знаю, связана ли проблема с c для x3dom или с форматом x3d - я получаю то же самое в freeWRL и в view3dscene , но средства визуализации там не либо наполни меня уверенностью.

Итак:

  • Как называется этот эффект? Я думаю, это довольно распространенная вещь, которую можно увидеть в 3D-графике. , но я не знаю, как это назвать, и у меня возникает ощущение, что это затрудняет поиск соответствующих решений.
  • Это ошибка в x3dom? признак несовершенного рендерера? Другими словами, ограничен ли движок x3dom отображением этой графики таким образом, и мне нужно либо принять это, либо сбросить прозрачность? или
  • есть ли способ исправить модель или сцену, настройки или рендеринг, чтобы предотвратить появление этого пятнистого изображения?

I ' Я немного заблудился относительно того, как подойти к этому (я просто скромный физик, пытающийся вводить новшества в графическом форматировании) и был бы благодарен за любые указания о том, как подойти к этому.

...