回答

1

如何修改或重寫OpenGL中的透視除法計算?

你不行。它是OpenGL中爲數不多的「硬連線」(或實際上現代GPU上的硬編碼)之一。但這沒有問題。只需在頂點着色器的末端設置gl_Position.w = 1,這將有效地使透視分區成爲無操作。然而,你也沒有透視,所以你也必須在你的頂點着色器中實現它。您可以將gl_Position /= gl_Position.w;寫爲頂點着色器中的最後一條語句,以使視角自己分開,並繞過內置的分隔線。

也可以使用x,y,z和w作爲OpenGL矩陣中的變量嗎?

我不太清楚你的意思。

+0

謝謝你的幫助。這需要一個自定義的頂點着色器嗎?關於x,y,z和w,我想用矩陣乘x乘z(y和z將乘以1)。 – user2689489

+0

@ user2689489:當然這需要一個自定義的頂點着色器。但是對於現代的OpenGL,無論如何你都需要一個頂點着色器。那麼關於另一部分,你如何寫下數學公式(忘記編程語言)以及你想要計算的內容。 – datenwolf

+0

謝謝;我會嘗試,當我有權訪問OpenGL。方程將是這個http://i39.tinypic.com/330cj8p.png(乘以x乘以z,所以在x中沒有透視效應(因此消除x/z),或者改變它以使它是x /(z/2),從而給出一個減少的透視/收斂效果,我不知道這是幾何可能的。 – user2689489