OpenGL 保存渲染的结果为图片

本文介绍了如何在OpenGL中使用glReadPixels函数将GPU渲染的内容保存为图片。glReadPixels用于从显存中读取像素数据,指定矩形区域、数据格式和类型。保存时,借助stb_image_write库将数据转换成BMP、JPEG等格式。由于OpenGL图像原点与常见图片格式不同,通常需要进行坐标翻转处理。示例中,作者将Shadertoy上的Shader移植到本地OpenGL,成功渲染出蛋糕效果。
摘要由CSDN通过智能技术生成

在OpenGL中GPU渲染完数据向CPU回传显存的唯一方式为glReadPixels。其函数原型为

void glReadPixels( GLint x,
GLint y,
GLsizei width,
GLsizei height,
GLenum format,
GLenum type,
void * data);

前四个参数定义了一个像素矩形空间指向我们想要保存的区域

第五个参数指定了像素数据的格式,可以传入的值有GL_STENCIL_INDEXGL_DEPTH_COMPONENTGL_DEPTH_STENCILGL_REDGL_GREENGL_BLUEGL_RGBGL_BGRGL_RGBA, 或GL_BGRA.

 第六个指针指定了数据的类型,必须为以下值之一GL_UNSIGNED_BYTEGL_BYTEGL_UNSIGNED_SHORTGL_SHORTGL_UNSIGNED_INTGL_INTGL_HALF_FLOATGL_FLOAT

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值