多重纹理的一个问题?
有两个矩形,大小和位置都不相同,请问可以使用多重纹理一次渲染完成两个矩形的帖图吗?
[解决办法]
不懂你说什么啊。。。
[解决办法]
如果是4个顶点的矩形肯定不行。
因为只有4个纹理坐标,只能2个图片一样大。
要实现你说的效果,至少是9个矩形(16个顶点),然后小的图片周围还有有一圈透明像素
第一层纹理,uv按照0,1.0根据间隔设置
第2层,需要透明的地方,设置到透明像素坐标,需要画东西的位置,根据你算出来的不透明坐标设置。
[解决办法]
多重纹理就是纹理混合吧,可以的啊,我大学的时候还搞过一个在一片地形上贴三种纹理,一种草皮,一种泥皮,一种岩石,三种纹理完美过渡,为什么实现这种效果用了六个纹理,除了前面三种外还增加了三个黑白纹理,这三个纹理与前面的纹理一一对应,分别表示前三种纹理在地形上的位置,表示方法如下:
地形是方形的,黑白纹理也是方形的,要把黑白纹理平铺在地形上,这样使得纹理白色的地方表示这个黑白纹理对应的纹理(草皮,泥皮,岩石之一)要出现在地形上,黑色的地方表示对应的纹理不出现,黑白之间颜色渐变过渡。在纹理混合阶段,黑白纹理与其对应纹理相与。
这样使得每种效果纹理(草皮,泥皮,岩石)能够通过黑白纹理找到自己在地形上的位置,最终整个地形上就能展现出不同纹理效果。地形就可以看作是你说的矩形,这种方法比较简单,也好实现一点,但是要用辅助的黑白纹理来表示位置。也许可以通过纹理的Alpha通道来实现黑白纹理所实现的功能,从而省下那三个黑白纹理,但是我也不知道可不可以,不玩D3D很多年
[解决办法]
多重纹理是一个三角形上,使用多个纹理,一次渲染出来
如果你的两个矩形都是使用多重纹理,各重用的纹理文件都相同,只是纹理坐标不同的话, 是可以一次渲染出来的
一次性设置好rengderstate,把两个矩形依次绘制完就是了
如果两个矩形的纹理各重不同,就不行了