美文网首页
OpenGL ES 纹理绘制

OpenGL ES 纹理绘制

作者: osbornZ | 来源:发表于2018-09-17 15:00 被阅读18次

纹理绘制就是纹理映射,这里有个术语 纹素 ,不是用像素来表示纹理对象中的显示元素,主要是为了强调纹理对象的应用方式。纹理对象通常是通过纹理图片读取到的,这个数据保存到一个二维数组中,这个数组中的元素称为纹素(texel),纹素包含颜色值和alpha值。

纹理填充绘制 WRAP参数

纹理的绘制方式:

  • GL_REPEAT
  • GL_MIRRORED_REPEAT
  • GL_CLAMP_TO_EDGE
  • GL_CLAMP_TO_BORDER

纹理详细的介绍,参考:
二维纹理映射

绘制颠倒的问题

为什么会存在绘制颠倒的问题呢 ?

"坐标系"

纹理坐标系(uv)是右手坐标系,屏幕坐标又是左手坐标系;所以在屏幕中显示的点,需要在脚本之前或处理中进行y翻转。

解决方案:

  • 在VBO顶点坐标上进行Y的处理(1-y)
  • 在顶点着色器中进行Y翻转 gl_Position = vec4(position.x, -position.y,position.z, 1.0);
  • 翻转纹理的Y轴坐标 vTexcoord = vec2(texcoord.x,1.0-texcoord.y);

绘制比例问题

UIImageView的contentMode经常使用的有3种:

  • scaleToFill
  • scaleAspectFit
  • scaleAspectFill

我们需要使用比例处理:
添加 < AVFoundation Framework >

CGRect realRect = AVMakeRectWithAspectRatioInsideRect(image.size,   self.view.bounds);

图像简单处理

学会使用绘制纹理后,就可以使用脚本处理自定义的一些效果。

  • 灰度处理
  • 简答模糊处理
  • 简单的颜色映射,LUT滤镜

Demo地址:openGL-ES 2

相关文章

  • Android音视频开发 - 用OpenGL ES绘制图片

    1. 纹理介绍 使用 OpenGL ES 绘制简单的几何形状还不够,OpenGL 更多地是用来显示而纹理图像,比如...

  • OpenGL ES 分屏滤镜

    想要绘制滤镜首先我们需要清楚如何绘制纹理,如果不了解的可以参考 OpenGL ES 纹理绘制。这篇文章中绘制的图片...

  • OpenGL ES 纹理绘制

    纹理绘制就是纹理映射,这里有个术语 纹素 ,不是用像素来表示纹理对象中的显示元素,主要是为了强调纹理对象的应用方式...

  • OpenGL ES 纹理绘制

    本篇文章主要讲解如何使用GLSL语言来进行纹理的绘制。首先我们需要了解如何编写GLSL程序,经过之前的学习我们知道...

  • OpenGL ES on iOS --- 2D纹理

    OpenGL ES on iOS --- 2D纹理 简介 纹理是用来丰富我们绘制物体细节的,它可以是一张2D图片(...

  • OpenGL-ES 学习示例

    OpenGL-ES 学习示例 描述:1、GLKit 绘制图片和正方体2、GLSL 绘制金字塔、颜色纹理混合3、GL...

  • OpenGL ES 3.0纹理映射-绘制一张图片

    本篇博客了解一下2D纹理,并完成一个绘制显示一张图片的Renderer。 2D纹理 2D纹理是OpenGL ES中...

  • OpenGL坐标概念

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

  • OpenGL之纹理及应用案例

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

  • OpenGL ES基础知识回顾

    OpenGL ES基础知识回顾 GLSL着色器语言 语言基础 绘制方式 纹理映射 一、GLSL着色器语言 渲染管线...

网友评论

      本文标题:OpenGL ES 纹理绘制

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