写给想要学习opengl的同学们。

刚开始学习opengl的时候,对于整个环境的搭建以及一些概念不太清晰,网上的资料又比较凌乱,因此在此总结一下,方便大家。

首先,是有一个windows系统,我用的是win8,不过相信其他系统应该还是很接近的。

1. 安装windows kit 8.0,安装完成后会出现在C:\Program Files (x86)\Windows Kits\8.0下。

其实这部不是必须的,因为默认的windows8就自带了一些老版本的sdk的内容,里面就有我们编译opengl所需要的头文件和库。例如C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A。

2. 安装vs2012,这个什么用处就不必多说了吧。

3. 去http://sourceforge.net/projects/freeglut/下载最新的freeglut。当前版本2.8.1。

freeglut的全称是free OpenGL utility toolkit,其实他和opengl本身并没有什么关系,他的作用是方便程序员处理例如窗口,键盘事件,鼠标事件之类的东西。

因为他是跨平台的,所以假如一个opengl程序是用glut开发的话,那在windows或者linux下是不需要进行任何的修改的。

那为什么是freeglut而不是glut那?其实刚开始他就叫glut,不过老版本已经停止更新很久了,所以后来别人又建了个新的项目叫freeglut,API都是兼容的。

4. 去http://sourceforge.net/projects/glew/下载最新的glew。当前版本1.10.0。

glew的全称是OpenGL Extension Wrangler Library,他的作用是什么那?

在此之前先要介绍下opengl在windows下的情况。万恶的微软为了推自己的dirext3d,所以默认对opengl的支持是很有限的,从opengl1.1开始就再也没有升级了,差不多都十多年了。

所以现在windows下对于opengl的支持,全靠显卡厂商。正因为此,更新到最新的显卡驱动也是非常必须的。对于不一样的显卡,支持opengl的版本也是不一样的,具体需要上各家网站查看。譬如我的GTX9600,就只支持opengl3.x,要支持4.x就必须要换新卡了。

虽然安装完驱动后就支持最新的opengl了,但是微软并没有提供直接的opengl API,导致使用起来比较繁琐。

于是,glew得用处就来了,他其实就是对这些繁琐的事情进行的封装,使得程序员可以很方便的调用glxxx的opengl函数。

东西都介绍好了,下面就开始实际操作了。

freeglut下载下来的是源代码,需要自己编译。

打开freeglut-2.8.1\VisualStudio\2012\freeglut.sln,选择release然后build,会在freeglut-2.8.1\lib\x86下生成freeglut.lib和freeglut.dll。

对于freeglut,我们需要3个东西:

头文件在freeglut-2.8.1\include\GL下,我们需要把这些文件拷贝到C:\Program Files (x86)\Windows Kits\8.0\Include\um\gl下

静态库文件freeglut.lib,拷贝到C:\Program Files (x86)\Windows Kits\8.0\Lib\win8\um\x86下

动态库文件freeglut.dll,拷贝到C:\Windows\SysWOW64下

对于glew,有win下编译好的版本glew-1.10.0-win32,直接下这个就好

然后和freeglut一样,

头文件在glew-1.10.0\include\GL下,拷贝到C:\Program Files (x86)\Windows Kits\8.0\Include\um\gl下

静态库文件glew-1.10.0\lib\Release\Win32\glew32.lib,拷贝到C:\Program Files (x86)\Windows Kits\8.0\Lib\win8\um\x86下

动态库文件glew-1.10.0\bin\Release\Win32\glew32.dll,拷贝到C:\Windows\SysWOW64下

至此,环境就搭建好了,下面我们写一个简单的应用测试下即可

#include "stdafx.h"
#include <windows.h>
#include <GL/glew.h>
#include <GL/glut.h>#pragma comment (lib, "glew32.lib") void init() { glClearColor(0.0f, 0.0f, 0.0f, 0.0f); } void display() { glClear(GL_COLOR_BUFFER_BIT); } int _tmain(int argc, char* argv[]) { glutInit(&argc, argv);  glutInitWindowPosition(100, 100); glutInitWindowSize(800, 480); glutInitDisplayMode(GLUT_RGBA); glutCreateWindow("opengl"); glewInit(); init(); glutDisplayFunc(display); glutMainLoop(); return 0; }

要是编译能通过,运行能见到窗口,那就大功告成了。

下面就可以尽情享受opengl带来的快乐了~

转载于:https://www.cnblogs.com/hjlweilong/p/5636592.html

