glu,glut,glext,glew

2024-02-05 00:32
文章标签 glut glu glew glext

本文主要是介绍glu,glut,glext,glew,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在学习OpenGL的过程中,我想,对于除了它自身版本里提供的那些核心函数库外,下面这些也是一个常用GL的人所应该了解的。
  glu是实用库,包含有43个函数,函数名的前缀为glu。Glu 为了减轻繁重的编程工作,封装了OpenGL函数,Glu函数通过调用核心库的函数,为开发者提供相对简单的用法,实现一些较为复杂的操作。
glaux是OpenGL辅助库,包含有31个函数,函数名前缀为aux。这部分函数提供窗口管理、输入输出处理以及绘制一些简单三维物体。
  glut是实用工具库,基本上是用于做窗口界面的,并且是跨平台(所以有时你喜欢做简单的demo的话,可以光用glut就ok了)
  而关于glext,glew,glee则是如下(参考文章:glext; glew, glee这些library的原理):

  下面就是glext为我们做的事:

  (1), 根据显卡厂商对某个extension的具体说明来定义一些宏.
  #define GL_ARRAY_BUFFER_ARB 0×8892 //具体的地址是在各个specification中定义的.
  #define GL_STATIC_DRAW_ARB 0×88E4

  (2), 声明一些函数指针的类型.
  typedef void (APIENTRY * PFNGLBINDBUFFERARBPROC) (GLenum target, GLuint buffer);
  typedef void (APIENTRY * PFNGLDELETEBUFFERSARBPROC) (GLsizei n, const GLuint *buffers);
  typedef void (APIENTRY * PFNGLGENBUFFERSARBPROC) (GLsizei n, GLuint *buffers);
  typedef void (APIENTRY * PFNGLBUFFERDATAARBPROC) (GLenum target, int size, const GLvoid *data, GLenum usage);

  然后在我自己的实现中就需要做以下的事:
  (3). 声明定义一些函数指针:
   PFNGLGENBUFFERSARBPROC glGenBuffersARB = NULL;
   PFNGLBINDBUFFERARBPROC glBindBufferARB = NULL;
   PFNGLBUFFERDATAARBPROC glBufferDataARB = NULL;
   PFNGLDELETEBUFFERSARBPROC glDeleteBuffersARB = NULL;

  (4). 利用wglGetProcAddress函数取得各个函数的地址指针.
   glBindBufferARB = (PFNGLBINDBUFFERARBPROC)wglGetProcAddress(“glBindBufferARB”);
   glGenBuffersARB = (PFNGLGENBUFFERSARBPROC)wglGetProcAddress(“glGenBuffersARB”);
   glBufferDataARB = (PFNGLBUFFERDATAARBPROC)wglGetProcAddress(“glBufferDataARB”);
  而其实在glATI.h, wglATI.h, ATIExtensions.h, and ATIExtensions.c中也是这么做的.那些glew, glee就将上面4步都给我们做了.

  所以当使用extensions时候,要么是下载glext回来,自己提供源代码实现(3, 4)两步。要么是直接用glew or glee。


超越C++ 原创文章,转载请注明来源并保留原文链接

本文链接:http://www.beyondc.cn/glu-glut-glext-glew.html


这篇关于glu,glut,glext,glew的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/679259

相关文章

OpenGL/GLUT实践:流体模拟——数值解法求解Navier-Stokes方程模拟二维流体(电子科技大学信软图形与动画Ⅱ实验)

源码见GitHub:A-UESTCer-s-Code 文章目录 1 实现效果2 实现过程2.1 流体模拟实现2.1.1 网格结构2.1.2 数据结构2.1.3 程序结构1) 更新速度场2) 更新密度值 2.1.4 实现效果 2.2 颜色设置2.2.1 颜色绘制2.2.2 颜色交互2.2.3 实现效果 2.3 障碍设置2.3.1 障碍定义2.3.2 障碍边界条件判定2.3.3 障碍实现2.3.

OpenGL/GLUT实践:粒子系统,并添加纹理、动态模糊、边界碰撞(电子科技大学信软图形与动画Ⅱ实验)

源码见GitHub:A-UESTCer-s-Code 文章目录 1 运行效果2 实验过程2.1 基本粒子系统2.1.1 定义粒子结构2.1.2 创建粒子并初始化2.1.2.1 创建粒子2.1.2.2 初始化 2.1.3 粒子状态更新与绘制2.1.3.1 绘制2.1.3.2 更新 2.1.4 实现效果 2.2 添加纹理2.2.1 纹理添加2.2.2 渲染粒子2.2.3 实现效果 2.3 运动

