OpenGL纹理上下颠倒翻转的三种解决办法(转)
-
综述
在使用OpenGL函数加载纹理到图形时,经常遇到纹理上下颠倒的问题。原因是因为OpenGL要求纹理坐标原点在图片最下面,如图:
而图片信息中的原点一般都在最上方,一行行记录下来的,就会导致整个图片上下颠倒了。
如图:从这个思路触发共有三种办法解决问题:
一.翻转顶点信息中的纹理坐标
原始顶点如图:
因为纹理坐标的范围是0-1,所以翻转的话都统一用1去减
得到正确的图片:
二.翻转顶点Shader中的纹理坐标
基于方法一,更聪明的办法就是直接在Shader中翻转纹理Y轴坐标
三.翻转顶点
上面都是直接针对问题的解决办法,反其道而行之,我们也可以直接翻转顶点,这样纹理就正了:
在翻转顶点时,就不是直接对Y值用1去减,因为顶点的取值范围是-1 - 1 ,所以我们直接加上负号做翻转即可
这篇总结,参考了一个很好的OPENGL学习网站
https://learnopengl-cn.github.io/01%20Getting%20started/06%20Textures/,
大力推荐
转载于:https://www.cnblogs.com/bokeofzp/p/5967512.html
OpenGL纹理上下颠倒翻转的三种解决办法(转)相关推荐
- win10在设备管理器里找不到蓝牙的三种解决办法
一些使用win10的小伙伴在设备管理器控制面板中找不到蓝牙,导致无法进行相应的实际操作.那win10在设备管理器里找不到蓝牙怎么回事呢?下面小编为这个问题带来了解决方法,一起来看看吧. win10在设 ...
- Win11的两个实用技巧系列之解决dns异常的三种方法、win10/win11卡顿的三种解决办法
电脑dns异常怎么修复win10? Win10解决dns异常的三种方法 电脑dns异常怎么修复win10?最近有很多win10用户遇到dns配置错误的问题,这让用户非常苦恼,下面我们就来看看Win10 ...
- linux装win之后C盘爆满,win7c盘突然爆满的三种解决办法
win7c盘突然爆满怎么办?前段时间有用户和我们反馈,自己电脑原来都是好好的,突然有一天变得非常卡顿,打开计算机一看C盘处于爆满的红色状态,明明之前还有很多空间,这是什么原因呢?小编今天就来告诉大家w ...
- 总是弹出visual studio 实时调试器 三种解决办法
总是弹出visual studio 实时调试器 三种解决办法 最近服务器老是弹出visual studio 实时调试器很是郁闷呀.关还关不掉.怎么解决呢 ,现像如下图所示: 下面我们一起来分析一下这种 ...
- 出现No persister for错误后有如下三种解决办法
出现No persister for错误后有如下三种解决办法: 1.检查hbm.xml文件,配置文件后缀名写错 mapping file 必须是.hbm.xml结尾. 2.hibernate 的map ...
- SQL Server 数据库没有有效所有者的三种解决办法
问题描述: 开发的过程中,操作系统出了问题,决定重装系统.但是没有将SQL Server中的数据库文件分离出来,直接将系统格了.在新系统数据库中附加了数据库文件,一切还算正常,但当打开数据库关系图的时 ...
- php中的 notice,PHP中出现Notice: Undefined index的三种解决办法
前一段做的一个PHP程序在服务器运行正常,被别人拿到本机测试的时候总是出现"Notice: Undefined index:"这样的警告,这只是一个因为PHP版本不同而产生的警告( ...
- 计算机桌面刷新位置不可用,Win10开机提示桌面位置不可用的三种解决办法
Win10系统开机显示:位置不可用,C:\WINDOWS\system32\config\systemprofile\Desktop不可用.如果该位置位于这台电脑上,请确保设置或驱动器已连接,或者光盘 ...
- linux执行sh提示非标准环境,Linux执行.sh文件时提示No such file or directory该怎么办(三种解决办法)...
先给大家看下问题描述,下图是我在运行时出现错误截图: 解决方法 分析原因,可能因为我平台迁移碰到权限问题我们来进行权限转换 1)在Windows下转换: 利用一些编辑器如UltraEdit或EditP ...
最新文章
- CVPR 2020 论文开源项目一页看尽,附代码论文
- 自动驾驶中的9种传感器融合算法
- python3字符串的常见操作
- ASP.NET学习路线图
- AtCoder Grand Contest #026 D - Histogram Coloring
- 电动汽车又“火了” 面对频繁自燃事故 蔚来不得不这样做...
- Linux 进程优先级以及环境变量
- Centos挂载新硬盘开机自动挂载
- 解决路由环路问题的探讨
- 最新白白iApp手册开源-iApp源码 非常牛逼
- Eclipse 2021-09最新版安装图文教程(详细包会)
- Python制作某电商平台商品竞拍脚本,能自动定时、抢拍、购买
- 苹果微信昵称表情php,苹果手机微信名如何使用特殊符号
- 【Linux】/bin/sh、/bin/bash、/bin/dash、init=/sysroot/bin/bash(sh) 、init=/bin/bash(sh) 的区别
- C++ 视频播放开源库
- 空间点过程与随机测度(二):测度的故事
- OpenGL---GLUT教程(三) GLUT窗口设置
- OpenGL实现太阳,地球,月球的公转与自转
- 计算机主机usb插口松,usb插口(电脑usb接口松动小妙招)
- 015 Rust死灵书之Transmutes转换
热门文章
- python3数据类型
- Hibernate(九)一对多双向关联映射
- [Arduino] 学习总结小合集(更新ING)
- Corona按钮只能让点击一次
- tsql2008技术内幕:tsql语言基础(第3章)
- MATLAB报错“Integers can only be raised to positive integral powers.“
- linux 防火墙开机启动项,Ubuntu 9.10下实现Firestarter网络防火墙自启动
- android悬浮按钮弹出与隐藏,Android悬浮窗按钮实现点击并显示/隐藏多功能列表
- php kafka 日志系统,kafka-PHP客户端库(Composer)
- leetcode算法题--相交链表