2012-06-03 52 views
3

我正在開發一個渲染到紋理的過程,涉及到使用幾個攝像頭渲染整個幾何場景。然後將這些相機的輸出結合起來,並通過將每個幾何的頂點座標轉換爲頂點着色器中的屏幕座標(我在這裏使用GLSL)將其直接映射到屏幕上。優化渲染到紋理的過程

該過程正常,但我意識到一個小問題:我創建的每個RTT相機都會創建一個與屏幕輸出相同尺寸的紋理。也就是說,如果我的視口尺寸爲1024x1024,即使幾何圖形佔據屏幕的256x256部分,每個RTT相機也會渲染1024x1024紋理中的256x256幾何圖形。

該解決方案似乎相當簡單 - 調整RTT相機紋理尺寸以匹配幾何圖形佔據的實際屏幕區域,但我不確定該如何實現。也就是說,我怎麼能(例如)確定一個幾何圖形佔用一個256x256的屏幕區域,以便我可以相應地將RTT相機的輸出紋理設置爲256x256像素?

我使用的API(OpenSceneGraph的)使用軸對齊邊界框,所以我的運氣那裏..

的思考?

回答

0

爲什麼運氣不好?你不能使用軸對齊的邊界框來計算區域嗎?

我的想法:

  • 採取邊框的8個點和項目他們到相機的圖像平面。
  • 用於在圖像平面可以判斷軸對齊2D邊界框得到的2D點再次

這應該是一個正確的上限幾何形狀可佔據的空間。