01->OpenGL 实验环境配置(glut)及简单实例
-- 简介 --
OpenGL是通过数学等理论知识定义3D或2D模型,由计算机通过流水线渲染技术进行渲染,产生逼真的场景图像,电影和游戏中的特效都有用到。每每看到精美的画面,真想自己也能做出如此作品。先好好学习吧!
想要学习是好事,关键是要坚持,方法得当。之前在导师的提议下,买了《交互式计算机图形学》,粗略过了一遍,其中有提到glut这个图形库,这是个开发中小型图形应用的跨平台图形库,对于入门学习图形学是很适合的。可以查看百度百科介绍 。
glut下载链接:https://www.opengl.org/resources/libraries/glut/ 【页面中点击Pre-compiled Win32 for Intel GLUT 3.7 DLLs for Windows 95 & NT 下载】
-- 环境配置 --
实验中下载window预编译文件,默认文件名为:glutdlls37beta.zip,解压到G:\glut\lib,可根据自己需要解压到其他位置。
总共包含5个文件:glut.dll、glut32.dll、glut.lib、glut32.lib、glut.h
为了方便,将两个动态链接库都拷贝到C:\Windows\System32 和C:\Windows\SysWOW64
启用visual studio 2017,新建一个空项目,在属性管理器中选择Debug|Win32,右键属性,选择VC++ 目录, 点击右边的包含目录并编辑路径为G:\glut\lib,库目录同样操作
接着,左手边点击链接器,展开选择输入,在附加依赖项中编辑glut32.lib和glut.lib
vs中配置方法都类似,在学习OpenCV时配置情况类似。
-- 代码测试 --
新建一个源文件main.cpp
输入以下代码:
#include <glut.h> void display(void) {
glClear(GL_COLOR_BUFFER_BIT);
glRectf(-0.5f, -0.5f, 0.5f, 0.5f);
glFlush();
} int main(int argc, char *argv[]) {
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutInitWindowPosition(, );
glutInitWindowSize(, );
glutCreateWindow("第一个OpenGL程序");
glutDisplayFunc(&display);
glutMainLoop();
return ;
}
运行后结果如下:
默认情况下,结果中包含一个命令行窗口和OPenGL的结果窗口。
-- 画点、画线、画矩形 --
在上面测试代码中,将display函数修改如下,即可画出几个点几条边和一个矩形。
画点画边包含在glBegin()和glEnd()之间,点的话就简单指定位置及大小颜色等,边的话类似,只是每条边要以两个点确定,故在画线实验代码中点成对出现
void display(void) {
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.0f, 0.3f, 1.0f);
glRectf(-0.5f, -0.5f, 0.5f, 0.5f); // 画矩形
glPointSize(5.0f);
glColor3f(1.0f, 0.0f, 0.0f); // 打点
glBegin(GL_POINTS);
glVertex2f(0.0f, 0.0f);
glVertex2f(-0.5f, -0.5f);
glVertex2f(0.5f, -0.5f);
glVertex2f(-0.5f, 0.5f);
glVertex2f(0.5f, 0.5f);
glEnd(); // 画线
glLineWidth(2.0f);
glColor3f(0.0f, 1.0f, 1.0f);
glBegin(GL_LINES);
glVertex2f(1.0f, 0.0f);
glVertex2f(0.0f, 1.0f);
glVertex2f(0.0f, 1.0f);
glVertex2f(-1.0f, 0.0f);
glVertex2f(-1.0f, 0.0f);
glVertex2f(0.0f, -1.0f);
glVertex2f(0.0f, -1.0f);
glVertex2f(1.0f, 0.0f);
glEnd(); glFlush();
}
修改后,运行结果如下:
01->OpenGL 实验环境配置(glut)及简单实例的更多相关文章
- Fedora和Ubuntu下安装OpenGL开发环境配置
Fedora下OpenGl开发环境配置 开发OpenGL工程需要3个库文件和对应的头文件: libglut.so,libGLU.so,libGL.so, gl.h ,glu.h, glut.h 这些库 ...
- OVS + dpdk 安装与实验环境配置
***DPDK datapath的OVS的安装与实验环境配置 首先肯定是DPDK的安装 0:安装必要的工具 make gcc ...
- Windows7+VS2010下OpenGL的环境配置
http://johnhany.net/2014/01/environment-for-opengl-with-vs2010/ OpenGL(Open Graphics Library)是一个开放的. ...
- OpenGL+VS2010环境配置及遇到的问题
OpenGL+VS2010+GLUT工具包+WIN10系统: 第一步,安装GLUT工具包 Windows环境下的GLUT下载地址:(大小约为150k) http://www.opengl.org/re ...
- 01 Java jdk环境配置
1.1 书籍(B) [1] java核心技术 [2] 实战java 1.2 网址(B) oracle.com http://www.ibm.com/developerWorks/cn/ https:/ ...
- 【React Native开发】React Native For Android环境配置以及第一个实例(1)
年9月15日也公布了ReactNative for Android,尽管Android版本号的项目公布比較迟,可是也没有阻挡了广大开发人员的热情.能够这样讲在2015年移动平台市场上有两个方向技术研究 ...
- 史上最简单OpenGL+VS2017环境配置
这里采用 最简单的方法: (1)添加Nuget包管理器(方便我们为项目添加OpenGL的库) (2)新建一个项目 右键我们的项目名 ——> 管理NuGet程序包——>搜索nupengl,然 ...
- OpenGL开发环境配置-Windows/MinGW/Clion/CMake
因为某些原因,不想用过于臃肿的VS了,转而使用常用的jetbrains的CLion,Clion沿袭了jetbrans的优良传统,基本代码提示功能还是比较好的,不过就是对于windows不熟悉cmake ...
- OpenGL 开发环境配置:Visual Studio 2017 + GLFW + GLEW
Step1:Visual Studio 2017 Why 开发环境,后面编译GLFW 和 GLEW也要用 How 这里使用的是Visual Studio 2017的 Community 版本,直接官网 ...
随机推荐
- 为什么TCP 会粘包断包UDP不会
TCP(transport control protocol,传输控制协议)是面向连接的,面向流的,提供高可靠性服务.收发两端(客户端和服务器端)都要有一一成对的socket,因此,发送端为了将多个发 ...
- 修改 firefox 默认缩放比例
- Java控制台
Console类的目的是使Java程序和控制台之间的交互更容易.Console类是java.io包中的一个实用程序类,用于访问系统控制台.控制台不能保证在所有机器上的Java程序中可访问. 例如,如果 ...
- 20140613 Opencv重新编译 word小技巧
1.OPENCVGPU重新编译+自己的文件 注意点: 1.生成OPENCV.sln解决方案后,在ALL_build的属性中,添加相应目录: ALL_BUILD中的Debug和Release上的Micr ...
- 重大利好,Dubbo 3.0要来了。
关于Dubbo的好消息,2018年1月8日,Dubbo创始人之一梁飞在Dubbo交流群里透露了Dubbo 3.0正在开工的重大消息. Dubbo是阿里开源的分布式框架,已经多年停止更新处于半死不活状态 ...
- 48-Ubuntu-系统信息-3-查看进程命令
序号 命令 作用 01 ps aux process status查看进程的详细状况 02 top 动态显示运行中的进程并且排序 03 kill [-9] 进程代号 终止指定代号的进程,-9表示强行 ...
- hdu6325 /// 上凸包
题目大意: 给定n 为n个点 给定n个点的坐标 两个点(xi,yi) (xj,yj)之间的花费是 xi*yj-yi*xj (可能为负数) 要求从点1经过若干个点到点n最小花费的路径 且路径要按x轴方向 ...
- Windows平台将远程服务器的目录挂载为本地磁盘
我们在设置数据库自动备份时,为了数据的安全往往需要直接将数据备份到远程服务器上.在Linux可以通过NFS挂载来实现,在Windows平台可以直接通过net use+subst来实现将远程服务器的目录 ...
- css渐变写法 从左到右渐变三种颜色示例;
background:linear-gradient(to right,#7f06a8,#a02bc2,#7f06a8)
- mysql数据库 --表操作
一.表与表之间建关系 (1) 将所有的数据放在一张表内的弊端 表的组织结构不清晰 浪费存储时间 可扩展性极差 ---> 类似于将所有的代码写入到一个py文件中 -->解耦部分 (2) 如何 ...