-
綜述
在使用OpenGL函數加載紋理到圖形時,經常遇到紋理上下顛倒的問題。原因是因為OpenGL要求紋理坐標原點在圖片最下面,如圖:
而圖片信息中的原點一般都在最上方,一行行記錄下來的,就會導致整個圖片上下顛倒了。
如圖:從這個思路觸發共有三種辦法解決問題:
一.翻轉頂點信息中的紋理坐標
原始頂點如圖:
因為紋理坐標的范圍是0-1,所以翻轉的話都統一用1去減得到正確的圖片:
二.翻轉頂點Shader中的紋理坐標
基於方法一,更聰明的辦法就是直接在Shader中翻轉紋理Y軸坐標
三.翻轉頂點
上面都是直接針對問題的解決辦法,反其道而行之,我們也可以直接翻轉頂點,這樣紋理就正了:
在翻轉頂點時,就不是直接對Y值用1去減,因為頂點的取值范圍是-1 - 1 ,所以我們直接加上負號做翻轉即可這篇總結,參考了一個很好的OPENGL學習網站
https://learnopengl-cn.github.io/01%20Getting%20started/06%20Textures/,
大力推薦