游戏开发论坛

 找回密码
 立即注册
搜索
查看: 5413|回复: 4

图象读取代码(OpenGL纹理的加载以及渲染结果的保存)

[复制链接]

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
发表于 2006-7-10 01:36:00 | 显示全部楼层 |阅读模式
鉴于很多同志还使用类似aux之类古老的东西来读取纹理。甚至很多同志还不知道怎么读取jpg之类的文件让它成为OpenGL纹理。本人近日包装了一个FreeImage库的包装类。能简单的加载纹理。示例代码如下:

//loading texture
xImage image;
if(false == image.load(filename)  )
  return false;
xImageSize imgSize = image.getSize();
image.scalePOT();//放大到2的幂
image.convert(PIXELFORMAT_B8R8G8A8);//转成BGRA格式
xImageSize texSize = image.getSize();

glBindTexture(GL_TEXTURE_2D, m_texID);
glTexImage2D(GL_TEXTURE_2D,0,4,texSize.w, texSize.h,0,GL_BGRA_EXT,  GL_UNSIGNED_BYTE, image.data() );
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexEnvi(GL_TEXTURE_2D,GL_TEXTURE_ENV_MODE,GL_MODULATE);


//save the screen to disk
     xImage image;
     ePIXEL_FORMAT fmt = PIXELFORMAT_B8G8R8A8;
     image.load(800 , 600 , fmt);
     glReadBuffer(GL_FRONT);
     glReadPixels(0 0 , 800 , 600,glfmt , datatype , image.data() );
     image.save("screen.tga");
     image.free();

freeimage库的下载地址:
http://freeimage.sf.net/

同时代码包里还附带一个类xml的配置文件解析器。
欢迎使用。有好的建议和bug请报告给我。
eMail: xheartblue@etang.com
下载地址: http://xreal.51.net/Download/public_src.zip

sf_200671013538.zip

11.09 KB, 下载次数:

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
 楼主| 发表于 2006-7-10 10:00:00 | 显示全部楼层

Re: 图象读取代码(OpenGL纹理的加载以及渲染结果的保存)

刚发的代码少了个Color.h

sf_200671010024.zip

11.52 KB, 下载次数:

8

主题

716

帖子

716

积分

高级会员

Rank: 4

积分
716
发表于 2006-7-12 09:27:00 | 显示全部楼层

Re: 图象读取代码(OpenGL纹理的加载以及渲染结果的保存)

http://openil.sourceforge.net/

121

主题

2029

帖子

2034

积分

金牌会员

Rank: 6Rank: 6

积分
2034
QQ
发表于 2006-7-12 16:31:00 | 显示全部楼层

Re:图象读取代码(OpenGL纹理的加载以及渲染结果的保存)

感谢野猪同志。。。

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
 楼主| 发表于 2006-7-12 19:50:00 | 显示全部楼层

Re: 图象读取代码(OpenGL纹理的加载以及渲染结果的保存)

devil  的多线程有问题。

这个是包装了devil的

sf_200671219500.rar

4.99 KB, 下载次数:

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-24 21:48

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表