OpenGL3--1--概述
来源:互联网 发布:win8网络连接在哪里 编辑:程序博客网 时间:2024/06/06 06:56
了解OpenGL
OpenGL的原作者是SGI(硅谷图形公司)。现在由Khronos Group开发维护,最新稳定版本是4.5。OpenGL的意思是开放图形库,定义了一系列跨语言跨平台的api,使得你渲染图像的时候能够用上硬件加速,就是能用上显卡来计算而不是光用cpu,所以OpenGL大概就是个帮助你避免跟显卡打交道又帮助你画图的接口,就是你写代码不用考虑机器显卡和操作系统。它本身不是一个toolkit,没有窗口、键盘、音频什么的api(要跨平台,理所当然的没有),只能用来渲染图形。
OpenGL安装和配置
跟着这个OpenGL中文教程来做,源代码和工具都下最新版的,确保你的显卡能正常驱动就行。你可能会想,OpenGL 3本身的代码在哪,我要不要下载呢,其实我们电脑里有opengl32.dll
,它只是OpenGL 1.1
,不过GLEW
中有相关的函数可以让我们使用新的api。
弄好以后,在vs2015里显示的工作目录是这样的。
第一个OpenGL程序
将playground项目设置为启动项目,然后运行的话,应该会出现一个控制台,接着打开一个黑屏的窗口,说明运行成功了。接下来打开playground.cpp
文件,分析一下里面代码。
#include <GL/glew.h>
下面是GLEW官方的说法,暂且不用纠结太深。
GLEW provides efficient run-time mechanisms for determining which OpenGL extensions are supported on the target platform
接下来两个头文件教程里都有讲。
#include <glfw3.h> //处理窗口和键盘消息GLFWwindow* window;#include <glm/glm.hpp> //3D函数库using namespace glm;
然后看main函数里的一系列初始化工作。
设置窗口的一些属性。
glfwWindowHint(GLFW_SAMPLES, 4); glfwWindowHint(GLFW_RESIZABLE,GL_FALSE); glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); // To make MacOS happy; should not be needed glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
打开一个窗口,然后创建一个OpenGl context
,这个context
大概是指一个没有进行绘制或者其他操作之前的raw object。
window = glfwCreateWindow( 1024, 768, "Playground", NULL, NULL);glfwMakeContextCurrent(window);
窗口的主控制,里面两个函数还没弄懂
do{ // Draw nothing, see you in tutorial 2 ! // Swap buffers glfwSwapBuffers(window); glfwPollEvents(); } // Check if the ESC key was pressed or the window was closed while( glfwGetKey(window, GLFW_KEY_ESCAPE ) != GLFW_PRESS && glfwWindowShouldClose(window) == 0 );
- OpenGL3--1--概述
- Ogre2.1 结合OpenGL3+高效渲染
- OpenGL3时代到来
- OpenGL3.0教程
- OpenGL3环境搭建
- 計算機圖形學基礎教學 - OpenGL3.3後
- OpenGL3.2-新的起点
- OpenGL3.0 vs2012 环境搭建
- MAC 下编写opengl3+程序
- OpenGL3.3教程-----First Triangle
- 20170217. OpenGL3 (绘制几何图形)
- OpenGL3.0常用函数详解
- 1 概述
- 1 概述
- 1 概述
- C#+OpenGL3编程之第一个三角形
- OpenGL3-绘制各种图元绘制
- OpenGL3.0教程 第三课: 矩阵
- javascript 编码规范 样例
- 挺好用的Linux下安装配置php5.5和nginx
- truncate and ftruncate Functions
- 导入c文件报错
- zoj1409 Communication System (贪心+枚举)
- OpenGL3--1--概述
- JPA
- IOS 事件传递说明
- 2016/2/13 Head First Java 第7节第二小结 多态
- 2016年计划
- ubuntu 安装 apktool
- 顺时针打印矩阵
- jsp页面更改编码为utf-8
- 匈牙利算法模板