作者asoedarren (别再咪我)
看板GameDesign
标题Re: [程式] 怎麽用d3d读取非2幂次的图??
时间Thu Jun 1 14:34:40 2006
※ 引述《totoma (我想当好人)》之铭言:
: 每次用d3d在画2d图时都会变的有点模糊
: 好像说不是2的幂次的长宽就会自动去放大成2n
: 那我要怎麽解决,好他可以读任意图形呢??
: 我试过全部合成一张大图(512*512)在去剪出来
: 但是这样太没效率,除了图要重做,总占的记忆体好像也比较多
: 有没有什麽好方法???
: 除了这问题,还有一个贴图周围会出现黑边,我找过解决方法好像是UV内缩,
: 但怎麽缩???
这部份讲起来也是蛮多解法
1.偷懒的解法就是 在loadTexture时 在需要填宽高的参数 预设通常是填0
你把它填入原图的宽高 就可以正常显示 但不建议使用 因为较旧的显示卡是不支援
的 如果你只是要自己测试倒是可以用
2.类似你说的作法 但是不是直接用美工作 而是用程式建立大一级图 例如512X512 然
後把原来的图画上去 如果你是用正交投影显示需要换算出UV 如果是用sprite 可以
直接指定需要显示的范围 这方法像你说的 浪费记忆体 不过是挺容易的作法
3.在美术做图的时候 请他做成2次方图形
4.用切割的方式 将原图等比例切割例如 32X32 或是依照原图大小
按照比例来切割 256*256 256*128 128*64等等 然後自行写演算法秀图
这方法是最推荐的作法 不过相关演算法要自己思考一下
5.另外写读图程式 作成自己的格式 然後lock surface 去blit 这部份是比较进阶的
PS:个人不太建议再使用DDraw 将来要移转到D3D 会产生许多相容性的问题
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.240.182.45