立方体六个面,不同纹理DX

mszjk 2009-04-13 06:23:00
画一个立方体,六个面,每个面的纹理不同(1-6号纹理图片中的一个)
网上说是融合?
看不懂.
请给点关键代码
DX
...全文
193 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
IONPhantom 2009-04-13
  • 打赏
  • 举报
回复
...这不是什么good idea,是因为你的需求没有别的方法可以做到.
如果你一定要在DX9上做的话建议你使用1楼的方法,这样速度会快很多.
如果你可以在DX10上做的话那就可以利用DX10的新特性:TextureArray,这个方法可以把你的所有纹理打包,在GS里面给对应的面生成ID,在PS里通过ID去索引对应的纹理.
mszjk 2009-04-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 P_hantom 的回复:]
那你的6个面就必须有自己独立的纹理坐标,也就是说6个面是分开的,只不过每个面之间的交界定点位置是重合的
在画的时候要分别画,6个面每个面进行一次SetTexture和DrawPrimitive,否则别无他法.
因为你的这6个面中每个面的问题坐标都是(0,0)-(1,1),所以只能画多次,每次重新设置纹理
[/Quote]

good idea
正方形用DrawIndexedPrimitive
IONPhantom 2009-04-13
  • 打赏
  • 举报
回复
那你的6个面就必须有自己独立的纹理坐标,也就是说6个面是分开的,只不过每个面之间的交界定点位置是重合的
在画的时候要分别画,6个面每个面进行一次SetTexture和DrawPrimitive,否则别无他法.
因为你的这6个面中每个面的问题坐标都是(0,0)-(1,1),所以只能画多次,每次重新设置纹理
mszjk 2009-04-13
  • 打赏
  • 举报
回复
放到大的图片也想过.
这个只针对6个面,如果是6 * 9呢?
最好是6个纹理图片,各个图片映射到不同的面去.
zzz822163 2009-04-13
  • 打赏
  • 举报
回复
顶点坐标里加上纹理坐标,如struct CUSTOMVERTEX
{
FLOAT x, y, z; //顶点位置
FLOAT u,v ; //顶点纹理坐标
};
六个面的纹理都放到一个大的纹理图片里,设置顶点的时候根据纹理坐标来指定这个纹理的区域就可以了,纹理中不同的区域显然图片是不一样的

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