关于opengl的ActiveTexture以及bindXxx函数的分析
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函数的分析的更多相关文章
- (转)x264源码分析(1):main、parse、encode、x264_encoder_open函数代码分析
转自:http://nkwavelet.blog.163.com/blog/static/2277560382013103010312144/ x264版本: x264-snapshot-2014 ...
- 大数据学习之Scala中main函数的分析以及基本规则(2)
一.main函数的分析 首先来看我们在上一节最后看到的这个程序,我们先来简单的分析一下.有助于后面的学习 object HelloScala { def main(args: Array[String ...
- 151-模型-Power BI&Power Pivot模型DAX函数使用量分析
151-模型-Power BI&Power Pivot模型DAX函数使用量分析 1.背景 我们在 Power BI 或者 Power Pivot 项目中会写很多的 DAX 表达式.在最后项目交 ...
- OpenGL的glViewPort窗口设置函数实现分屏
之前实现过全景图片查看(OpenGL的几何变换3之内观察全景图),那么我们需要进行分屏该如何实现呢?如下图: 没错就是以前提过的glViewPort函数,废话不多说了,我直接上代码: //从这里开始进 ...
- OpenGL的GLUT注册回调函数[转]
OpenGL的注册回调函数 void glutDisplayFunc(void (*func)(void) ); 为当前窗口设置显示回调函数 void glutOverlayDisplayFunc(v ...
- 【OpenGL】glFinish()和glFlush()函数详解-[转]
通常情况下,OpenGL指令不是立即执行的.它们首先被送到指令缓冲区,然后才被送到硬件执行.glFinish和glFlush都是强制将命令缓冲区的内容提交给硬件执行. 一.glFinish()函数 ...
- opengl 实体和网格绘图函数(基础)(转)
http://blog.csdn.net/he_wen_jian/article/details/8594880 GLUT工具箱提供几种图形3维图形的函数: void glutWireSphere(G ...
- [图形学] Chp17 OpenGL光照和表面绘制函数
这章学了基本光照模型,物体的显示受到以下效果影响:全局环境光,点光源(环境光漫反射分量,点光源漫反射分量,点光源镜面反射分量),材质系数(漫反射系数,镜面反射系数),自身发光,雾气效果等.其中点光源有 ...
- Android OpenGL库加载过程源码分析
Android系统采用OpenGL绘制3D图形,使用skia来绘制二维图形:OpenGL源码位于: frameworks/native/opengl frameworks/base/opengl 本文 ...
随机推荐
- 报错:APP has stopped
由于在 /MyActivity/AndroidManifest.xml 中把activity的类名打错,而导致程序加载后即出错. 而输错启动程序的类名并不会引起报错,因此这个应该引起注意.
- C/C++字符串使用整理
在C语言中,字符串有多种操作与处理方法.话不多说,下面就整理一下C语言中字符串的使用整理. 1.头文件 字符串的头文件: #include<cstring> 2.输入 通常,字符串有多种输 ...
- TZOJ 2289 Help Bob(状压DP)
描述 Bob loves Pizza but is always out of money. One day he reads in the newspapers that his favorite ...
- Flask-WTForms 简单使用
安装 wtforms 2.2.1 直接上代码: app.py 文件: from flask import Flask, render_template, request from wtforms im ...
- Boto3
https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.htmlboto3 安装pip install bot ...
- java整数溢出问题及提升为long型
整数溢出问题 Java 中的 int 用 32 位表示,正数最大值的情况,首位是 0,其他位都可以是 1(就是 2^31-1).但是如果正数过大了,例如 2^31,计算机不得不把首位变成 1,并且计算 ...
- A Model of Saliency-Based Visual Attention for Rapid Scene Analysis
A Model of Saliency-Based Visual Attention for Rapid Scene Analysis 题目:A Model of Saliency-Based Vis ...
- 51ak带你看MYSQL5.7源码4:实现SQL黑名单功能
博客迁移至: https://www.dboop.com/ 从事DBA工作多年 MYSQL源码也是头一次接触 尝试记录下自己看MYSQL5.7源码的历程 申明:个人Python编程很溜,但是C++还停 ...
- Java 日志体系(二)jcl 和 slf4j
Java 日志体系(二)jcl 和 slf4j <java 日志体系(一)统一日志>:https://www.cnblogs.com/binarylei/p/9828166.html &l ...
- 初学C的感想
既然是随笔,那就让我谈谈或者说聊聊自己的感想吧.刚刚进入大学的时候,对物联网工程这个专业挺迷茫的,至少我不知道自己将要学什么,只知道高数和英语是一定要学的,后来听学长说要学C语言,对这个概念很陌生,有 ...