游戏开发论坛

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: 三叶虫Syc

D3DXCreateTextureFromFileEx

[复制链接]

4

主题

10

帖子

10

积分

新手上路

Rank: 1

积分
10
 楼主| 发表于 2005-3-28 08:51:00 | 显示全部楼层

Re: Re:D3DXCreateTextureFromFileEx

sammychan: Re3DXCreateTextureFromFileEx

楼上的,你如何得知你的纹理的大小呢?

//获取图位宽度
long CTexture::GetWidth()
{
  D3DSURFACE_DESC d3dsd;
if(m_Texture == NULL)
    return 0;
if(FAILED(m_Texture->GetLevelDesc(0, &d3dsd)))
   return 0;
  return d3dsd.Width;
}
//获取图位高度
long CTexture::GetHeight()
{
  D3DSURFACE_DESC d3dsd;
if(m_Texture == NULL)
    return 0;
if(FAILED(m_Texture->GetLevelDesc(0, &d3dsd)))
    return 0;
  return d3dsd.Height;
}

1

主题

48

帖子

48

积分

注册会员

Rank: 2

积分
48
发表于 2005-3-28 11:54:00 | 显示全部楼层

Re:D3DXCreateTextureFromFileEx

楼主学得很带劲呀。我也没仔细考虑过,不过随便做个图贴到id3dxsprite上就能看出问题了。

22

主题

132

帖子

134

积分

注册会员

Rank: 2

积分
134
发表于 2005-3-28 19:33:00 | 显示全部楼层

Re:D3DXCreateTextureFromFileEx

第三个参数设置为图片的宽度,第四个参数设置为图片的高度,第五个参数设置为1, 这样就可以不变形

4

主题

10

帖子

10

积分

新手上路

Rank: 1

积分
10
 楼主| 发表于 2005-3-28 21:23:00 | 显示全部楼层

Re: Re:D3DXCreateTextureFromFileEx

dcba4321: Re3DXCreateTextureFromFileEx

第三个参数设置为图片的宽度,第四个参数设置为图片的高度,第五个参数设置为1, 这样就可以不变形

我试过,图还是要256 * 256, 128*256才不会2次幕,
试了还是没用。作的图都要128   256 这多让人难受!!

43

主题

155

帖子

171

积分

注册会员

Rank: 2

积分
171
发表于 2005-3-29 08:50:00 | 显示全部楼层

Re:D3DXCreateTextureFromFileEx

可以把多幅图拼在一块。这样限制是有道理的,要不然运行起来狂慢,你就知道什么叫让人难受了... -_-|||

8

主题

111

帖子

163

积分

注册会员

Rank: 2

积分
163
发表于 2005-3-29 09:52:00 | 显示全部楼层

Re:D3DXCreateTextureFromFileEx

贴图不是用来直接显示的,是用来贴在mesh上显示的,所以拉不拉伸关系不大.如果要把贴图当一张2D图贴在屏幕上,可以拉伸这个mesh来保持比例.当然效果会有些失真,不过如果贴图够大,应该问题不大.还有可以把图片Load到一张比自己大的texture上,比如640*480的图load到1024*1024的texture上的一块640*480的区域上,然后设定贴图坐标把这块区域准确的贴到mesh上.
有些显卡可以支持不是2的次方的Texture,有caps标志可以查的.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-25 00:57

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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