美文网首页
OpenGL 纹理篇

OpenGL 纹理篇

作者: Damon_He | 来源:发表于2019-12-11 15:10 被阅读0次

什么是纹理

在计算机图形学中,纹理既包括通常意义上物体表面的纹理,也就是我们土话所讲的使物体表面呈现凹凸不平的沟纹;同时也包括在物体的光滑表面上的彩色图案,通常我们更多地称之为花纹

这些在OpenGL里面都是纹理,而且表示方式一样

纹理的基本原理

纹理映射就是在物体的表面上绘制彩色的图案。

纹理映射的过程

首先为图元中的每个顶点指定恰当的纹理坐标,然后通过纹理坐标在纹理图中可以确定选中的纹理区域,最后将选中纹理区域中的内容根据纹理坐标映射到指定的图元上!

纹理映射.png

需要注意的点

纹理坐标系原点在左下侧,向右为S轴,向上为T轴,两轴的取值范围都是 0 ~ 1;( 也就是说不论实际纹理图尺寸如何,其横向、纵向坐标最大值都是1)

(例如:实际图为 521*256像素,则横边的第512个像素,对应纹理坐标的1,竖边的第256个像素对应纹理坐标为1)

纹理尺寸:图片宽高必须为2的n次方!!

例如:8 * 8, 16 * 8。。。。。

纹理拉伸

重复拉伸(平铺)

GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_REPEAT);  

GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_REPEAT);

截取拉伸(边缘拉伸)

GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE);

GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE);

纹理采样

根据片元的纹理坐标,到纹理图中提取对应位置颜色的过程。

最近点采样

原理:对应像素点

优点:简单,采样最快

缺点:将小图映射到较大的图元时,会出现明显的锯齿

GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_NEAREST);

GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_NEAREST);

线性采样

原理:加权平均

优点:平滑过渡

缺点:有时候线条边缘会比较模糊

GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR);

GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR);

MAG 和 MIN 区别

当纹理图中的一个像素对应多个片元时,采用mag,反之min。(纹理比图元小,用mag,反之用min)

配合:min与最近点,mag 与 线性采样

相关文章

  • OpenGL 纹理篇

    什么是纹理 在计算机图形学中,纹理既包括通常意义上物体表面的纹理,也就是我们土话所讲的使物体表面呈现凹凸不平的沟纹...

  • GLKit常用API解析

    GLKTextureInfo 创建OpenGL纹理信息 name: OpenGL上下文中纹理名称 target: ...

  • OpenGL ES GLKit 􏰼􏰜常用API解析

    GLKTextureInfo创建OpenGL纹理信息 name : OpenGL上下文中纹理名称 target :...

  • OpenGL纹理内容

    纹理可以理解为一张图片,OpenGL渲染图片会将图片的像素保存在纹理缓存中。 OpenGL常用纹理函数 载入纹理 ...

  • OpenGL纹理

    纹理可以理解为一张图片,OpenGL渲染图片会将图片的像素保存在纹理缓存中。OpenGL常用纹理函数 载入纹理 纹...

  • OPenGL ES纹理翻转解决方案

    纹理翻转 在使用OpenGL函数加载纹理到图形时,经常遇到纹理上下颠倒的问题。原因是因为OpenGL要求纹理坐标原...

  • OpenGL坐标概念

    openGL 顶点,坐标系,纹理坐标Android OpenGL es 纹理坐标设定与贴图规则对Android o...

  • OpenGL之纹理及应用案例

    纹理介绍 OpenGL使用的图片数据(纹理)都是tga格式的,而iOS/OpenGL ES使用PNG/JPEG格式...

  • OpenGL 纹理翻转策略

    Open GL纹理翻转 在使用OpenGL函数加载纹理到图形时,经常遇到纹理上下颠倒的问题。原因是因为OpenGL...

  • OpenGL ES之旅(三)-- OpenGL ES 纹理翻转解

    纹理翻转概述 在使用OpenGL ES函数加载纹理到图形时,经常遇到纹理上下颠倒的问题。原因是因为OpenGL E...

网友评论

      本文标题:OpenGL 纹理篇

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