[hongwgw笔记]2017年8月16日
来源:互联网 发布:iframe 端口不同 跨域 编辑:程序博客网 时间:2024/05/22 21:07
我个人论坛:http://hongwgw.com/image/forum.php?mod=viewthread&tid=1&page=1&extra=#pid1
1.
当你运用glDrawXXX(),一些数据被隐式调用,甚至它们没有被绘制命令作为参数,它们包括:a.通过glBindBuffer绑定的VBO里的顶点数据;
b.VAO里的index list,通过glBindBuffer和glAttribPointer向下传递至VBO上下文;
c.通过glUseProgram()将shader传入;
d.通过glTextureBuffer() and glTexBuffer()将纹理传入VBO
e.其它
glUseProgram解释为加载并使用连接好的程序。
glTexBuffer()attaches the data store of a specified buffer object to a specified texture object
这些解释并没有特指“加载”或者“绑定”是什么
"current rendering state"可能指"OpenGL context",但是并没有说清楚。
以上的一些函数有“target”参数,但是没有清晰的意思,比如glBindTexture的target参数可以为GL_TEXTURE_2D,但是你可以指定多于一个的2D纹理去绘制一个物体,这样这个target更多的是一个类型而非目的。
希望能找到所有的这些隐式指定。
回答1:我来先处理GL_TEXTURE_2D部分
这是在opengl老版本中使用,现在没什么意义了。
在opengl1.0中并不支持纹理对象,只有一个单一的纹理可以使用。如果你想知道的更多,你可以围绕这它用显示列表来做一个坏事情,但是还是只能加载和使用一个纹理。
尽管如此,纹理可以在一些模式下被配置使用。特别是1D和2D。在以后的版本可以使用更多。指定GL_TEXTURE_1D程序就只能使用1D。2D也是如此.
opengl1.0下的规则在以后的版本中仍是合法的。在1.1版本中,加入了“binding”,这样你可以绑定一个texture,并且在以后新版本中通过各种新的api使用这个绑定对象,或者绑定0返回到opengl版本1.0的状态。
所以GL_TEXTURE_2D(和一些类似的)仍然是合法的,但是不受欢迎的。它们为了opengl1.0兼容性而存在,在天空和和纹理数组仍在使用。
回答2:
https://www.khronos.org/opengl/wiki/Vertex_Specification_Best_Practices
https://www.khronos.org/opengl/wiki/FAQ
https://www.khronos.org/opengl/wiki/Common_Mistakes
opengl要绘制物体,就得有个“program object”在GPU上计算,当计算完,就将结果输出到帧缓存当中。
有一个默认的帧缓存可以让你无需创建一个自己的,但有时你想使用更多的层来绘制或者想改变结果的的格式,那么就创建一个,然后复制到默认的帧缓存当中。
https://www.khronos.org/opengl/wiki/Vertex_Rendering
opengl在gpu里是异步的。opengl写完命令就返回了,未必得到执行,指令在gpu中堆积,由gpu驱动决定什么时候可以运行。
应用程序时客户端,opengl是服务器端。从服务器端下载东西是很差性能的。
https://www.khronos.org/opengl/wiki/Memory_Model
glTextureBuffer() 和 glTexBuffer() 是同样的东西
https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glTexBuffer.xhtml
glTexBuffer() GL_TEXTURE_BUFFER指定要绘制目标, 以为首先指定一个buffer object
glTextureBuffer() (= the DSA version)
阅读全文
0 0
- [hongwgw笔记]2017年8月16日
- 2017年1月16日 课堂笔记
- 2017年11月16日训练笔记
- [opengl笔记]2017年8月17日
- [opengl笔记]2017年8月18日
- 2017年9月8日学习笔记
- 2017年10月8日训练笔记
- 2017年12月8日 Java 笔记
- 8月16日训练笔记
- 2017年10月11日笔记
- 2017年10月12日笔记
- 2017年10月12日笔记
- 2017年10月17日笔记
- 2017年10月26日笔记
- 2017年8月16日
- 2017年8月16日 星期三
- 笔记(4月16日)
- 11月16日笔记
- 机器学习实战-使用Apriori算法进行关联分析
- Java3
- java 并发
- 简单选择排序的Java实现、性能分析以及适用场景
- 第十一章 文件上传-跟赵大笨笨学SpringMVC
- [hongwgw笔记]2017年8月16日
- Cabac
- 20170816WindowsPrj01_01_文件扫描器
- libev学习资料
- 《深入理解Java虚拟机学习笔记之垃圾收集器与内存分配策略》
- Classpath resource not found when running as jar
- msm8916 camera driver添加新摄像头kernel hal修改
- linux系统中如何建立与删除软连接(方便快捷使用,大量节约时间)
- ssh允许root登录