void init()
{
glClearColor(0, 0, 0, 0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
}
void display()
{
glColor3f(1, 0, 1);
glBegin(GL_POLYGON);
glVertex3f(0.25, 0.25, 0);
glVertex3f(0.75, 0.25, 0);
glVertex3f(0.75, 0.75, 0);
glVertex3f(0.25, 0.75, 0);
glEnd();
glFlush();
}
int main(int argc, char **argv)
{
glutInit(&argc, argv); //初始化
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); //选择RGBA模式还是颜色索引模式
glutInitWindowPosition(100, 100); //初始化窗口的位置
glutInitWindowSize(1000, 500); //窗口的大小
glutCreateWindow("hello"); //创建一个支持OpenGL渲染环境的窗口
init(); //设置背景颜色和坐标系统
glutDisplayFunc(display); //渲染场景(回调函数)
glutMainLoop(); //启动程序
return 0;
}
《高效学习OpenGL》之Hello OpenGl
原创
©著作权归作者所有:来自51CTO博客作者oxoxwork的原创作品,请联系作者获取转载授权,否则将追究法律责任

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
《高效学习OpenGL》之 如何使用OpenGL扩展
一. 如何判断是否是显卡所支持的扩展:使用函数glGetString,看一下它的原型:con
OpenGL #include 头文件 html -
《高效学习OpenGL》之 openGL工作流程
OpenGl工作流程的输入端可以是图像或集合图元,但最终的结果都是光栅化后的对象这些对象进入帧
OpenGL 数据 光栅化 运算器 -
《高效学习OpenGL》 之 过滤
指定放大和做小的过滤方法 glTexParameteri(
filter opengl 2d -
《高效学习OpenGL》 之 点参数 glPointParameter()
void glPointParameterfvEXT(GLenum pname, const TYPE* param); //设T,那么param就是
opengl glPointParameter 迭代 自底向上 重采样 -
《高效学习OpenGL》之视图变换 gluLookAt()
注意:视图变换函数必须在调用任何模型变换函数之前调用,确保首先作用于
opengl gluLookAt 模型变换 -
《高效学习OpenGL》 之 创建光源 glLightfv()
1.创建光源void glLightfv (GLenum light, GLenum pname, const GLfloat *params); t li
opengl glLightf 环境光 方向性光源 视频教程 -
《高效学习OpenGL》 之 雾 glFog(), glFogCoordf()
雾是根据雾混合因子把雾颜色与源片段的颜色进行混合。雾混合因子f
opengl glFog glFogCoordf 计算表达式 -
《高效学习OpenGL》 之 隐藏表面消除
隐藏表面消除就是消除实心物体被其他物体所遮挡的部分。深度缓
opengl 隐藏表面消除 -
《高效学习OpenGL》 之 模板测试 glStencilFunc(), glStencilOp()
启用模板测试:glEnable(GL_STENCIL_TEST);设置模板测试所使用的比较函
opengl glStencilFunc glStencilOp 深度测试 数据