我想製作一個內部爲320x240的遊戲,但呈現在屏幕上的整數倍(640x480,960,720等)。我正在尋找復古的2D像素圖形。OpenGL規模單像素線
我已通過經由glOrtho()設置內部分辨率實現此:
glOrtho(0, 320, 240, 0, 0, 1);
然後我擴大由3倍的輸出分辨率,這樣的:
glViewport(0,0,960,720);
window = SDL_CreateWindow("Title", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 960, 720, SDL_WINDOW_OPENGL);
我畫這樣的矩形:
glBegin(GL_LINE_LOOP);
glVertex2f(rect_x, rect_y);
glVertex2f(rect_x + rect_w, rect_y);
glVertex2f(rect_x + dst_w, dst_y + dst_h);
glVertex2f(rect_x, rect_y + rect_h);
glEnd();
它可以在320x240下完美工作(未縮放):
當我擴展到960x720,像素渲染所有的作品就好了!然而,GL_Line_Loop似乎並未在320x240的畫布上繪製,而是放大了,但是繪製在最終的960x720畫布上。其結果是在3px的世界:(
如何畫線的320×240 glOrtho帆布1px的線條,而不是960x720輸出印刷品嗎?
如果FBO不是你的場景,總會有[使用三角形的DIY寬線條](http://stackoverflow.com/a/3058978/44729)。 – genpfault