Learn OpenGL - 使用GLEW
glew是OpenGL的图形接口,类似的有glut、glad
- 去官网下载文件
- 解压文件到本地
我下载到的是glew2.1,解压到项目目录中
把目录名glew-2.1.0 改为 GLEW (方便以后升级版本)
- 添加到工程
包含头文件:
添加glew32s.lib所在目录:
链接静态库glew32s.lib:
- 增加使用宏定义
增加宏GLEW_STATIC 不然用不了。当然你也可以在代码里声明。
- 初始化GLEW
GLEW是用来管理OpenGL的函数指针的,所以在调用任何OpenGL的函数之前我们需要初始化GLEW
glewExperimental = GL_TRUE;
if (glewInit() != GLEW_OK)
{std::cout << "Failed to initialize GLEW" << std::endl;return -1;
}
请注意,我们在初始化GLEW之前设置glewExperimental变量的值为GL_TRUE,这样做能让GLEW在管理OpenGL的函数指针时更多地使用现代化的技术,如果把它设置为GL_FALSE的话可能会在使用OpenGL的核心模式时出现一些问题。
- 例子代码
#include <iostream>
#include <cmath>// GLEW
#define GLEW_STATIC
#include <GL/glew.h>// GLFW
#include <GLFW/glfw3.h>int main(void)
{GLFWwindow* window;/* Initialize the library */if (!glfwInit())return -1;/* Create a windowed mode window and its OpenGL context */window = glfwCreateWindow(640, 480, "Hello World", NULL, NULL);if (!window){glfwTerminate();return -1;}/* Make the window's context current */glfwMakeContextCurrent(window);// Set this to true so GLEW knows to use a modern approach to retrieving function pointers and extensionsglewExperimental = GL_TRUE;// Initialize GLEW to setup the OpenGL Function pointersglewInit();// Define the viewport dimensionsglViewport(0, 0, 640, 480);/* Loop until the user closes the window */while (!glfwWindowShouldClose(window)){/* Render here */glClear(GL_COLOR_BUFFER_BIT);glBegin(GL_TRIANGLES);glVertex2f(-0.5f, -0.5f);glVertex2f(0.0f, 0.5f);glVertex2f(0.5f, -0.5f);glEnd();/* Swap front and back buffers */glfwSwapBuffers(window);/* Poll for and process events */glfwPollEvents();}glfwTerminate();return 0;
}
Learn OpenGL - 使用GLEW相关推荐
- OpenGL SDK glew(OpenGL Extension Wrangler Library )
现在我才知道opengl从3.0开始,所有实现全部由显卡厂商提供.而官方组织只是发布标准而已,由于没有这点儿认知,害的我到处找dll.GLEW是一个跨平台的C++扩展库,基于OpenGL图形接口.使用 ...
- Learn OpenGL(七)——OpenGL中使用着色器的基本步骤及GLSL渲染简单示例
OpenGL着色语言(OpenGL Shading Language,GLSL)是用来在OpenGL中着色编程的语言,是一种具有C/C++风格的高级过程语言,同样也以main函数开始,只不过执行过程是 ...
- Learn OpenGL(五)——定义自己的着色器
定义自己的着色器 编写.编译.管理着色器是件麻烦事.在着色器的最后主题里,我们会写一个类来让我们的生活轻松一点,这个类从硬盘读着色器,然后编译和链接它们,对它们进行错误检测,这就变得很好用了.这也会给 ...
- OpenGL之GLEW安装
下载链接: https://sourceforge.net/project/downloading.php?group_id=67586&filename=glew-1.5.1-win32.z ...
- Opengl+glfw+glew 大作业 绘制房间卧室客厅+雪花雪人
一.开发环境说明 操作系统:windows 开发软件:Visual Studio 2017 编程语言:基于控制台下的opengl 用到的库: glfw .glew 底部提供代码下载 opengl环境配 ...
- OpenGL入门-glew
1 glew简介 OpenGL Extension Wrangler Library (GLEW) 是一个跨平台的开源 C/C++ 扩展加载库.GLEW 提供了高效的运行时机制,用于确定目标平台上支持 ...
- Learn OpenGL (十二):投光物
平行光 当一个光源处于很远的地方时,来自光源的每条光线就会近似于互相平行.不论物体和/或者观察者的位置,看起来好像所有的光都来自于同一个方向.当我们使用一个假设光源处于无限远处的模型时,它就被称为定向 ...
- Learn OpenGL (十一):光照贴图
在着色器中使用漫反射贴图的方法和纹理教程中是完全一样的.但这次我们会将纹理储存为Material结构体中的一个sampler2D.我们将之前定义的vec3漫反射颜色向量替换为漫反射贴图. 注意samp ...
- Learn OpenGL (九):基础光照
环境光照(Ambient Lighting):即使在黑暗的情况下,世界上通常也仍然有一些光亮(月亮.远处的光),所以物体几乎永远不会是完全黑暗的.为了模拟这个,我们会使用一个环境光照常量,它永远会给物 ...
最新文章
- 测试进口原装磁屏蔽电感 10MH的漏感以及在再生高频放大检波电路中的应用
- OpenCASCADE:Mac OS X平台使用Code::Blocks构建OCCT
- 自我总结 (三) --(Java Web学习)
- 使用ReportNG更好看的TestNG HTML测试报告– Maven指南
- java lambda 两个冒号_java lambda 表达式中的双冒号的用法说明 ::
- PAT1018. 锤子剪刀布
- php留言板入门教程,一个php留言板实例
- Extjs EditorGridPanel
- 《统计学》第八版贾俊平第十二章多元线性回归知识点总结及课后习题答案
- AI健身房真的存在?比炒概念更可怕的是VENTO已经做出来了
- 高三数学辅导:不等式、推理与证明
- 微信小程序和微信公众号关联
- python画椭圆的逻辑_Python plt画椭圆
- HM二次开发 - 外部程序采用socket与HM实现通信
- 牛刀云微信小程序完整项目教程
- 如何用SQL求众数和中位数
- 【工具】fis3 - 语法教程(1)之资源嵌入
- Extract temperature and bt from station of Tib
- 项目管理软件Microsoft Project 2019和 Visio 2019下载
- 快播创始人王欣再复出,创造新式播放器,看到功能后网友们沸腾了
热门文章
- 基于Hadoop + Hive框架进行电子商务数据分析的设计与实现
- Android studio画心电图,android 开发 心电图绘制
- 将 DTS 用于业务智能解决方案的最佳实践
- java 读取文件在控制台打印、将内容写入到文件
- 03/13 17:17:57: Launching 'app' on OPPO PBEM00. Installation did not succeed. The application could
- 9day 各文件的读取操作
- camera isp 介绍
- 放大功能 - 安卓R
- 厌倦了各种app推送广告?用RSS来订阅自己想看的内容吧
- 苹果x与苹果xs的区别_苹果x突然黑屏但没有关机