簡體   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