我要发帖 回复

新手上路

1

主题

12

积分

0

专家分

:

私信
发表时间 : 2010-1-22 10:39:12 | 浏览 : 2199    评论 : 1
请问有没有人接触过opengi? 这是一个用opengl作为底层的API。 主要用于处理Geometry Images. 现在我遇到了一个问题,就是如何把生成的geometry image导出到文件? 我看了源代码,他是用纹理作为一个image, 那么,现在问题转化为:知道内存中有纹理如何把这纹理导出到一个外部文件呢?

最近VR访客

tan_dunming 评论于2010-1-22 16:39:27
思路:使用glGetTextureImage获得纹理的rgb像素数据,然后保存,可以考虑使用FreeImage什么的 比如

  1.                 glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
  2.                 glEnable(GL_TEXTURE_2D);
  3.                 glBindTexture(GL_TEXTURE_2D, activeTexture);
  4.                 float fWidth, fHeight;
  5.                 glGetTexLevelParameterfv(GL_TEXTURE_2D, 0, GL_TEXTURE_WIDTH, &fWidth);
  6.                 glGetTexLevelParameterfv(GL_TEXTURE_2D, 0, GL_TEXTURE_HEIGHT, &fHeight);
  7.                 FIBITMAP *dib = FreeImage_Allocate(fWidth, fHeight, 24);
  8.                 BYTE *pixels = (BYTE*)FreeImage_GetBits(dib);
  9.                 glGetTexImage(GL_TEXTURE_2D,   0,   GL_BGR,   GL_UNSIGNED_BYTE, pixels);
  10.                 FreeImage_Save(FIF_JPEG, dib,  sFilePath.c_str(), JPEG_DEFAULT);
  11.                 FreeImage_Unload(dib);
复制代码
追求卓越

手机版|VR开发网 ( 津ICP备18009691号 ) 统计 网安备12019202000257

GMT+8, 2020-10-1 09:32 PM

返回顶部