14、创建 Direct3D 精灵

创建 Direct3D 精灵

在 Direct3D 中绘制透明精灵的关键在于使用纹理。如果你熟悉 3D 图形,那么你肯定多次听说过“纹理”这个词。在 3D 领域中,纹理的受欢迎程度仅次于无处不在的多边形。纹理用于为 3D 空间中的多边形表面上色。就像给墙壁刷漆后,漆的纹理会影响墙壁的外观和触感一样,在 3D 图形中,纹理也是类似的概念。

不过,在 3D 领域,“纹理”这个术语实际上是指将位图应用到多边形上。实际上,在 3D 图形的上下文中,纹理不过是一个位图图像。而在计算机图形学之外,“纹理”这个词有完全不同的含义。所以,它更多地描述了图像如何应用到多边形上,而不是图像本身是什么。纹理是有纹理的,位图是被绘制的。这就是为什么不能使用 Direct3DSurface8 对象来绘制精灵,因为该对象不支持透明度,而必须使用 Direct3DTexture8 对象。

1. Direct3D 纹理与表面的比较

Direct3D 纹理类似于 Direct3D 表面。表面代表屏幕上可见的图像,并且仅以 2D 术语进行处理;而纹理在应用到多边形时存在于 3D 中,否则它只是内存中的一个位图。可以从磁盘加载位图文件并将其存储在 Direct3D 表面中,加载位图文件并将其存储在 Direct3D 纹理中的过程与之非常相似。

2. 加载纹理

将位图文件加载到表面的关键在于 D3DX 中的一个子程序(更准确地说是方法)LoadSurfaceFromFile,它可以一次性将指定位图文件中的位图图像填充到表面中。之前介绍的 LoadSurface 子程序需要先在内存中创建表面,然后再加载位图图像。

纹理的复杂度与表面大致相同,一旦有机会通过代

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值