OpenGL纹理高级
矩形纹理
对于二维纹理来说,除了GL_TEXTURE_2D之外,使用GL_TEXTURE_RECTANGLE就可以使用矩形纹理。
矩形纹理几大特点:
不能Mip,只能加载glTexImage2D的level 0
纹理坐标非标准化
不支持压缩纹理
这种方式通常用于处理和提交图像数据的应用,比起通常的2D纹理硬件支持也更加简单,效率更高。
GLSL采样器sampler2D --> samplerRect
多重纹理
多重纹理支持查询:
GLint n;
glGetItegerv(GL_MAX_TEXTURE_UNITS,&n);
使用多重纹理
纹理数组
使用GL_TEXTURE_2D_ARRAY作为相关函数的第一个参数。使用GLTexImage3D加载一组图像。
可以将最后一个参数设置为NULL,GL将会使其保持未初始化状态,然后在后面使用glTexSubImage3D循环加载所有的图像。
在GLSL中使用uniform sampler2DArray进行采样
纹理代理
使用纹理代理可以查询支持的纹理信息。
创建一个纹理代理就像创建一个纹理一样,但是第一个参数应该是下列之一:
GL_PROXY_TEXTURE_1D |
GL_PROXY_TEXTURE_2D |
GL_PROXY_TEXTURE_3D |
GL_PROXY_TEXTURE_CUBE_MAP |
最后一个参数应该为NULL。
值得注意的是,这并不是真的创建了一个纹理。
在创建之后我们就可以向下面这样来查询相应的信息了(这个意思就是,我们先把指定的值赋给他,然后来查询这个值到底是多少):
glTexImage2D(GL_PROXY_TEXTURE_2D,,GL_RGBA,,,,GL_BGRA,GL_UNSIGNED,NULL);
//查看是否支持4096的高度
void glGetTexLevelParameter(GL_TEXTURE_2D,,GL_TEXTURE_HEIGHT,&height);
OpenGL纹理高级的更多相关文章
- OpenGL: 纹理采样 texture sample
Sampler (GLSL) Sampler通常是在Fragment shader(片元着色器)内定义的,这是一个uniform类型的变量,即处理不同的片元时这个变量是一致不变的.一个sampler和 ...
- OpenGL 纹理贴图
前一节实例代码中有个贴图操作. 今天就简单说明一下纹理贴图... 为了使用纹理贴图.我们首先需要启用纹理贴图功能. 我们可以在Renderer实现的onSurfaceCreated中定义启用: // ...
- OpenGL纹理
如果不用头文件,把所有东西堆在同一个cpp文件中,会出现“超出GPU内存的错误!” 1 //我们自己的着色器类 #ifndef SHADER_H #define SHADER_H #include & ...
- [OpenGL]纹理贴图实现 总结
实现步骤 第一步:设置所需要的OpenGL环境 设置上下文环境 删除已经存在的渲染的缓存 设置颜色缓存 设置帧缓存 清除缓存 设置窗口大小 开启功能 编译shander 使用program 获取sha ...
- openGL 纹理05
纹理(Texture) 为了能够把纹理映射(Map)到三角形上,我们需要指定三角形的每个顶点各自对应纹理的哪个部分. 这样每个顶点就会关联着一个纹理坐标(Texture Coordinate) 用来标 ...
- OpenGL纹理上下颠倒翻转的三种解决办法
http://blog.csdn.net/narutojzm1/article/details/51940817 综述 在使用OpenGL函数加载纹理到图形时,经常遇到纹理上下颠倒的问题.原因是因为O ...
- Qt5.6.0+OpenGL 纹理贴图首战告捷
重要的话写在前面~~通过今晚的实验,知道了EBO是不能随便release的~~~一直不要release就可以了,否则vao会失效 Display.h #ifndef DISPLAYWIDGET_H # ...
- RenderMonkey 练习 第一天 【opengl 纹理】
础实例: 我们首先实现一个带纹理模型的显示,大体了解RenderMonkey的操作方式. 1. 打开RenderMonkey, 右击WorkSpace的Effect WorkSpace结点,选择Add ...
- OpenGL ES学习笔记(三)——纹理
首先申明下,本文为笔者学习<OpenGL ES应用开发实践指南(Android卷)>的笔记,涉及的代码均出自原书,如有需要,请到原书指定源码地址下载. <OpenGL ES学习笔记( ...
随机推荐
- KM算法(理解篇)
转载:https://www.cnblogs.com/logosG/p/logos.html(很好,很容易理解) 一.匈牙利算法 匈牙利算法用于解决什么问题? 匈牙利算法用于解决二分图的最大匹配问题. ...
- 签名:实现参数字典排序,然后拼接为url参数形式
在很多地方请求参数需要做处理例如: 步骤 1.参数字典排序. 2.拼接字符. /// <summary> /// 生成签名 /// </summary> /// <par ...
- ios中页面底部输入框,position:fixed元素的问题
在安卓上点击页面底部的输入框,软键盘弹出,页面移动上移.ios上,软件盘弹出,输入框看不到了.让他弹出时让滚动条在最低部 var u = navigator.userAgent, app = navi ...
- Python入妖5-----正则的基本使用
什么是正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是 事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符”,这个“规则字符” 来表达对字符的一种过滤逻辑. 正则并不是pyth ...
- 阿里云服务器mail 命令发邮件
一.申请开通25端口 https://yundun.console.aliyun.com/?spm=5176.2020520001.aliyun_topbar.188.KbmgKc&p=sc# ...
- 使用vue-router beforEach实现判断用户登录跳转路由筛选功能
在开发webApp的时候,考虑到用户体验,经常会把不需要调用个人数据的页面设置成游客可以访问,而当用户进入到一些需要个人数据的,例如购物车,个人中心,我的钱包等等,在进行登录的验证判断,如果判断已经登 ...
- Nginx 为什么要延迟关闭
防止 Nginx处理完后调用close关闭连接后 ,若缓冲区任然接收到客户端发来的内容 ,则服务器会向客户端发送RST包关闭连接,导致客户端由于收到了RST而忽略了 http response ...
- java替换word
package demo; import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOExcept ...
- Android中的AlertDialog遇到的错误
public void showAddIPCDialog() { Log.i("ssssssssss","wwwwwwwwww"); LayoutInflate ...
- 05-spring整合jdbc-jdbc模板对象JdbcTemplate
1 演示JdbcTemplate模板对象 1 导包 2 准备数据库 3 书写UserDao package www.test.dao; import java.util.List; import ww ...