游戏开发论坛

 找回密码
 立即注册
搜索
查看: 6081|回复: 9

怎么用D3DXCreateTexture()加载一个png图像??

[复制链接]

67

主题

390

帖子

392

积分

中级会员

Rank: 3Rank: 3

积分
392
发表于 2010-3-17 10:40:00 | 显示全部楼层 |阅读模式
主要是LockRect()后,图像数据怎么拷贝进来?。。。。。。
好像要用什么位运算,要解析像素数据到字节数组。
我不会,网上查也不好查。。

34

主题

657

帖子

672

积分

高级会员

Rank: 4

积分
672
发表于 2010-3-17 13:36:00 | 显示全部楼层

Re:怎么用D3DXCreateTexture()加载一个png图像??

你用D3DXCreateTextureFromFile不就行了。

1

主题

266

帖子

280

积分

中级会员

Rank: 3Rank: 3

积分
280
发表于 2010-3-18 00:31:00 | 显示全部楼层

Re:怎么用D3DXCreateTexture()加载一个png图像??

按照像素的宽高向数组中直接写数据么?这样不是很慢么?
一般应用的话,D3DXCreateTextureFromFile()函数也够用的啊

67

主题

390

帖子

392

积分

中级会员

Rank: 3Rank: 3

积分
392
 楼主| 发表于 2010-3-18 10:52:00 | 显示全部楼层

Re: Re:怎么用D3DXCreateTexture()加载一个png图像??

onemoo: Re:怎么用D3DXCreateTexture()加载一个png图像??

按照像素的宽高向数组中直接写数据么?这样不是很慢么?
一般应用的话,D3DXCreateTextureFromFile()函数也够用的啊


但是一般商业游戏很少直接用bmp,png等格式图像的吧,都是压缩打了包的,那就不能用D3DXCreateTextureFromFile()函数来加载了。只能用D3DXCreateTexture()或D3DXCreateTextureFromFileInMemoryEx()来加载这个图像数据,但是函数D3DXCreateTextureFromFileInMemoryEx()好象不支持寻址模式,那我只能用D3DXCreateTexture()函数了。

你们说呢?

1

主题

266

帖子

280

积分

中级会员

Rank: 3Rank: 3

积分
280
发表于 2010-3-19 11:25:00 | 显示全部楼层

Re:怎么用D3DXCreateTexture()加载一个png图像??

恩  要是不想用现成的图片格式,那就自己定义一个呗,那样的话,取得的图像数据还是得按像素拷贝给数组。是么?
我不太清楚,没在D3D中用过过D3DXCreateTexture()。
我之前都是把自定义的图片格式用于软件渲染。

67

主题

390

帖子

392

积分

中级会员

Rank: 3Rank: 3

积分
392
 楼主| 发表于 2010-3-19 15:01:00 | 显示全部楼层

Re: Re:怎么用D3DXCreateTexture()加载一个png图像??

onemoo: Re:怎么用D3DXCreateTexture()加载一个png图像??

恩  要是不想用现成的图片格式,那就自己定义一个呗,那样的话,取得的图像数据还是得按像素拷贝给数组。是...


这个似乎是一个很普遍的问题,但为何会没人愿意讲一下 [em7]

34

主题

657

帖子

672

积分

高级会员

Rank: 4

积分
672
发表于 2010-3-19 21:15:00 | 显示全部楼层

Re:怎么用D3DXCreateTexture()加载一个png图像??

还是用DDS吧,支持压缩,没必要自己定义格式。

1

主题

266

帖子

280

积分

中级会员

Rank: 3Rank: 3

积分
280
发表于 2010-3-19 23:41:00 | 显示全部楼层

Re: Re: Re:怎么用D3DXCreateTexture()加载一个png图像??

轩辕崇正: Re: Re:怎么用D3DXCreateTexture()加载一个png图像??



这个似乎是一个很普遍的问题,但为何会没人愿意讲一下 [em7]


恩  其实也不能算是没人讲吧  这个东西比较自由 大概每人都有自己的做法

恩  好吧  我说一个我以前用自定义图片的做法
我的这个格式是用来软件渲染的,我需要一种用起来方便的存放图片数据的格式,于是才想到自定义一个。
其实说起来,这个格式很白痴的,只是定义了一个用来描述文件内容的文件头结构,在其中储存了图片的宽高啊、大小啊、位深度啊、实际数据大小啊、等等常用的信息,然后文件的最后储存的就是实际的数据。连压缩都没有,其实就是一种变种的.bmp格式。
要问我为什么不直接用.bmp格式啊?  没什么原因,就是想练一下自定义。
言归正传,我写了个转换程序,用来把.bmp格式的图片转换成我的格式。我的格式中不是有一个数据块就是记载了图像数据么。所以我直接取得它的指针,然后再应用到渲染中。
对了,因为我的是软件渲染,所以操作也都在内存中,就是在内存中复制来复制去的运算。所以我也不知道在D3D下这种办法的效率怎么样?有没有什么更好的办法?

67

主题

390

帖子

392

积分

中级会员

Rank: 3Rank: 3

积分
392
 楼主| 发表于 2010-4-2 11:19:00 | 显示全部楼层

Re: Re: Re: Re:怎么用D3DXCreateTexture()加载一个png图像??

onemoo: Re: Re: Re:怎么用D3DXCreateTexture()加载一个png图像??



恩  其实也不能算是没人讲吧  这个东西比较自由 大概每人都有自己的做法

恩  好吧  我说一个我以前用...


我发现用内存加载的图像数据无法使用寻址模式。
所以我有些图片格式用了自定义的,有些直接用原始格式

0

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2010-4-13 15:07:00 | 显示全部楼层

Re:怎么用D3DXCreateTexture()加载一个png图像??

其实,一般的游戏开发来说,图片基本上最终还是要化为bmp进行操作。怎样压缩、解压图片,一般也是有程序员自定义的事,所以这东西没什么好说的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-12 03:29

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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