1.GLBindxxx,意思就是,将xxx指定为当前对象,之后的操作都是针对这个xxx进行。 比如,GLBindBuffer(bufferTarget, bufferId),就是指定bufferid和该buffer的类型。 void glBufferData( GLenum target, GLsizeiptr size, const GLvoid * data, GLenum usage);,就是绑定buffer的数据。 经过试验,绑定完成之后,data占用的内存是可以销毁的。 所以,可以得出一个结论,glBufferData函数调用的时候,应该会发生数据传送。 可能是传送到显卡,也可能是传送给驱动层,然后由驱动层管理。因为游戏使用的总的buffer数,可能会超过显存数,因此显卡可能会有调度机制来管理,比如把暂时不用的buffer从显存中释放,转移到系统内存,等需要的时候,再交换回去。 2.有个函数,不怎么引人注目,但它跟glActiveTexture关系很大 ActiveTexture的时候,要指定TextureUnit,如Texture0,Texture1,这个是怎么来的?按顺序,还是可以直接Active高序号的texture,比如只有一个TExture,但我想ActiveTexture(GL_TEXTURE4)可不可以? 答案是,可以。 Texture,都是以Uniform的方式存在的。 假定某个它的名字是TExture1,通过glGetUniformLocation得到的location是texture1Location 那么,glUniform1i(texture1Location,4),就可以指定这个Texture4指向这个Texture 之后,就调用glActiveTexture(GL_TEXTURE4); 本文得到两个结论: 1.glBufferData会发生从cpu到显卡的数据传送 2.glUniformi设置Texture变量的值,是指定Texture Unit,而不是设置glGenTexture得到的texure对象的int值

关于opengl的ActiveTexture以及bindXxx函数的分析的更多相关文章

  1. (转)x264源码分析(1):main、parse、encode、x264_encoder_open函数代码分析

    转自:http://nkwavelet.blog.163.com/blog/static/2277560382013103010312144/ x264版本:   x264-snapshot-2014 ...

  2. 大数据学习之Scala中main函数的分析以及基本规则(2)

    一.main函数的分析 首先来看我们在上一节最后看到的这个程序,我们先来简单的分析一下.有助于后面的学习 object HelloScala { def main(args: Array[String ...

  3. 151-模型-Power BI&Power Pivot模型DAX函数使用量分析

    151-模型-Power BI&Power Pivot模型DAX函数使用量分析 1.背景 我们在 Power BI 或者 Power Pivot 项目中会写很多的 DAX 表达式.在最后项目交 ...

  4. OpenGL的glViewPort窗口设置函数实现分屏

    之前实现过全景图片查看(OpenGL的几何变换3之内观察全景图),那么我们需要进行分屏该如何实现呢?如下图: 没错就是以前提过的glViewPort函数,废话不多说了,我直接上代码: //从这里开始进 ...

  5. OpenGL的GLUT注册回调函数[转]

    OpenGL的注册回调函数 void glutDisplayFunc(void (*func)(void) ); 为当前窗口设置显示回调函数 void glutOverlayDisplayFunc(v ...

  6. 【OpenGL】glFinish()和glFlush()函数详解-[转]

    通常情况下,OpenGL指令不是立即执行的.它们首先被送到指令缓冲区,然后才被送到硬件执行.glFinish和glFlush都是强制将命令缓冲区的内容提交给硬件执行. 一.glFinish()函数   ...

  7. opengl 实体和网格绘图函数(基础)(转)

    http://blog.csdn.net/he_wen_jian/article/details/8594880 GLUT工具箱提供几种图形3维图形的函数: void glutWireSphere(G ...

  8. [图形学] Chp17 OpenGL光照和表面绘制函数

    这章学了基本光照模型,物体的显示受到以下效果影响:全局环境光,点光源(环境光漫反射分量,点光源漫反射分量,点光源镜面反射分量),材质系数(漫反射系数,镜面反射系数),自身发光,雾气效果等.其中点光源有 ...

  9. Android OpenGL库加载过程源码分析

    Android系统采用OpenGL绘制3D图形,使用skia来绘制二维图形:OpenGL源码位于: frameworks/native/opengl frameworks/base/opengl 本文 ...

随机推荐

  1. nginx安装与挂载

    Linux下添加新硬盘,分区及挂载 http://blog.chinaunix.net/uid-25829053-id-3067619.html vim /etc/fstab /dev vdb1  / ...

  2. http标码集合

    201 Created告诉客户端,请求成功,资源已经创建.新的资源的网址请看 202 Accepted告诉客户端,请求已经接受,但还没有处理,可以去Location字段查询进展. 200 Ok告诉客户 ...

  3. 实用矩阵类(Matrix)(带测试)

    引言: 无意间看到国外一个网站写的Matrix类,实现了加减乘除基本运算以及各自的const版本等等,功能还算比较完善,,于是记录下来,以备后用: #ifndef MATRIX_H #define M ...

  4. Java多线程02(线程安全、线程同步、等待唤醒机制)

    Java多线程2(线程安全.线程同步.等待唤醒机制.单例设计模式) 1.线程安全 如果有多个线程在同时运行,而这些线程可能会同时运行这段代码.程序每次运行结果和单线程运行的结果是一样的,而且其他的变量 ...

  5. 20-matlab全排列-函数调用

    matlab中global的用法 Matlab 中子函数不传参直接调用主函数global变量方法  在一个m文件里要调用一个函数(自定义的),但是我希望这个函数能利用并修改workspace中的变量( ...

  6. xmlhttp js 请求

    <html> <script> var xhr = new XMLHttpRequest(); xhr.open('GET', "http://ipinfo.io/j ...

  7. Gulp入门及简单使用

    前言 什么是gulp?gulp有什么用?为什么用gulp? gulp是前端开发的一种构建工具. 构建工具可以帮助我们工程化地开发项目,比如搭建本地服务器.编译CSS预处理器.保存文件后自动刷新浏览器而 ...

  8. Spring Scheduled定时任务报错 java.lang.IllegalStateException: Encountered invalid @Scheduled method 'xxx': For input string: "2S"

    报错信息如下: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ding ...

  9. C++概念小结

    API:应用程序编程接口 SDK:软件开发包 调用程序是通过消息来进行的 事件驱动方式的程序设计模式,主要是基于消息的.消息,是由MSG结构体表示的. 消息队列:用来存放该程序创建的窗口的消息 Win ...

  10. 2019.03.25 bzoj4567: [Scoi2016]背单词(trie+贪心)

    传送门 题意: 给你n个字符串,不同的排列有不同的代价,代价按照如下方式计算(字符串s的位置为x): 1.排在s后面的字符串有s的后缀,则代价为n^2: 2.排在s前面的字符串有s的后缀,且没有排在s ...