美文网首页
3-基础-纹理

3-基础-纹理

作者: 挖打发 | 来源:发表于2021-04-16 20:16 被阅读0次

1 纹理基础

    1.1纹理是什么

1.2 纹理优点

虽然牺牲了几何细节,但是减少了建模的工作量和存储空间,且提高了读取速度

1.3 纹理是如何起作用的

投影函数:获取我们要渲染的位置,然后将它从模型空间投影到纹理坐标空间,转化成纹理坐标,就是俗称的uv坐标,投影函数通常用于建模中的展uv阶段使用,然后将投影的结果存储在顶点数据中

通讯函数:得到的纹理坐标可以通过通讯函数来进行灵活拓展,比如实现平移缩放旋转又或者控制图像的应用方式等, 经过这个过程可以得到新的纹理坐标

纹理采样:用新的纹理坐标去获取纹理值,着色器中的纹理,通常以采样器变量的形式存在,就是我们通常在代码中看到的smaple了,这是个uniform变量

附:1依赖纹理读取:当我们使用texture2D或者是类似的方式访问纹理的时候,只要像素着色器不是直接用顶点着色器传过来,没有经过修改的数值,而是需要计算的,就会产生依赖纹理读取,会影响到性能的,所以通常把uv偏移放在顶点着色器去完成       2 纹理不光采样颜色,也可以采样别的信息,比如粗糙度,获取的就不是一个RGBA值

1.4 纹理采样设置

决定了纹理由于变化而产生拉伸的时候,要采用哪一种滤波模式来调整它自身的表现,简单来说纹理过滤就是用来描述不同形状大小角度、缩放比的情况下,应该如何应用纹理使得采样更加合理,图上为放大纹理过滤,从左到右依次效果更好,

2 纹理优化

    2.1 cpu渲染优化常见方式

cpu渲染优化中有一个方向是降低DrawCall,DrawCall是什么?当纹理显示在屏幕上,是需要cpu和GPU一起协作完成的,为了cpu和gpu并行工作,就需要有一个命令缓冲区,命令缓冲区中有一个命令队列,cpu向里面添加指令,gpu从中读取指令,当cpu需要渲染一些对象时就需要向命令缓冲区添加命令,而gpu完成上一次渲染的任务之后,它就会在命令队列中取出下一条命令并执行,添加和读取的过程是相互独立,所以命令缓冲区的存在可以让cpu和gpu相互独立的工作,命令缓冲区里面的命令有很多种,DrawCall就是其中的一种,在调用DrawCall之前,cpu会向gpu发送很多东西比如数据状态之类的,然后在这个阶段cpu需要完成很多工作,一旦cpu完成这些工作,gpu就会开始这一次的渲染,gpu的渲染速度往往是快于cpu的命令提交速度的,所以drawCall的数量太多的话,cpu就会把大量时间花费在提交drawCall上,而降低这些DrawCall最常见的方式就是纹理图集跟纹理数组,还有一个叫无约束纹理的东西,他们这些方法最主要的目的都是避免渲染的时候频繁改变纹理所带来的消耗,但实际应用上最常见的还是纹理图集

gpu渲染优化的思路是从带宽入手,显存带宽是指我们gpu读写它的专用内存时的速度,如果游戏速度受限于显存带宽的话,往往是我们使用的纹理太大了,gpu没有办法快速处理,直接解决纹理和带宽问题的一个方法就是纹理压缩,通过硬件的硬件解码压缩纹理,纹理就可以只需要更少的内存,就可以有效的增加高速缓存的大小

3 其他纹理

    3.1 cubeMap

最多应用在环境贴图

 3.2 bumpMap

3.3 位移贴图

相关文章

  • 3-基础-纹理

    1 纹理基础 1.1纹理是什么 1.2 纹理优点 虽然牺牲了几何细节,但是减少了建模的工作量和存储空间,且提高...

  • OpenGLEs 纹理的基础知识

    纹理的基础知识 2D 纹理 2d纹理是OpenGlES中最基础和普遍的一种纹理结构。一个2d纹理,就是图片的数据的...

  • 基础纹理

    纹理只是一种能够应用到场景中的三角形上的图像数据,它通过经过过滤的纹理单元(texel,相当于纹理的像素)填充到实...

  • 纹理基础

    纹理基础 之前我们对图元渲染都是用线段或者表面颜色,但这样的效果还不够现实,如果加上纹理贴图,会让渲染效果非常逼真...

  • 基础纹理

    存储在每个顶点上。纹理映射坐标定义了该顶点在纹理中对应的 2D 坐标。通常,这些坐标使用一个二维变量(u, v)来...

  • Ⅱ基础纹理

    基础纹理 单张纹理 关于纹理导入设置用途知识跳转至https://docs.unity.cn/cn/current...

  • 《Unity Shader入门精要》| 读书笔记(三)

    继续来看纹理! 第7章 基础纹理 普通纹理 纹理映射:用一张纹理贴图来代替物体的漫反射颜色,漫反射颜色类似于绘画里...

  • OpenGL 数据处理(下)

    1 纹理基础 纹理是一种结构化的存储形式(Textures are a structured form of st...

  • OpenGL 基础纹理

    原始图像数据 像素包装 图像存储空间 = 图像的高度 * 图像宽度 * 每个像素的字节数。 OpenGL中的纹理文...

  • OpenGL基础纹理

    第五章 OpenGL基础纹理 本章内容: 一、常用函数 像素存储方式 从颜色缓存区内容作为像素图直接读取 载入纹理...

网友评论

      本文标题:3-基础-纹理

      本文链接:https://www.haomeiwen.com/subject/ozrplltx.html