8.3 初步理解 Texture Alpha

引入

(1)上篇中学习了Alpha混合技术,其中涉及到顶点Alpha和材质Alpha两种。但是Alpha还有一种来源就是纹理(Texture)。另外,通过借助纹理的Alpha值,可以实现纹理的透明效果,这让游戏世界变得更有趣、更逼真!
(2)然而,这里虽然仍是学习Alpha混合,但是涉及到的是纹理Alpha的混合方式,这使得Alpha混合变得不再单纯,并且更加复杂!因为纹理就是一个尤其复杂的主题,想想最多可以设置8个纹理层就能感受的到,仅纹理的渲染状态的选择就够让我们手忙脚乱的,可选的枚举值大概有二十个。所以这里我们先初步了解纹理Alpha混合的使用,更复杂的内容将在后续文章中逐步展开。

Texture Alpha混合中像素Alpha值的形成

当对物体表面使用了纹理之后,像素Alpha值就是纹理Alpha混合之后的值,所以这又取决于纹理的Alpha混合方法,纹理Alpha混合方法决定了纹理Alpha混合之后的Alpha值是取自材料还是取自纹理,或者取自两者的某种运算。
像素的Alpha值的具体计算过程是这样的,首先得到顶点Alpha值,顶点Alpha值可能是直接指定的,也可能是光照计算得到的,然后根据着色模式对顶点Alpha值进行插值,得到的结果再根据纹理Alpha混合方法和纹理采样得到的Alpha值进行指定的运算,得到最终每个像素的Alpha的值。其中,纹理的混合方法与之前纹理颜色的混合方法基本相同,区别是纹理Alpha混合的结果是像素的Alpha值,纹理颜色混合的结果是像素颜色的RGB值。

“纹理阶段混合状态”

纹理映射本质上是从纹理中获取颜色值,然后应用到物体的表面,多层纹理映射本质上就是混合多层纹理的颜色,然后应用到物体的表面。为了处理上的方便,Direct3D将颜色的RGB通道和Alpha通道分别进行处理,具体的操作方法通过纹理阶段混合状态进行设置。也即纹理阶段混合状态用于指定当前纹理阶段(总共有八个阶段,即Stage0到Stage7)纹理颜色值和Alpha值的混合方法。
由于纹理混合对RGB颜色值混合和Alpha值混合是分别处理的,所以本节只讨论纹理的Alpha值混合,RGB颜色值混合在之后的文章中介绍,并且本节中只涉及1层(即第0层)纹理,所以相对好理解的多!
我们分几个步骤来介绍“纹理阶段混合状态”的设置方法:

(1)LPDIRECT3DDEVICE9::SetTextureStageState()函数的使用
(2)设置纹理渲染状态
(3)设置纹理渲染状态值
(4)“纹理混合状态”与纹理的Alpha混合

(1)LPDIRECT3DDEVICE9::SetTextureStageState()函数的使用
纹理混合状态由LPDIRECT3DDEVICE9::SetTextureStageState()设置,该函数的声明如下:

HRESULT SetTextureStageState() {
    DWORD Stage,
    D3DTEXTURESTAGESTATETYPE Type,
    DWORD Value
};

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
3D8S_Alpha_光立方控制软件 绝对是做光立方的好帮手 希望对大家有用 注意问题: 双击 :3D8S_alpha.exe 打开 光立方上位机软件, 选择COM口---然后选择 57600---点击连接(CONNECT)---选择旁边的任意动画就可以动起来了。 上位机软件运行不起来的 提示错误。请安装微软组件:Net Framework 4 Client Profile 新版上位机程序,使用强大的 Microsoft Visual Studio 2010 基于 .Net Framework 4.0 编写。 如果无法运行,需要下载 .Net Framework 4 Client Profile 下载地址:http://www.microsoft.com/downloads/zh-cn/details.aspx?FamilyID=e5ad0459-cbcc-4b4f-97b6-fb17111cf544 电脑控制光立方三部。 1 光立方连接电脑USB口 2 安装USB驱动 3 打开上位机软件。 制作相关的文章 焊接过程,LED搭建方式,原理图,C程序: 3D8S 8x8x8 LED 光立方---介绍篇 3D8S 8x8x8 LED 光立方--- 硬件篇 (原理图开源) 3D8S 8x8x8 LED 光立方--- 程序篇 (开源C程序) 3D8S 8x8x8 LED 光立方---电路板焊接篇 3D8S 8x8x8 LED 光立方--- LED 搭接指南篇 ARDUINO 串口通讯玩转 8*8*8 光立方 3D8-S- 开源源程序 3D8S 8x8x8 LED 光立方--- 写3D8程序调试工具篇 论坛光立方专区:http://bbs.syyyd.com/forum.php?mod=forumdisplay&fid=113 (资料发布在论坛 为了更新方便,也更自由 方便广大爱好者) 焊接教程,一些制作相关教程等等,更新软件,都会发到这里。 个人焊接好的作品 ,也可以在这里展示。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值