Ray Casting прозрачный PNG в Java с LWJGL

Я делаю игру, и я хотел бы реализовать raycasting для лазера героя (и другие вещи в будущем), у меня есть мои спрайты в листе спрайтов, который я связываю в начале и получаю доступ, когда я рисую, поскольку каждый элемент знает, как рисовать себя , но спрайт-лист представляет собой PNG, и поэтому некоторые элементы обладают прозрачностью, что нормально работает в openGL. я знаю положение, размер и т. д. каждого элемента, но если некоторые спрайты имеют прозрачность, положение и размер недостаточны для идеального луча, поскольку он попадет только в «ограничивающую рамку». Итак, есть ли способ бросить луч с использованием алгоритма Брезенхема (я считаю, что это самый легкий способ, поправьте меня, если я ошибаюсь) и сделать его пиксельным идеальным в openGL, чтобы я мог получить точку столкновения луча с фактическим не -прозрачная зона первого спрайта мешается?


person Xkynar    schedule 12.07.2013    source источник
comment
Вы спрашиваете, как сделать рейкаст через прозрачные части спрайтов? Также ваша игра 3D или 2D?   -  person Chase    schedule 12.07.2013
comment
Да я и это 2D   -  person Xkynar    schedule 12.07.2013
comment
И если вы также можете посоветовать мне самую легкую технику raycast для этой цели, я был бы благодарен   -  person Xkynar    schedule 12.07.2013


Ответы (1)


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

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

person Chase    schedule 12.07.2013