2013-07-17 104 views
1

讓我看看我是否理解。如果我使用多個視口,我可以在我的OpenGL應用程序中創建多個「相機」。對?OpenGL +多個攝像頭

嗯,我有一個對象,可以在視口1中看到,但在視口2中不可見。如果我想要該對象出現在兩個視口中,那麼...我必須畫雙!

這意味着,如果我有兩個對象,如果我有兩個「攝像頭」,我有兩次繪製這些對象。所以我在場景中所擁有的一切,我必須得到雙倍。

這樣好嗎?是否有另一種方法來分割屏幕而不復制對象?

+0

我想你想是避免API調用重複的東西。如果目標hw支持它,這可以通過視口數組完成。 http://www.opengl.org/sdk/docs/man/xhtml/glViewportArray.xml –

+0

謝謝你的回答,朋友。 –

回答

4

這樣好嗎?

是的,就是這樣。

是否有另一種方法來拆分屏幕而不重複對象?

你沒有複製對象。你不能這樣做,因爲在OpenGL中沒有像「對象」那樣的東西。 OpenGL只是一種複雜的鉛筆,可以在幀緩衝區上繪製。沒有場景,沒有物體,只有點,線和三角形繪製到幀緩衝區。

你所要做的就是從不同的角度畫幾張同樣的東西的照片,就像你想用鉛筆在紙上做的一樣。

+0

感謝您的回覆。我有一個問題,如果我有一個函數,繪製一個模型,執行各種操作,如旋轉計算等。如果我爲每個視口調用此函數,我沒有加倍同一模型的操作數量? –

+0

是的,你這樣做,但隱喻datenwolf得到你很清楚:它像在紙上畫鉛筆。你最終想要2張紙嗎?你必須提請兩遍,2點的視圖(2個攝像頭),2次計算成本..也許您可以在面向對象的程序設計,以節省一些參數和一些積分,但它是由你的程序,而不是OpenGL的 – nkint

+0

非常好我的朋友。非常感謝您的幫助。 :-) –