OpenGl 学习笔记 01
来源:互联网 发布:python编码汉字互转 编辑:程序博客网 时间:2024/06/02 03:08
使用一个库无非包含三个步骤:
- 包含头文件
- 链接库文件
- 提供运行时dll文件
gl.h是opengl核心库
glu.h是实用库
glut.h是工具集 是第三方库,代表OpenGL Utility Tookit。Mark J.Kilgard 为了使OpenGL应用程序结构能够真正独立于窗口系统构思了GLUT库。
glu.h是实用库
glut.h是工具集 是第三方库,代表OpenGL Utility Tookit。Mark J.Kilgard 为了使OpenGL应用程序结构能够真正独立于窗口系统构思了GLUT库。
Freeglut是一个GLUT的开源实现。
glext.h使你可以调用GL的常见扩展函数。
想使用更高版本GL的特性,你必须包含该头文件,并将你的显卡驱动更新到最新版本。
glm是OpenGL Mathematics C++ mathematics library for graphics software。数学库
gl/glu/glut/gltools等的区别
好啦,该说说gl.h/glu.h/glut.h/gltools.h的区别啦。
#include<GL/gl.h>
#include<GL/glu.h>
再往下看,就可看到好多像glutInitWindowPosition()这样以glut为首的函数声明。
#include "stdafx.h"
#include<windows.h>
#include<gl/glut.h>
//#include"gl/superbible/gltools.h"
void RenderScene(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glFlush();
}
void SetupRC(void)
{
glClearColor(0.0,0.0,1.0,1.0);
}
int main(int argc,char *argv[])
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGBA);
glutInitWindowPosition(100,100);
glutInitWindowSize(400,400);
glutCreateWindow("first program");
glutDisplayFunc(RenderScene);
SetupRC();
glutMainLoop();
return 0;
}
另:建群期间,许多朋友还是不大明白gltools.h是什么东东。这里再简单说一下。
OpenGL是基于光栅化的系统。
render 渲染
shader 着色器 是图形硬件设备所执行的一类特殊函数。可以理解为转位GPU编写的一类小型程序。
vertex 顶点
pixel 像素 显示器上最小的可见单元
framebuffer 帧缓存 计算机将所有的像素保存到帧缓存中。是由图形硬件设备单独管理的一块内存区域,可以直接映射到显示设备上。
语法
OpenGL库中的所有函数都会以gl开头 采用驼峰命名法。如 glBindVertexArrary()
所有的常量全大写,空格用下划线表示,以GL_开头。
为了能更好的跨平台,opengl还定义了不同的数据类型。如GLfloat表示浮点数。
opengl是C语言的函数库,不能是用重载,通过函数名的细微变化来区分实现同一功能的一组函数.如glUniform2f()表示传入两个GLfloat型的数据。
使用glUniform*()*表示所有glUniform*()函数的集合。又如2fv的后缀表示要用一个以为的GLfloat类型的数组传入两个浮点数。而不是两个GLfloat类型的数值。
顶点着色器和片元着色器是必须的,细分和几何着色器是可选的。
细分着色会增加集合图元的数量,是模型的外观变得更为平顺。
glutInit()负责初始化GLUT库。他必须是应用程序调用的第一个GLUT函数。
glutInitDisplayMode()设置程序使用的窗口类型。
。
glutDisplayFunc(display)设置显示回调,即glut在每次更新窗口内容时会自动调用该函数,这里讲display()函数的地址传入。
glutMainLoop()为无限循环。其后的指令不会被执行。
vertex-arrary object 顶点数组对象
0 0
- OpenGl 学习笔记 01
- Android OpenGL 学习笔记 01
- OpenGL入门学习笔记01
- 【OpenGL 学习笔记01】HelloWorld示例
- OPENGL学习笔记1
- OpenGL学习笔记
- OpenGL 学习笔记
- OpenGL学习笔记
- OpenGL 学习笔记(1)
- OpenGL学习笔记(一)
- OpenGL学习笔记(二)
- OpenGL学习笔记
- Opengl学习笔记1
- OpenGL学习笔记:混合
- OpenGL学习笔记:纹理
- OpenGL学习笔记:颜色
- OpenGL学习笔记:光照
- OpenGL学习笔记:像素
- HDOJ 1045 Fire Net同 ZOJ 1002
- MFC中Dialog无法输入中文的问题
- 添加LogCat 至 eclipse --2
- 加密
- 图片跟随鼠标移动(jquery)
- OpenGl 学习笔记 01
- AndroidStudio--Terminal的使用
- Android匹配Uri工具类UriMatcher
- html初探
- hdu-2489 Minimal Ratio Tree(DFS+最小生成树)
- 学习OpenCV——Surf(特征点篇)&flann快速最近邻搜索算法
- Partition-方案一. 通过 Export/import 方法
- django 购物系统 - 添加至购物车表单
- eclipse/intellij idea 远程调试hadoop 2.6.0