繁体   English   中英

使用LWJGL在Java中使用光线投射透明的PNG

[英]Ray Casting a transparent PNG in Java with LWJGL

我正在制作游戏和ID,喜欢对英雄的激光(以及将来的其他东西)实施射线投射,我将子图形放在子图形表中,绘制时我将其绑定到开始和访问中,因为每个元素都知道如何绘制自身,但Spritesheet是PNG,因此某些元素带来了透明度,在openGL中可以正常工作。 我知道每个元素的位置,大小等,但是如果某些子画面具有透明性,则该位置和大小将足以使光线投射变得完美,因为它只会命中“边界框”。 因此,有没有一种方法可以使用布雷森纳姆算法(我认为这是最简单的方法,如果我做错了,请对我进行修正)使它发出光线,并使它在openGL中达到像素完美,这样我就可以获取光线与实际光线之间的碰撞点-第一个子画面的透明区域是否以这种方式出现?

没有简单的方法可以做到这一点。 您必须为射线广播创建一个自定义碰撞检查器,以查看它是否可以通过或是否与部分精灵碰撞。

但是,最好使用较小的边界框或一个圆形来表示它,或同时使用两者。 通过计算纹理中的每个像素,可以更轻松,更快速地进行计算。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM