gpt4 book ai didi

c++ - Opengl+c++ 需要渲染一个五颜六色的正方形,但我的代码显示空白屏幕

转载 作者:太空宇宙 更新时间:2023-11-04 12:15:14 24 4
gpt4 key购买 nike

我正在用 C++ 学习 Opengl我正在尝试渲染一个多色方 block ,但首先我想显示一个简单的方 block 。但一切都是徒劳的,它显示的是一个空白屏幕。我正在 xcode 上尝试我的代码是

#include <iostream>
#include <GLUT/GLUT.h>
#include<OpenGL/OpenGL.h>
void init(void)
{
glShadeModel( GL_SMOOTH );
glClearColor( 1.0, 1.0, 1.0, 1.0 );
glEnable( GL_COLOR_MATERIAL );
glEnable( GL_BLEND );
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
}
void coloredSquare(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glBegin ( GL_LINES );
glColor3f ( 0.9,0.9,0.9 ); // very light gray
for(int i=10;i<180;i+=10) // vertical lines
{
glVertex2f( i,0 );
glVertex2f( i,180 );
}

for(int j=10;j<180;j+=10) // horizontal lines
{
glVertex2f( 0,j );
glVertex2f( 180,j );
}
glEnd();

// b. points
glPointSize(3.0); // 3 pixel point. why it only works outside of glBegin-glEnd.
glBegin ( GL_POINTS );
glColor3f ( 0.3,0.3,0.3 ); // dark gray
for(int i=10;i<180;i+=10) // draw point at every grid intersection
{
for(int j=10;j<180;j+=10)
{
glVertex2f( i,j );
}
}
glEnd();

glFlush(); // Render now

}


int main(int argc, char** argv)
{
//GLUT & OpenGL
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);

glutInitWindowSize(200, 200);

//glutInitWindowPosition(0, 0);
glutCreateWindow("GLUT Program");
//glutCreateWindow("Colored Square");
init();
glutDisplayFunc(coloredSquare);
glutMainLoop();
return 0; /* ISO C requires main to return int. */

}

如果有人有一些想法,请对此有所了解谢谢

最佳答案

您的几何图形已关闭。 OpenGL 的默认视口(viewport)是 (-1..1, -1..1)。

coloredSquare() 顶部的类似内容开始:

glLoadIdentity();
glTranslatef(-1, -1, 0);
glScalef(1/90.0, 1/90.0, 1/90.0);

注意:确保矩阵模式是模型 View ,如果您在其他地方将模式设置为投影,可能需要在上面的行前面加上以下行:

glMatrixMode(GL_MODELVIEW);

关于c++ - Opengl+c++ 需要渲染一个五颜六色的正方形,但我的代码显示空白屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8030430/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com