win8+sdk8+vs2012+freeglut+glew开发opengl相关推荐

  1. 开源项目推荐:OpenGL之gult/freeglut/glew/glfw/glad的联系与区别

    本篇内容主要参考了文章:OpenGL+VS2017 环境配置(亲测好使)::附带必要知识点_FuXiii的博客-CSDN博客_vs2017环境配置,但是经过本人局部修改,并添加了个人见解. 1.Ope ...

  2. OpenGL之gult/freeglut/glew/glfw/glad的联系与区别

    转 https://blog.csdn.net/libaineu2004/article/details/105879521 转 https://blog.csdn.net/qq_40565033/a ...

  3. 一张图弄懂opengl的诸多库gl glu glut freeglut glew glfw之间关系

    开始学习opengl,但是看opengl编程指南不同版本之间使用了一堆不同的库,概念名称全都搅起的,越看越糊涂,遂整理的一下opengl相关的一些库的名词, 才发现是不同时期不同版本不断发展的结果. ...

  4. OpenGL与gl glu glut freeglut glew glfw封装库关系(十五)

    1.概述     初学者往往搞不明白OpenGL与诸多库的联系下面一张图帮理清楚,gl glu glut freeglut glew glfw都是对OpenGL的封装而已.这些库已经将OpenGL.E ...

  5. Qt中使用GLEW进行OpenGL开发

    Qt中使用GLEW进行OpenGL开发(Windows平台) 为什么要使用GLEW 使用VS创建Qt项目 设置Widget 重新实现paintEngine 添加GLEW库到工程 设置OpenGL上下文 ...

  6. vs配置freeglut+glew

    vs配置freeglut+glew 以前配置opengl大多稀里糊涂地配置,有时候用别人现成写好的cmake来配,但是很多cmake里的内容为什么这么写并不理解,因此遇到很多很好的开源项目也没办法使用 ...

  7. CLion+mingw-w64开发OpenGL如何导入glad

    开发OpenGL的时候需要导入glad . 1 去glad官网下载. 官网地址: https://glad.dav1d.de/ 记得要选择一下 gl的版本. 下载那个 glad.zip文件. 解压缩后 ...

  8. CLion下开发OpenGL项目,忘记进入glad.c文件造成的问题

    CLion下开发 OpenGL项目,引入了glfw3 glad ,这些都是在 CMakeLists.txt文件中配置的,这一点来说,比VS 2019下开发简单的多,VS下的配置项目看起来太乱.作为Li ...

  9. linux opengl es,在Linux上,如何开发OpenGL ES(GLES)2.0应用程序?

    问题描述 我想在我的Ubuntu计算机上开发OpenGL ES 2.0应用程序.我找不到支持GLES 2.0的任何库/仿真器.有什么建议么? 最佳回答 您可以使用POWERVR SDK在PC上模拟Op ...

最新文章

  1. jquery_jquery插件、jqueryUI使用方法、自定义jquery插件(一个插件其实就是一个功能)...
  2. GitHub年度报告:Python首次击败Java,中国成第二大开源贡献国
  3. linux系统挂载(卸载)U盘(文件系统)
  4. SSD论文阅读(Wei Liu——【ECCV2016】SSD Single Shot MultiBox Detector)
  5. Microsoft Edge Chrome 下载
  6. 文件包含——apache日志文件包含shell(四)
  7. 你还在使用IE6浏览器么?
  8. 基于python的分布式扫描器_一种基于python的大数据分布式任务处理装置的制作方法...
  9. Visual Studio 2017正式版离线安装方法
  10. r语言熵权法求权重(真实案例完整流程)
  11. ubuntu+火狐浏览器+印象笔记+剪藏+国内版配置
  12. CSDN博客排名前15名
  13. 2G/3G LAC与4G/5G TAC的协同优化
  14. 阅读笔记-微表情心理学
  15. SAP MD04详解
  16. 深入理解connect by levelxxx
  17. Vue使用Router报错:ncaught ReferenceError: VueRouter is not defined
  18. 【JavaScript】数据类型
  19. 1024程序员节的由来?
  20. InterSystems 2022全球峰会亮点解读:Smart Data Fabric与InterSystems数据平台的超能力

热门文章

  1. PyCharm新建项目-运行第一个helllo Python程序
  2. 揭秘 DockerCon 重量级演讲嘉宾(四)
  3. Spring Security系列之Spring Social实现微信社交登录(九)
  4. LeetCode443-压缩字符串(双索引)
  5. [POI2014]Solar Panels
  6. Apache Wicket 7.2.0发布
  7. 转:10分钟掌握XML、JSON及其解析
  8. SGU 201 Non Absorbing DFA (DP)
  9. DDos防御工具DDoS-Defender-v2.1.0
  10. ROS学习笔记5(理解ROS节点)