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里显示的工作目录是这样的。
showdir


第一个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 );
1 0
原创粉丝点击