OpenGL纹理上下颠倒翻转的三种解决办法
2016-07-18 11:56
1141 查看
综述
在使用OpenGL函数加载纹理到图形时,经常遇到纹理上下颠倒的问题。原因是因为OpenGL要求纹理坐标原点在图片最下面,如图:而图片信息中的原点一般都在最上方,一行行记录下来的,就会导致整个图片上下颠倒了。
如图:
从这个思路触发共有三种办法解决问题:
一.翻转顶点信息中的纹理坐标
原始顶点如图:因为纹理坐标的范围是0-1,所以翻转的话都统一用1去减
得到正确的图片:
二.翻转顶点Shader中的纹理坐标
基于方法一,更聪明的办法就是直接在Shader中翻转纹理Y轴坐标三.翻转顶点
上面都是直接针对问题的解决办法,反其道而行之,我们也可以直接翻转顶点,这样纹理就正了:在翻转顶点时,就不是直接对Y值用1去减,因为顶点的取值范围是-1 - 1 ,所以我们直接加上负号做翻转即可
这篇总结,参考了一个很好的OPENGL学习网站
https://learnopengl-cn.github.io/01%20Getting%20started/06%20Textures/,
大力推荐
相关文章推荐
- 解决Vista系统OpenGL驱动问题的方法整理
- Delphi下OpenGL2d绘图之画四边形的方法
- Delphi下OpenGL2d绘图之画点的方法
- Delphi下OpenGL2d绘图之初始化流程详解
- jquery马赛克拼接翻转效果代码分享
- C#实现翻转字符串的方法
- CSS图片翻转菜单
- 图片翻转菜单技术研究
- Delphi使用OpenGL2d绘图之画图片Bmp的方法
- C#中图片旋转和翻转(RotateFlipType)用法分析
- 安卓监听屏幕的横竖翻转实现方法
- 通过OpenGL ES混合模式缩放视频缓冲区来适应显示尺寸
- VC运用OPENGL加载BMP纹理图的实现方法汇总
- php简单实现多字节字符串翻转的方法
- php实现字符串翻转的方法
- android使用FlipAnimation实现3D垂直翻转动画
- Android利用Camera实现中轴3D卡牌翻转效果
- JS实现跟随鼠标立体翻转图片的方法
- java实现OpenGL ES纹理映射的方法
- 利用perl、python、php、shell、sed、awk、c 实现字符串的翻转