Рисование просторые бары для здоровья в сцене Java 3D

StackOverflow https://stackoverflow.com/questions/4340294

Вопрос

Поэтому я работаю над игрой в Java 3D, и я реализую штанги здравоохранения, которые зависят от единиц.

Я начал, рисуя квадроцикл на 3D-точку над местоположением устройства и применяя поведение щита, чтобы сделать его всегда лицом к камере.

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

Так что я рассматриваю следующие варианты:

  1. Переопределяя значение буфера Z / глубины для пикселей со здоровьем пикселей, чтобы сделать рендерер думать, что они ближе к камере, чем все, что он делает позже.

    Я старался renderingAttributes.setDepthTestFunction(RenderingAttributes.ALWAYS). Отказ Хотя он заставляет рендерер нарисовать полосу здоровья поверх всего, что он нарисовал в том же районе ранее, он не помогает, когда другие пейзажи нарисованы на вершине бара здоровья позже.

    Есть ли лучший способ сделать это в Java 3D?

  2. Проектирование 3D-расположении баров здоровья на плоскость 2D перед камерой. Звучит выполнимо, но прежде чем я отправлялся на восстановление всей математики, необходимой для этого, может быть, кто-то может указать на существующее решение.

  3. Переключение с Java 3D на что-то вроде lwjgl или jmmonkeeengine (не только для этого вопроса, но общие жалобы на Java 3D, будучи мертвыми и т. Д.). Хотя я даже не уверен, что они более гибкими для этой конкретной проблемы. И из того, что я прочитал, один из худших ошибок в игре Dev переключает двигатель в среднем разработке.

Это было полезно?

Решение

Использовать Алгоритм художника: Нарисуйте штанги здравоохранения после Вы нарисовали остальную часть сцены (и с Z тестирование выключено, конечно).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top