渲染復古2D 像素圖形時,通常使用較低的內部解析度進行像素化,並將輸出縮放到較大的解析度展示。然而,縮放 GL_LINE_LOOP 基元可能會導致非像素化線條。
OpenGL 的 glOrtho 函數定義了一個 2D 座標系,其中原點位於左下角並延伸到右上角。透過呼叫 glOrtho(0, 320, 240, 0, 0, 1),你定義了一個 320x240 的虛擬畫布。
但是,當使用 glViewport 函數縮放輸出時,虛擬畫布並沒有物理上調整大小。相反,基元是在完整輸出解析度(例如 960x720)上繪製的,然後按比例放大。這會產生像素化的矩形,但非像素化的線條。
建議的解決方案是渲染到所需虛擬解析度(在本例中為320x240)的紋理,然後繪製該紋理以所需的輸出解析度(960x720 ) 到視窗。這可確保圖元以虛擬解析度渲染,並保持其像素化外觀。
這種方法可確保以虛擬解析度繪製線條,即使放大到更高的解析度也能保持其像素化外觀輸出解析度。
以上是在 OpenGL 中縮放時如何實現像素化線條?的詳細內容。更多資訊請關注PHP中文網其他相關文章!