Apabila memaparkan grafik piksel 2D retro, adalah perkara biasa untuk menggunakan peleraian dalaman yang lebih rendah untuk pikselasi dan menskalakan output kepada resolusi yang lebih besar untuk paparan. Walau bagaimanapun, penskalaan primitif GL_LINE_LOOP boleh menghasilkan garisan tidak berpiksel.
Fungsi glOrto OpenGL mentakrifkan sistem koordinat 2D di mana asalnya berada di sudut kiri bawah dan memanjang ke atas-kanan. Dengan memanggil glOrtho(0, 320, 240, 0, 0, 1), anda mentakrifkan kanvas maya 320x240.
Walau bagaimanapun, apabila fungsi glViewport digunakan untuk menskalakan output, kanvas maya tidak diubah saiznya secara fizikal . Sebaliknya, primitif dilukis pada resolusi output penuh (cth., 960x720) dan kemudian ditingkatkan. Ini menghasilkan segi empat tepat berpiksel tetapi garisan tidak berpiksel.
Penyelesaian yang disyorkan ialah untuk menghasilkan tekstur resolusi maya yang diingini (320x240 dalam kes ini) dan kemudian lukis tekstur tersebut ke tetingkap pada resolusi output yang dikehendaki (960x720). Ini memastikan bahawa primitif dipaparkan pada resolusi maya, mengekalkan penampilan pikselnya.
Pendekatan ini memastikan garisan dilukis pada resolusi maya, mengekalkan penampilan berpikselnya walaupun ditingkatkan kepada yang lebih tinggi peleraian output.
Atas ialah kandungan terperinci Bagaimana untuk Mencapai Garis Piksel Apabila Menskala dalam OpenGL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!