Java3d: Как нарисовать 2d оверлей на сцене Java 3D? - PullRequest
2 голосов
/ 09 июня 2010

Есть несколько методов, я хотел бы получить некоторые отзывы о плюсах / минусах их.Насколько я знаю, есть:

  • Техника "Растр"

Приходится использовать изображения, и это не реальное наложение, просто еще один объект в 3D-сцене,Другие объекты могут скрыть это.

Легко, но я не могу избавитьсямерцания

Существуют ли другие техники, о которых я не знаю?Будет ли проще использовать другую библиотеку, такую ​​как LWJGL или JME?

1 Ответ

1 голос
/ 22 июня 2010

Это «мерцание», которое вы упоминаете, называется Z-fight , и это происходит потому, что ваш 3D-рендер не знает, какой полигон находится перед другим, потому что значения Z-позиции усекаются перед рендерингом.и когда они находятся слишком близко (или одинаково), это приводит к той неопределенной ситуации, которая приводит к мерцанию, о котором вы упомянули.

Z-бой можно смягчить, но вы не можете полностью устранить его,Таким образом, в конечном итоге вы можете либо применить текстуру с нужными буквами к поверхности, либо попытаться вручную отрегулировать значения положения 2D-оверлея, пытаясь постепенно увеличивать его расстояние от других полигонов, маленькими битами, до тех пор, покаон настолько мал, что выглядит так, как будто он есть, и достаточно велик, чтобы значения Z отличались после их усечения, устраняя сомнения для рендера и, следовательно, устраняя Z-бой.

...