OpenGL纹理上下颠倒翻转的三种解决办法
http://blog.csdn.net/narutojzm1/article/details/51940817
-
综述
在使用OpenGL函数加载纹理到图形时,经常遇到纹理上下颠倒的问题。原因是因为OpenGL要求纹理坐标原点在图片最下面,如图:
而图片信息中的原点一般都在最上方,一行行记录下来的,就会导致整个图片上下颠倒了。
如图:
从这个思路触发共有三种办法解决问题:一.翻转顶点信息中的纹理坐标
原始顶点如图:
因为纹理坐标的范围是0-1,所以翻转的话都统一用1去减得到正确的图片:
二.翻转顶点Shader中的纹理坐标
基于方法一,更聪明的办法就是直接在Shader中翻转纹理Y轴坐标
三.翻转顶点
上面都是直接针对问题的解决办法,反其道而行之,我们也可以直接翻转顶点,这样纹理就正了:
在翻转顶点时,就不是直接对Y值用1去减,因为顶点的取值范围是-1 - 1 ,所以我们直接加上负号做翻转即可这篇总结,参考了一个很好的OPENGL学习网站
https://learnopengl-cn.github.io/01%20Getting%20started/06%20Textures/,
大力推荐
版权声明:本文为博主原创文章,未经博主允许不得转载。
OpenGL纹理上下颠倒翻转的三种解决办法的更多相关文章
- 转:extjs 添加loading状态的三种解决办法:
extjs 添加loading状态的三种解决办法: 方法一: //materialGrid 指需要显示loading状态的控件id var o=Ext.getCmp('materialGrid'); ...
- PHP中出现Notice: Undefined index的三种解决办法
前一段做的一个PHP程序在服务器运行正常,被别人拿到本机测试的时候总是出现“Notice: Undefined index:”这样的警告,这只是一个因为PHP版本不同而产生的警告(NOTICE或者WA ...
- 总是弹出visual studio 实时调试器 三种解决办法
最近服务器老是弹出visual studio 实时调试器很是郁闷呀.关还关不掉.怎么解决呢 ,现像如下图所示: 下面我们一起来分析一下这种情况的原因: 弹出应用程序: Visual Studio 实时 ...
- 电脑开机失败提示"用户配置文件服务登录失败"的三种解决办法
最近遇到这样一个怪现象,就是每次打开电脑输入密码,突然提示"User Profile Service 服务未能登录,无法加载用户配置文件",然后就没办法正常开机了,为什么会这样呢? ...
- asp.net中URL参数传值中文乱码的三种解决办法
在做Asp.Net开发的时候,参数传递中文时,经常会遇到页面乱码的问题,下面是在网上收集的相关资料,请大家参考: 解决的方法一般有3种: 1.设置web.config文件 <system.web ...
- 【转】android加载大量图片内存溢出的三种解决办法
方法一: 在从网络或本地加载图片的时候,只加载缩略图. /** * 按照路径加载图片 * @param path 图片资源的存放路径 * @param scalSize 缩小的倍数 * @return ...
- 无法连接到WMI提供程序 三种解决办法
无法连接到WMI 提供程序 请注意,你只能使用SQL Server 配置管理器来管理SQL Server 2005服务器.找不到指定的模块.[0x8007007e] 解决方案1: 检查一下 windo ...
- 微信 AES 解密报错 Illegal key size 三种解决办法
微信 AES 解密报错 Illegal key size Java 环境 java version "1.8.0_151" Java(TM) SE Runtime Environm ...
- Spring Boot Maven Plugin打包异常及三种解决方法:Unable to find main class
[背景]spring-boot项目,打包成可执行jar,项目内有两个带有main方法的类并且都使用了@SpringBootApplication注解(或者另一种情形:你有两个main方法并且所在类都没 ...
随机推荐
- LeetCode递归 -2(Recursion) 培训专题 讲解文章翻译 (附链接) (2019-04-09 15:50)
递归 - 空间复杂度 在本文中, 我们将讨论如何分析递归算法的空间复杂度. 在计算递归算法的空间复杂度时,最需要考虑的两个部分就是: 递归相关空间 (recursion related space) ...
- python 函数 参数 (难点传入dict list)
--使用参数组可以传值列表,字典:格式 #-*-coding:utf-8-*- def func5(x,*s,**gs): print(x) print(s) print(gs) print '*'* ...
- Python_Selenium之鼠标右键
Python_Selenium之鼠标右键 一.步骤: (以百度为例)获取百度网址 找到需要右键的元素(定位),xpath表达式为“//*[@id='lg']/img” 然后,右键选择“在新标签页中打开 ...
- python3----智能检测编码的工具
f = open('C:/Users/Administrator/Desktop/100.txt', 'rb') data = f.read() # print(data) f.close() imp ...
- python3----字符串中的字符倒转
方法一,使用[::-1]: s = 'python' print(s[::-1]) 方法二,使用reverse()方法: n = list(s) n.reverse() print(''.join(n ...
- 《TP5.0学习笔记---配置篇》
参考博客:http://blog.csdn.net/self_realian/article/details/75045541
- The server encountered an internal error that prevented it from fulfilling this request.(JsonMappingException: Conflicting getter definitions)
在测试一个方法,dubug查看查询结果已经出来了,结果页面上是The server encountered an internal error that prevented it from fulfi ...
- 使用IDEA工具整合mybatis时使用@Resource和@Autowired自动注解bean时会显示红色问题的解决办法
使用IDEA工具整合mybatis时使用@Resource和@Autowired自动注解bean时会显示红色问题的解决办法 idea中springboot整合mybatis时,通过@Autowired ...
- 获取html元素所在页面的坐标
function findPosition(oElement) { var x2 = 0; var y2 = 0; var width = oElement.offsetWidth; var heig ...
- hadoop报错java.io.IOException: Bad connect ack with firstBadLink as 192.168.1.218:50010
[root@linuxmain hadoop]# bin/hadoop jar hdfs3.jar com.dragon.test.CopyToHDFS Java HotSpot(TM) Client ...