OpenGL像素默认像素存储格式

OpenGL中,像素存储格式由glPixelStore设置,默认行存储间隔为4的倍数,不足时会填充字节。例如,一个2*2的红色图片默认存储格式会填充额外的字节。通过代码测试读取RGBA并提取RGB,再显示到屏幕。
摘要由CSDN通过智能技术生成

OpenGL的像素存储格式是有glPixedStore来设定的,默认情况下相邻两行的存储的位置是相差4的整数倍,

也就是一行的存储要用4的整数倍的字节,不够的情况下要补充。举例说明:

一个2*2的红色图片(用GL_UNSIGNED_BYTE来表示一个颜色通道)的默认存储格式为:

(255,0,0),(255,0,0)_ _

(255,0,0),(255,0,0)_ _

这里(255,0,0)表示三个连续的byte,“_”表示一个byte,这样一行就是“(255,0,0),(255,0,0)_ _”,正好是8个byte,这里“_”表示补充的byte。

用代码来测试一下:读取RGBA,然后再提取其中的RGB,在画到屏幕上:

#include <glew.h>
#include <freeglut.h>
#include <iostream>
#include<vector>
using namespace std;

int WinX = 512, WinY = 512;
void initialize()
{
	if (glewInit()!=GLEW_OK)
	{
		cout << "failed to init glew\n"; exit(0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值