VS 2010 OpenGL 配置与实例开发
首先参考了网上的安装配置环境部分:http://blog.csdn.net/Ididcan/article/details/4490797
OpenGL作为当前主流的图形API之一,它在一些场合具有比DirectX更优越的特性。
1、与C语言紧密结合。
OpenGL命令最初就是用C语言函数来进行描述的,对于学习过C语言的人来讲,OpenGL是容易理解和学习的。如果你曾经接触过TC的graphics.h,你会发现,使用OpenGL作图甚至比TC更加简单。
2、强大的可移植性。
微软的Direct3D虽然也是十分优秀的图形API,但它只用于Windows系统(现在还要加上一个XBOX游戏机)。而OpenGL不仅用于 Windows,还可以用于Unix/Linux等其它系统,它甚至在大型计算机、各种专业计算机(如:医疗用显示设备)上都有应用。并且,OpenGL 的基本命令都做到了硬件无关,甚至是平台无关。
3、高性能的图形渲染。
OpenGL是一个工业标准,它的技术紧跟时代,现今各个显卡厂家无一不对OpenGL提供强力支持,激烈的竞争中使得OpenGL性能一直领先。
总之,OpenGL是一个很NB的图形软件接口。至于究竟有多NB,去看看DOOM3和QUAKE4等专业游戏就知道了。
OpenGL官方网站(英文)
http://www.opengl.org/
下面将对Windows下的OpenGL编程进行简单介绍。
学习OpenGL前的准备工作
第一步,选择一个编译环境
现在Windows系统的主流编译环境有Visual Studio,Broland C++ Builder,Dev-C++等,它们都是支持OpenGL的。
第二步,安装GLUT工具包
GLUT不是OpenGL所必须的,但它会给我们的学习带来一定的方便,推荐安装。
Windows环境下的GLUT下载地址:(大小约为150k)
http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip
无法从以上地址下载的话请使用下面的连接:
http://upload.programfan.com/upfile/200607311626279.zip
Windows环境下安装GLUT的步骤:
1、将下载的压缩包解开,将得到5个文件
2、在“我的电脑”中搜索“gl.h”,并找到其所在文件夹
#include "stdafx.h"
#include <gl/glut.h>
#include <stdio.h>
#include <time.h>// 太阳、地球和月亮
// 假设每个月都是12天
// 一年12个月,共是360天
static int day = 200; // day的变化:从0到359double CalFrequency()
{static int count;static double save;static clock_t last, current;double timegap;++count;if( count <= 50 )return save;count = 0;last = current;current = clock();timegap = (current-last)/(double)CLK_TCK;save = 50.0/timegap;return save;
}void myDisplay(void)
{double FPS = CalFrequency();printf("FPS = %f\n", FPS);glEnable(GL_DEPTH_TEST);glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);glMatrixMode(GL_PROJECTION);glLoadIdentity();gluPerspective(75, 1, 1, 400000000);glMatrixMode(GL_MODELVIEW);glLoadIdentity();gluLookAt(0, -200000000, 200000000, 0, 0, 0, 0, 0, 1);// 绘制红色的“太阳”glColor3f(1.0f, 0.0f, 0.0f);glutSolidSphere(69600000, 20, 20);// 绘制蓝色的“地球”glColor3f(0.0f, 0.0f, 1.0f);glRotatef(day/360.0*360.0, 0.0f, 0.0f, -1.0f);glTranslatef(150000000, 0.0f, 0.0f);glutSolidSphere(15945000, 20, 20);// 绘制黄色的“月亮”glColor3f(1.0f, 1.0f, 0.0f);glRotatef(day/30.0*360.0 - day/360.0*360.0, 0.0f, 0.0f, -1.0f);glTranslatef(38000000, 0.0f, 0.0f);glutSolidSphere(4345000, 20, 20);glFlush();glutSwapBuffers();
}void myIdle(void)
{++day;if( day >= 360 )day = 0;myDisplay();
}int main(int argc, char *argv[])
{glutInit(&argc, argv);glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);glutInitWindowPosition(100, 100);glutInitWindowSize(400, 400);glutCreateWindow("太阳,地球和月亮");glutDisplayFunc(&myDisplay);glutIdleFunc(&myIdle);glutMainLoop();return 0;
}
4. 选择项目属性,选择C/C++->预处理器,在右侧的“预处理器定义”处,删除“_CONSOLE“,如图
VS 2010 OpenGL 配置与实例开发相关推荐
- WSE3.0构建Web服务安全(3):WSE3.0策略配置、证书、签名、与实例开发
继WSE3.0构建Web服务安全(1):WSE3.0安全机制与实例开发和WSE3.0构建Web服务安全(2):非对称加密.公钥.密钥.证书.签名的区别和联系以及X.509 证书的获得和管理之后,今天我 ...
- Opengl ES 1.x NDK实例开发之七:旋转的纹理立方体
开发框架介绍请参见:Opengl ES NDK实例开发之一:搭建开发框架 本章在第六章(Opengl ES 1.x NDK实例开发之六:纹理贴图)的基础上绘制一个旋转的纹理立方体,原理和纹理贴图一样, ...
- Opengl ES 1.x NDK实例开发之八:旋转的纹理金字塔
开发框架介绍请参见:Opengl ES NDK实例开发之一:搭建开发框架 本章在第六章(Opengl ES 1.x NDK实例开发之六:纹理贴图)的基础上绘制一个旋转的纹理金字塔,原理和纹理贴图一样, ...
- S3C2440上LCD驱动 (FrameBuffer)实例开发讲解
1.S3C2440上LCD驱动 (FrameBuffer)实例开发讲解 其中的代码也可直接参考:drivers/video/s3c2410fb.c 以下为转载文章,文章原地址:http://blog. ...
- 转:S3C2440上LCD驱动(FrameBuffer)实例开发详解
1.S3C2440上LCD驱动 (FrameBuffer)实例开发讲解 其中的代码也可直接参考:drivers/video/s3c2410fb.c 以下为转载文章,文章原地址:http://blog. ...
- Winform下CefSharp的引用、配置、实例与报错排除(源码)
Winform下CefSharp的引用.配置.实例与报错排除 本文详细介绍了CefSharp在vs2013..net4.0环境下,创建Winfrom项目.引用CefSharp的方法,演示了winfro ...
- wp实例开发精品文章源码推荐
qianqianlianmeng wp实例开发精品文章源码推荐 WP8 启动媒体应用 这个示例演示了如何选择正确的msAudioCategory类别的音像(AV)流来配置它作为一个音频 ...
- Java实例开发教程:SpringBoot开发案例
最近在做邮件发送的服务,正常来说SpringBoot整合mail还是很方便的,然而来了新的需求:A请求使用邮箱C发送,B请求使用邮箱D发送,也就是说我们需要配置两套发送服务. 单实例 首先我们来看下单 ...
- 由于开发者通过接口修改了菜单配置_Android SDK开发艺术探索(四)个性化配置...
一.前言 本篇是Android SDK开发艺术探索系列的第四篇文章.介绍了通过流式API设计思想优雅地实现SDK的自定义选项配置需求. 目录概览: 一.前言 二.SDK自定义配置2.1.什么是自定义配 ...
最新文章
- 清华系“AI帮”崛起,要驱动1500亿元产业规模
- 今天被TensorFlowLite刷屏了吧,偏要再发一遍
- A. Case of the Zeros and Ones
- 微信JS SDK Demo
- Linux内核源码中使用宏定义的若干技巧
- 我的 Serverless 实战 — Serverless 架构理念 ( 后端服务器发展 | Serverless 与 ServerFul | Serverless 定义 | 架构优缺点 )
- 【jvm】jvm 网络使用率 nicstat
- SpringBoot从入门到精通(全)
- 【重识云原生】第四章云网络第二节——相关基础知识准备
- 人工智能名片到底有什么神奇之处?
- 【信息学奥赛一本通 提高组】第三章 深搜的剪枝技巧
- cnpm : 无法加载文件 C:\Users\zsl\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本
- 如何去掉快捷方式上的小箭头
- 模仿天猫商城的J2EE商城网站项目后端5——bean包
- Zynq-7000电子相册的实现
- iText如何设置行距
- Win11系统频繁断网怎么办?Win11网络不稳定的解决方法
- android动态壁纸是什么格式的,为什么动态壁纸为APK格式? -
- PSO粒子群算法优化BP神经网络(PSO-BPNN)回归预测MATLAB代码
- 基于Spark的出租车信息查询系统
热门文章
- C#中的事件和委托(续)
- ESX与ESXi管理员必备25个命令
- 霸县计算机学校,廊坊中专排名2021
- Pytorch高阶API示范——线性回归模型
- leetcode 341. 扁平化嵌套列表迭代器(dfs)
- leetcode 62. 不同路径(dp)
- leetcode1333. 餐厅过滤器
- 怎么注销笔记本icloud_如何在笔记本电脑或台式机的Web浏览器中在线查看Apple iCloud照片
- 这三种策略可以帮助女性在科技领域蓬勃发展
- [易学易懂系列|golang语言|零基础|快速入门|(一)]