原因分析

  • 在前面的文章:OpenGL ES之Swift使用GLSL语言渲染图片的显示和OpenGL ES之GLSL渲染图片显示的整体流程中,我们都对图片纹理做了翻转的处理,不做处理,最后看到的图片显示将是一张倒着的图片。
  • 为什么会出现这种情况呢?这是因为OpenGL要求y轴0.0坐标是在图片的底部的(屏幕左上角),但是图片的y轴0.0坐标通常在顶部(屏幕左下角):我们可以改变顶点数据的纹理坐标,翻转y值(用1减去y坐标),也可以编辑顶点着色器来自动翻转y坐标,替换TexCoord的值为TexCoord = vec2(texCoord.x, 1.0f - texCoord.y);。

解决策略

一、旋转矩阵来翻转图形,不翻转纹理
  • 在顶点着色器 shaderv.vsh 中,我们传进了一个旋转矩阵 rotateMatrix,因为矩阵传进来就不会再修改了,所以我们用 uniform 来修饰,4行4列的矩阵 mat4。然后用顶点坐标 vPos 乘以这个 rotateMatrix 旋转矩阵,让每一个顶点都应用旋转变化;
  • 让图形顶点坐标旋转180°,而纹理保持原状;
  • vPos * rotateMatrix,顺序不能反过来,因为顶点是1行4列,旋转矩阵是4行

OpenGL ES之纹理翻转的解决策略相关推荐

  1. opengl android 纹理贴图 代码,Android 使用opengl es的纹理贴图白屏问题请教。

    各位大侠好: 我在使用open gl es的做显示的时候,发现一个问题,请各位帮助一下,谢谢. 环境:opengl es 1.x,2D的模式显示纹理图片. 在LG-P990,HTC-C510E上显示附 ...

  2. 2.x最终照着教程,成功使用OpenGL ES 绘制纹理贴图,添加了灰度图

    在之前成功绘制变色的几何图形之后,今天利用Openg ES的可编程管线绘制出第一张纹理. 学校时候不知道OpenGL的重要性,怕晦涩的语法.没有跟老师学习OpenGL的环境配置,现在仅仅能利用coco ...

  3. android平台opengl es读取纹理数据并保存图片

    在AR云渲染服务中,有时候需要把生成的纹理保存到图片来进行调试. 那就想办法看看存成图片,很多人说用glGetTexImage这个函数可以直接读取纹理的数据,但是我们用到了opengl es 32版本 ...

  4. 2.x终于照着教程,成功使用OpenGL ES 绘制纹理贴图,增加了灰度图

    在之前成功绘制变色的几何图形之后,今天利用Openg ES的可编程管线绘制出第一张纹理.学校时候不知道OpenGL的重要性,怕晦涩的语法,没有跟老师学习OpenGL的环境配置,如今只能利用cocos2 ...

  5. android opengl es 圆锥纹理贴图

    效果图: 底面: 侧面: 底面圆核心代码: //初始化顶点数据的方法public void initVertexData(){// 顶点坐标数据的初始化================begin=== ...

  6. OpenGL ES 纹理

    纹理概念 纹理对象和纹理加载 应用纹理的例子 使用前面学过的技术已经可以利用OpenGL ES构建立体图形,并通过顶点着色器和片元着色器对其进行各种变化呢和光照等效果使得三维效果更加真实,实际上我看看 ...

  7. Android Studio OpenGL ES绘制三棱锥/四面体的多纹理贴图 每个面使用一张图片渲染

    本文参考了王刚的<疯狂Android讲义(第3版)>P554-P559 要求:利用OpenGL ES绘制一个三棱锥,并对每个面进行纹理贴图,每个面使用不同的图片进行渲染. 环境:Andro ...

  8. 【AR实验室】OpenGL ES绘制相机(OpenGL ES 1.0版本)

    0x00 - 前言 之前做一些移动端的AR应用以及目前看到的一些AR应用,基本上都是这样一个套路:手机背景显示现实场景,然后在该背景上进行图形学绘制.至于图形学绘制时,相机外参的解算使用的是V-SLA ...

  9. Opengl ES之PBO

    叨叨一句几句 关于Opengl的系列已经有较长的一段时间没有更新了,然而这个系列还远没有到完毕地步,后续至少还有关于Opengl矩阵变换.YUV与RGB互转.Opengl水印贴图.Opengl转场动画 ...

最新文章

  1. Linux第二周学习笔记(7)
  2. 判断三角形java代码_打基础之LeetCode算法题第72篇:最大的三角形周长问题
  3. 502 Bad Gateway - Registered endpoint failed to handle the request
  4. (三)Qt语言国际化
  5. LeetCode:Rotate Image
  6. 别被忽悠了!我来谈谈大数据平台的4个要点,你们写的都不是干货
  7. JavaScript 代码简洁之道
  8. 带你了解强大的Cadence家族,你可能只用到了它1/10的工具
  9. 【C++软件开发】面试经典题目汇总
  10. 使用 ffmpeg 从视频文件提取音频
  11. 什么是即时通讯(IM)?
  12. 并发完全知识点目录--yzy
  13. 硬盘安装mysql_安装mysql数据库
  14. 2022-08-15
  15. 后渗透篇:劫持技术(lpk.dll劫持游戏注入【Win7 实例】)
  16. 华为b199Android版本,华为B199刷机包 MIUI8安卓6.0插桩适配ROM 7.4.5版
  17. 移动终端的中场战事 | 十年复盘 EP05
  18. 你会用QQ吗?33个QQ小技巧你知道几个?
  19. 亚马逊、Lazada、速卖通、Shopee、阿里国际、沃尔玛、Shopify、mercari、Newegg自养号测评,卖家如何少走弯路?
  20. java毕业设计便利店系统(附源码、数据库)

热门文章

  1. 《你不知道的JavaScript(上)》笔记——函数作用域和块作用域
  2. Ubuntu18.04挂载exfat格式移动硬盘
  3. 017_python常用小技巧
  4. 闭包、执行环境、作用域链
  5. php_中替换换行符
  6. Ifvisible.js – 判断网页中的用户是闲置还是活动状态
  7. 脚本语言语言脚本语言:Shell , JavaScript、VBScript、Perl、PHP、Python、Ruby、Lua
  8. 通过调用API函数实现的无边框窗体的拖拽,比判断坐标更快捷
  9. 人与计算机的未来_身边的很多人都在学习计算机,学习计算机到底能带来哪些好处...
  10. 7-4 jmu-Java-06异常-04-自定义异常(综合) (15 分)