web-dev-qa-db-fra.com

Comment dessiner un seul pixel dans OpenGL?

Quelqu'un peut-il me dire comment dessiner un seul pixel blanc à une coordonnée, disons (100 200)?

J'utilise GLUT et jusqu'à présent, j'ai découvert comment ouvrir une fenêtre vierge. Une fois que je découvrirai comment dessiner des pixels, je l’utiliserai pour implémenter l’algorithme de dessin de trait Bresenham . (Oui, je sais que OpenGL peut tracer des lignes. Je suis obligé de le mettre en œuvre moi-même).

#include <stdio.h>
#include <GL/glut.h>

static int win(0);

int main(int argc, char* argv[]){
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_RGBA|GLUT_SINGLE);
    glutInitWindowSize(500,500);
    glutInitWindowPosition(100,100);

    //step 2. Open a window named "GLUT DEMO"
    win = glutCreateWindow("GLUT DEMO");
    glClearColor(0.0,0.0,0.0,0.0); //set background

    glClear(GL_COLOR_BUFFER_BIT);
    glFlush();
    glutMainLoop();
}
7
quantumbutterfly

Cela peut être fait facilement en définissant le rectangle en ciseaux, puis en effaçant, ce qui effacera uniquement la zone spécifiée dans le rectangle en ciseaux. Par exemple:

glEnable(GL_SCISSOR_TEST);
glScissor(100, 200, 1, 1);
glClearColor(1,1,1,1);
glClear(GL_COLOR_BUFFER_BIT);
// Remember to disable scissor test, or, perhaps reset the scissor rectangle:
glEnable(GL_SCISSOR_TEST); 
0
MuertoExcobito