给立方体添加纹理

龙兴大哥

龙兴大哥

2016-01-29 13:19

给立方体添加纹理,给立方体添加纹理

今天看了《Managed DirectX 9 Kick Start: Graphics and Game Programming 》有关加纹理的,下面我以我对书的理解谈谈如何
简单的向对立方体加纹理。有不对之处,请大家指正,谢谢。
首先我把原来的PositionColored类型的顶点改为PositionTextured,原因是显而易见的。
顺便提一句,CustomVertex里有2种大的顶点类型,一种是Transformed,一种是Position,分别用于2D坐标和3D坐标,
其中每种大概又分[Normal][Colored][Textured],意义分别如下:
[Normal] :有点像是在定义法线方向,在使用lights时,应使用有Normal的顶点方式
[Colored]: 为顶点在颜色
[Textured]:加纹理
改顶点类形时还应改vertexBuffer构造方法中的和device.vertexFormat中的。
由于是PositionTextured类型顶点,而且目的是要对矩形加入纹理,所以得为每个顶点设置tu,tv,及纹理坐标。tu,tv的
取值范围是在[0,1]之间,矩形纹理的左上角的坐标定为(0,0),右下角(1,1),右上角(0,1),左下角(1,0) ,有点像是矩阵
的坐标哈...然后把纹理各顶点坐标分别对应于要渲染的矩形顶点...如:
verts[10].X=-1.0f;verts[10].Y=1.0f;verts[10].Z=-1.0f;verts[10].Tu=1.0f;verts[10].Tv=0.0f;
verts[11].X=-1.0f;verts[11].Y=1.0f;verts[11].Z=1.0f;verts[11].Tu=0.0f;verts[11].Tv=0.0f;
verts[12].X=1.0f;verts[12].Y=1.0f;verts[12].Z=-1.0f;verts[12].Tu=1.0f;verts[12].Tv=1.0f;

verts[13].X=1.0f;verts[13].Y=1.0f;verts[13].Z=1.0f;verts[13].Tu=0.0f;verts[13].Tv=1.0f;
以上代码是立方体的上底.
顶点与纹理的对应关系是设置好了,现在要做的就是获取纹理图片,图片应是一个位图,位图的宽、高尽量设为2的n次幂大小,
如16x16,32x32,64x64...等,这样能加快渲染速度,当然其它宽高也可以啦。
Texture tex=new Texture(device,new Bitmap(this.GetType(),"texture.bmp"),0,Pool.Managed);//方法之一,还有其他方法,有待论论
texture.bmp是在工程中导入的,solution explore->your solution Name->右击->add existing item...最后,在调用device.DrawPrimitives前设置device.SetTexture,如:device.SetTexture(0,tex),其中第一个参数为纹理stage,看了书,现在也不是很清楚,看到后面,我再说明吧,第二个参数就是刚才设置的纹理了。大功告成。
展开更多 50%)
分享

猜你喜欢

给立方体添加纹理

电脑网络
给立方体添加纹理

Photoshop给金属立方体添加质感的颜色效果

PS PS基础
Photoshop给金属立方体添加质感的颜色效果

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

立方体世界攻略

电脑网络
立方体世界攻略

正立方体折纸手工diy

折纸 手工折纸 简易折纸 创意折纸
正立方体折纸手工diy

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

纸立方体怎么折 折一个漂亮的折纸立方体

折纸 儿童折纸 手工折纸 折纸教程
纸立方体怎么折 折一个漂亮的折纸立方体

PS制作水晶绿色立方体

PS PS基础 ps平面设计教程 ps去水印教程
PS制作水晶绿色立方体

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

PHP新手上路(八) 文件上传

PHP新手上路(八)  文件上传

PHP编码规范

PHP编码规范
下拉加载更多内容 ↓