2011-05-29 52 views
1

好吧,這是一個相對簡單的問題,我想知道在屏幕空間的哪個位置剛剛繪製了一個特定的網格。我打算將這些信息存儲在某種數據存儲中,以便當我與屏幕空間中的某些東西進行交互時,我可以在寄存器中查找並找到對象,即單擊屏幕上繪製的太空船,然後選擇目標等那個畫圖操作剛剛畫出的像素是哪個?

我找不到找出哪些像素網格的任何方式被吸引到雖然...

或者,如果我沒有關於它是什麼,我想要做的東西很明顯,請告訴我!

回答

1

有沒有簡單的方法來做到這一點。但是,您可以使用其他紋理作爲渲染目標並使用獨特的顏色渲染這些網格。

因此,例如,您將#FF0000賦予網格A,並將其繪製到第二個渲染目標。現在,當您從第二個渲染目標中選擇一個像素並查看該顏色時,如果它是#FF0000,則可以理解該像素是網格A的一部分。因此,您可以輕鬆地選擇在某個像素上繪製的網格其中一個像素。

0

爲什麼你不把你的屏幕空間座標投影到3D空間?我遇到的唯一困難是事實是我會留下一架飛機,我可以檢查一架Mesh是否與該架飛機相交,但我經常有多個「挑選」候選人。

查看Google for DirectX Unproject,並有各種文章討論它。實施起來有時很複雜,但做得很好,實際上非常漂亮;不要被那些說不起作用的在線人士推遲,它的確行得通!