-1
我想在我的OpenGL程序中渲染GUI組件。它們仍然只是簡單的紋理(vbo)矩形。 我想以正確的方式完成以下工作。用於GUI的OpenGL 2d(正交)渲染,現代化的方法
- 使用屏幕座標進行繪製,或者至少使用不基於透視點浮點的座標系。例如:現在座標系是從-1f到1f(從屏幕左到右)。使用屏幕/像素座標更合乎邏輯。
- 如果很容易做到,我希望GUI在窗口(視口)調整大小時不會拉伸。
我知道,以前你可以使用不贊成的函數glOrtho
做很多事情。但是因爲我想用現代化的方式來做到這一點,希望這種方式也能更好地表現,我不知道該如何開始。 在網上搜索後,我得出結論,我必須使用着色器。我對着色器不是很熟悉。 還有一個問題:使用着色器做這個時性能是否會提高?
一個當然可以預先計算的'VEC 2(2)/viewport.xy '並將轉換簡化爲一個簡單的乘加。 – derhass
@derhass:當然。但我的目的是說明如何解決這個問題的總體思路。另外,如果OpenGL驅動程序的內置GLSL編譯器檢測到副作用「vec2(2)/ viewport.xy」是統一的並優化它,我也不會感到驚訝。雖然可能不與SPIR-V或使用UBO。 – datenwolf