OpenGL/GLUT实践:弹簧-质量-阻尼系统模拟摆动的绳子和布料的物理行为(电子科技大学信软图形与动画Ⅱ实验)

源码见GitHub:A-UESTCer-s-Code 文章目录 1 实现效果2 实现过程2.1 一维弹性物体模拟2.1.1 质点类(Mass)2.1.2 弹簧类(Spring)2.1.3 模拟类(RopeSimulation)2.1.4 openGL实现 2.2 二维弹性物体模拟2.2.1 模拟类改进(1) Simulation1 类(2) ClothSimulation 类 2.2.2 o

OpenGL/GLUT实践:绘制旋转的立方体与雪人世界——添加光照与SOIL方式添加纹理(电子科技大学信软图形与动画Ⅱ实验)

源码见GitHub:A-UESTCer-s-Code 文章目录 1 运行效果2 实现过程2.1 几何转换2.1.1 窗口刷新2.1.2 绘制雪人场景2.1.2.1 绘制雪人2.1.2.2 绘制场景 2.1.3 键盘事件2.1.4 运行效果 2.2 颜色2.3 光照2.3.1 绘制正方体2.3.2 添加光源 2.4 材质2.4.1 方法一2.4.2 方法二 2.5 纹理2.5.1 SOIL环境

OpenGL/GLUT实践:实现反弹运动的三角形动画与键盘控制(电子科技大学信软图形与动画Ⅱ实验)

源码见GitHub:A-UESTCer-s-Code 文章目录 1 运行效果2 实验过程2.1 环境配置2.2 绘制三角形2.2.1 渲染函数2.2.2 主函数2.2.3 运行结果 2.3 调整窗口大小2.4 简单动画与按键控制2.4.1 简单旋转2.4.2 键盘控制 2.5 窗口反弹动画2.5.1 处理窗口大小变化2.5.2 渲染函数2.5.3 定时器2.5.4 控制速度

VS2013运行OpenGL例子提示找不到GL/glew.h,GL/freeglut_ext.h,GL/freeglut.h,glew32.lib,freeglut.lib等

按照教程: FreeGLUT库和GLEW库的安装: 把FreeGLUT库的.h文件(有4个:freeglut.h、freeglut_ext.h、freeglut_std.h和glut.h),freeglut.lib和freeglut.dll放到正确的目录下面就可以了: 将GLEW库的.h文件(glew.h、glxew.h、wglew.h),.lib文件(glew32.lib、

酶荧光底物;Ac-ESEN-AMC;Ac-Glu-Ser-Glu-Asn-AMC;CAS:896420-43-2

【Ac-ESEN-AMC 简介】         Ac-Glu-Ser-Glu-Asn-AMC 通常用作酶的荧光底物,特别是作为溶酶体处理酶(Vacuolar Processing Enzyme, VPE)的选择性底物。在生物化学研究中,这类底物可以用于检测和定量特定酶的活性,因为当底物被酶切割后,通常会释放出荧光物质,从而可以通过荧光强度的变化来监测酶的活性。Ac-Glu-Ser-Glu-As

SwiGLU激活函数与GLU门控线性单元原理解析

前言 SwiGLU激活函数在PaLM,LLaMA等大模型中有广泛应用,在大部分测评中相较于Transformer FFN中所使用的ReLU函数都有提升。本篇先介绍LLaMA中SwiGLU的实现形式,再追溯到GLU门控线性单元,以及介绍GLU的变种,Swish激活函数等内容。 内容摘要 LLaMA中SwiGLU的实现形式GLU门控线性单元原理简述通过GLU的变种改进TransformerS

GLUT文档

extern int APIENTRY glutGetModifiers(void); 某些时候我们想在一个组合键( modifier key)也就是CTRL,ALT或者SHIFT被按下时进行一些处理,GLUT提供了一个函数来检测是否有组合键被按下。这个函数的返回值是三个 glut.h里预定义的常量里的一个或其组合。这三个常量是: #define GLUT_ACTIVE_SHIFT

GLEW配置

下载地址:GLEW binaries是已经编译好的版本 zip的是可以自己编译的 将其下载后解压,文件结构为: build文件夹下有VS的解决方案: