惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

人人都是产品经理
人人都是产品经理
Stack Overflow Blog
Stack Overflow Blog
S
SegmentFault 最新的问题
博客园 - 司徒正美
aimingoo的专栏
aimingoo的专栏
U
Unit 42
GbyAI
GbyAI
B
Blog RSS Feed
博客园 - Franky
L
LangChain Blog
Hugging Face - Blog
Hugging Face - Blog
美团技术团队
The GitHub Blog
The GitHub Blog
Y
Y Combinator Blog
云风的 BLOG
云风的 BLOG
H
Hackread – Cybersecurity News, Data Breaches, AI and More
博客园 - 三生石上(FineUI控件)
Microsoft Azure Blog
Microsoft Azure Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
G
Google Developers Blog
Last Week in AI
Last Week in AI
阮一峰的网络日志
阮一峰的网络日志
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Apple Machine Learning Research
Apple Machine Learning Research

博客园 - HenryRead

Unreal Engine 4 一些小技巧或提示 介绍Unreal Engine 4中的接口(Interface)使用C++和蓝图 Project Euler Problem 17 一种简单定义FourCC常量的方法 (C/C++) [翻译]进化游戏的层次结构 - 用组件来重构你的游戏实体 [转载]Netmsg 局域网聊天程序 [转载]使用 WSAAsyncSelect 的 Winsock 编程模型 [转载]Singleton的一个基类实现 [转载] VC6 STLport-5.1.4 /STLport-4.6.2 编译,安装 [转载] 跨平台C++程序开发系列文章 计算机科学数学理论浅谈 (转载) 致初学作曲的业余音乐爱好者 (转载) 搜集的优良OpenGL教程 (转载) OpenGL教程 "Top Ten" (转载) fltk2更新简介 FLTK简介 开发者:我们应该在哪个层次编写代码? [Linux 书籍合集] Linux eBooks collection CodeLite可以媲美Code::Blocks 不指定
OpenGL 像素在内存中的排列方式
HenryRead · 2016-02-20 · via 博客园 - HenryRead

在OpenGL中所有和图像像素有关的API(包括glTexImage2D, glReadPixels等)第一个像素从左下角开始,从左到又一次排列,满了从下到上排列。

这个和Windows 下惯用的左上角开始的像素排列是上下颠倒的。所以使用glTexImage2D最后一个参数data,要注意你传进去的像素是左上角,还是左下角排列的。

SDL的Surface是按Windows惯用的左上角开始排列的,所以你直接把SDL的Surface作为glTexImage2D的数据的时候,你会感觉UV坐标上下颠倒了,变成了DirectX的UV坐标系(DirectX(0, 0)在左上角, OpenGL(0, 0)在左下角)。

但是实际上根源是纹理像素数据排列上下颠倒了。

FreeImage读出来的像素数据是按OpenGL惯用左下角开始的像素排列方式,3个颜色通道是按BGR方式排列。

stb_image库默认是按Windows惯用左上角开始的像素排列方式,3个颜色通道按RGB方式排列。但是有一个函数stbi_set_flip_vertically_on_load(1)设置颠倒上下像素排列变成OpenGL约定的左下角开始的像素排列。