OpenGL的简单研究-开端
来源:互联网 发布:js ul li点击显示隐藏 编辑:程序博客网 时间:2024/05/29 19:14
一直想要学习的但是没有学习的东西,大学一直在等待这个时间,终于可以闲下来研究一下这个部分的内容了。
计算机图形学,让计算机处理各种图像的东西,里面也存在很多算法和数学知识,很值得研究的一个领域,之前一直混迹在各种Web和服务器之中,终于可以学一些感觉很酷的东西。其实Web服务器也很酷。
我准备的运行环境还是比较简单的,是Win10操作系统,VS2015的开发环境。因为这种方式配置简单一些,之前试过使用GCC作为编译器和CFree作为开发环境,一直不成功,于是就用开了VC开发。
环境配置的过程是在网上百度的,内容没有什么技术含量,那么久开始看第一个代码吧。
一般都是从Hello World开始的,但是OpenGL还是从画一个方框开始吧:
1 #include <GL/glut.h> 2 void myDisplay() { 3 glClearColor(0.0, 0.0, 0.0, 0.0); 4 glClear(GL_COLOR_BUFFER_BIT); 5 6 glColor3f(1.0f, 1.0f, 1.0f); 7 glRectf(-0.5, -0.5, 0.5, 0.5f); 8 9 glBegin(GL_TRIANGLES);10 glColor3f(1.0f, 0.0f, 0.0f);11 glColor3f(0.0f, 1.0f, 0.0f);12 glColor3f(0.0f, 0.0f, 1.0f);13 glEnd();14 15 glPointSize(3);16 glBegin(GL_POINT);17 glColor3f(1.0f, 0.0f, 0.0f);18 glColor3f(0.0f, 1.0f, 0.0f);19 glColor3f(0.0f, 0.0f, 1.0f);20 glEnd();21 22 glFlush();23 }24 25 int main(int argc,char* argv[]) {26 glutInit(&argc, argv);27 glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);28 glutInitWindowPosition(100, 100);29 glutInitWindowSize(400,400);30 glutCreateWindow("hello world");31 glutDisplayFunc(&myDisplay);32 glutMainLoop();33 return 0;34 }
这个程序的作用是画一个白色的方框,下面分析一下这个代码:
在对于OpenGL中会有下面几个操作,比较基础和固定:
1 int main(int argc,char* argv[]) { 2 //对GLUT进行初始化,函数必须在其他GLUT使用之前调用一次,固定格式。 3 glutInit(&argc, argv); 4 //设置显示方式,RGB为RGB颜色,还有INDEX索引颜色,SINGLE单缓冲,DOUBLE双缓冲 5 glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE); 6 //在屏幕出现的位置 7 glutInitWindowPosition(100, 100); 8 //窗口的大小 9 glutInitWindowSize(400,400);10 //创建窗口,标题为“helloworld”,而且这个窗口创建之后不会立即显示在屏幕上,必须调用了glutMainLoop()才会显示在屏幕上11 glutCreateWindow("hello world");12 //设置一个函数,画图是调用这个函数13 glutDisplayFunc(&myDisplay);14 glutMainLoop();15 return 0;16 }
1 //画图的函数 2 void myDisplay() { 3 //清空颜色为黑色,就是不显示图像的地方为黑色 4 glClearColor(0.0, 0.0, 0.0, 0.0); 5 //设置背景为清空颜色 6 glClear(GL_COLOR_BUFFER_BIT); 7 8 glColor3f(1.0f, 1.0f, 1.0f); 9 10 //画图,画一个矩形11 glRectf(-0.5, -0.5, 0.5, 0.5f);12 13 14 15 /*16 glBegin(GL_TRIANGLES);17 glColor3f(1.0f, 0.0f, 0.0f);18 glColor3f(0.0f, 1.0f, 0.0f);19 glColor3f(0.0f, 0.0f, 1.0f);20 glEnd();21 22 glPointSize(3);23 glBegin(GL_POINT);24 glColor3f(1.0f, 0.0f, 0.0f);25 glColor3f(0.0f, 1.0f, 0.0f);26 glColor3f(0.0f, 0.0f, 1.0f);27 glEnd();28 29 */30 31 32 //保证前面的命令立即执行33 glFlush();34 }
0 0
- OpenGL的简单研究-开端
- 程序员生涯的开端。。。
- 一个新的开端
- 软件人生的开端
- 新的开端
- 人生征程的开端
- 好的开端
- 新的开端
- 云上的开端
- ACM集训的开端!!!
- 虚拟主机的开端
- JVM的开端
- Openerp的艰难开端
- 关于EXT开端的
- 新的开端
- 博客的开端--charshaw
- ACM路程的开端
- 安卓的开端
- php的<?php ?>标签匹配
- Ajax中Get请求与Post请求的区别
- Redis学习
- 使用James搭建一个自己的邮箱服务器
- 动态获取屏幕宽度,并减去了浏览器左边滚动条的宽度
- OpenGL的简单研究-开端
- kettle--从java中获取参数
- Java设计模式之策略模式
- ACM常用算法
- GO语言面向对象
- 如何实现表格内的内容呈现...省略符
- RN使用ART库画扇形+动画
- Go语言接口
- Android客户端连接服务器端,向服务器端发送请求HttpURLConnection