游戏开发论坛

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: 微无渊

我的结论:DX9不支持非2的次幂尺寸纹理,还得显卡说了算

[复制链接]

10

主题

149

帖子

149

积分

注册会员

Rank: 2

积分
149
QQ
发表于 2011-11-1 11:01:00 | 显示全部楼层

Re: Re:我的结论:DX9不支持非2的次幂尺寸纹理,还得显卡

happyking: Re:我的结论:DX9不支持非2的次幂尺寸纹理,还得显卡说了算

不用2次幂的纹理,一样可以正常加载啊.

用2次幂的纹理,到底有什么好处?


好处之一是mipmap,看看这个http://en.wikipedia.org/wiki/Mipmap

imagine a 256x128 image. This would have smaller versions created of dimensions 128x64, 64x32, 32x16, 16x8, 8x4, 4x2, 2x1, and 1x1.

If this image was 256x192, it would work fine until you got down to a size of 4x3. The next smaller image would be 2x1.5 which is obviously not a valid size. Some graphics hardware can deal with this, but many types cannot.

Some hardware also requires a square image but this isn't very common anymore.

想象一张 256x128 的图片,它可以有128x64, 64x32, 32x16, 16x8, 8x4, 4x2, 2x1,和 1x1.的mipmap。
如果这张图是 256x192,同样创建mipmap,在 4x3 之前都是OK的,再小一层就变 2x1.5了,这个1.5能否处理,要看硬件……

0

主题

398

帖子

577

积分

高级会员

Rank: 4

积分
577
发表于 2011-11-1 13:18:00 | 显示全部楼层

Re:我的结论:DX9不支持非2的次幂尺寸纹理,还得显卡说了

某些显卡上,非2的幂纹理能创建,也一样使用,但是lock时你会发现,stride的值仍然是按照2的幂对齐的.虽然这个不代表显存中纹理就是按照这样储存的,但还是按照规矩来得稳妥.

9

主题

62

帖子

62

积分

注册会员

Rank: 2

积分
62
发表于 2011-11-1 17:29:00 | 显示全部楼层

Re:我的结论:DX9不支持非2的次幂尺寸纹理,还得显卡说了

D3DXCreateTextureFromFile只不过是D3DXCreateTextureFromFileEx用了几个默认参数,实在不知道楼主所说实际游戏中很少用这个函数是什么意思

10

主题

149

帖子

149

积分

注册会员

Rank: 2

积分
149
QQ
发表于 2011-11-1 18:08:00 | 显示全部楼层

Re: Re:我的结论:DX9不支持非2的次幂尺寸纹理,还得显卡

artint: Re:我的结论:DX9不支持非2的次幂尺寸纹理,还得显卡说了算

某些显卡上,非2的幂纹理能创建,也一样使用,但是lock时你会发现,stride的值仍然是按照2的幂对齐的.虽然这个不代表显存中纹理就是按照这样储存的,但还是按照规矩来得稳妥.


正解。用DirectDraw也一样,Lock一个Video Memory的Surface看它的lPitch,仍然是按照2的幂对齐的……

50

主题

236

帖子

454

积分

中级会员

Rank: 3Rank: 3

积分
454
 楼主| 发表于 2011-11-1 22:55:00 | 显示全部楼层

Re: Re: Re:我的结论:DX9不支持非2的次幂尺寸纹理,还得显

2D游戏一般只关心内存的占用。

10

主题

149

帖子

149

积分

注册会员

Rank: 2

积分
149
QQ
发表于 2011-11-2 08:15:00 | 显示全部楼层

Re: Re: Re: Re:我的结论:DX9不支持非2的次幂尺寸纹理,还得

微无渊: Re: Re: Re:我的结论:DX9不支持非2的次幂尺寸纹理,还得显卡说了算

2D游戏一般只关心内存的占用。


There is nothing else I can say..............

0

主题

398

帖子

577

积分

高级会员

Rank: 4

积分
577
发表于 2011-11-2 13:17:00 | 显示全部楼层

Re:我的结论:DX9不支持非2的次幂尺寸纹理,还得显卡说了

极端情况下,2D游戏一千次DrawCall可能都不及3D五千次的DrawCall快!

8

主题

79

帖子

126

积分

注册会员

Rank: 2

积分
126
发表于 2011-11-2 13:36:00 | 显示全部楼层

Re: Re: Re: Re:我的结论:DX9不支持非2的次幂尺寸纹理,还得

微无渊: Re: Re: Re:我的结论:DX9不支持非2的次幂尺寸纹理,还得显卡说了算

2D游戏一般只关心内存的占用。


这么愚蠢的结论是谁教你的? 回去抽他丫的

33

主题

159

帖子

272

积分

中级会员

Rank: 3Rank: 3

积分
272
QQ
发表于 2011-11-5 17:42:00 | 显示全部楼层

Re:我的结论:DX9不支持非2的次幂尺寸纹理,还得显卡说了

D3D做2D 别用精灵,无论网上把D3DSPRITE吹的比牛还肥
自己做四个点的两个三角形,摄像机PROJ用正交矩阵,在三维空间里移动缩放调整那一对对的三角形,你会发现比精灵方便多了
效果?效果全看SHADER
这么一来,D3D里的大部分东西都会在你的2D游戏里出现。不会如只用精灵一样的按着MS的步子跳探戈

1

主题

2

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2012-3-5 20:31:00 | 显示全部楼层

Re:我的结论:DX9不支持非2的次幂尺寸纹理,还得显卡说了

7 楼好亮,话说都是人都是纠结,然后进步的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-8-1 01:17

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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