2010-12-18 63 views
0

我有這些方法的雪碧類數組:x,y,widthheight。他們根據他的z財產進行分類。最後是最上面的。我也有屏幕尺寸。我如何知道特定的Sprite是否可見?如何檢查一個精靈對象是否可見?

+0

描述了精靈在您的場景中可以看不見的方式以及爲什麼要控制它。因爲它完全落後於(在z中)另一個精靈(s)?因爲它超出了屏幕邊界?請擴大。 – tokland 2010-12-18 23:51:41

回答

2

「讓它工作」的最簡單方法是以反向Z順序渲染。這是最接近的。

否則,你有一個N^2問題找到閉塞。您可以通過構建遮擋樹來優化這一點。

另一個選項可能是深度測試緩衝區。

class Sprite 
    def occluded?(other) 
    # check collision in X and Y 
    # if they are colliding and self.z < other.z then self is partially or fully occluded 
    end 
end 
+1

但是,如果您按照該順序進行渲染,則會出現透支問題。通過執行[z-culling](http://en.wikipedia.org/wiki/Z-buffering#Z-culling),首先繪製最接近的圖像,您可以避免繪製不完全可見的圖像。 (但是傳統的z-culling使用每像素訪問,OP可能不可用。 – Phrogz 2010-12-19 03:20:28

相關問題