设为首页  
联系我们  
加入收藏  
网页制作 冲浪宝典 图形图像 操作系统 软件教学 编程开发 认证考试 安全技术 站长专区 文学驿站 娱乐天地 游戏天地 办公软件
文章搜索
您的位置: 首页 >> 文章首页 >> 编程开发 >> 游戏开发 >> 几种常用的像素混合方法
精品推荐
游戏开发点击TOP10
·DirectX5.0最新游戏编程指南 DirectDraw教程篇 二、第一个DirectDraw实例
·用Excel编写小游戏
·五子棋的原代码
·游戏开发方面相关的电子书下载
·游戏文件系统的解决方案
·基于LOD的大规模真实感室外场景实时渲染技术的初步研究 part II&III
·用MFC构造DirectX应用框架
·游戏开发开门
·《Windows游戏编程大师技巧》(第二版)第11章
·DirectX8.1的DirectDraw7研究手记(三)
编程开发点击TOP10
·数字小键盘指法练习
·ASP.NET 程序中常用的三十三种代码
·用C语言编通讯录程序(初学者级别的)
·我写的Java学生成绩管理系统源代码
·CHK文件恢复工具
·Modem 常用AT指令集
·java笔试题
·异常java.sql.SQLException: Io exception:The Network Adapter could not establish connection
·单片机模拟I2C总线及24C02(I2C EEPROM)读写实例(源代码)
·C++经典电子书下载
精选专题

几种常用的像素混合方法

作者: 来源:网络文章 时间:2005-12-17 23:10:35

几种常用的像素混合方法(1) ● 樊一鹏


前两天为大家介绍了处理透明光影效果的 Alpha-Blending 技术,今次我将再为大家介绍其它几种常用的像素混合方法,这些方法一般在游戏中被用来处理光影效果。

『Alpha-Blending』

前次已经说了,所谓 Alpha-Blending,其实就是按照“Alpha”混合向量的值来混合源像素和目标像素,一般用来处理半透明效果。

『Additive-Blending』

至于 Additive-Blending,就是用饱和相加的方法来混合源像素和目标像素的颜色分量。一般用来处理光源,比如说爆炸的火光等等。下面就来看看两个像素间的 Additive-Blending 过程。

第一步,先把源像素和目标像素的 RGB 三个颜色分量分离,然后把对应颜色分量相加,如果某分量的结果超出了该分量的最大值,则对该分量作饱和运算(即如果结果超出了允许的最大值则取结果为允许的最大值),最后把三个颜色分量重新合成为一个像素输出。

在这个过程中,为了分离像素中的 RGB 三个颜色分量,我们一般会使用掩膜的方法。至于具体的三个掩膜值:RMask、GMask 和 BMask,可以从 DirectDraw 中的 DDPixelFormat 返回得到(当然,你也可以根据自己的需要做各种灵活处理)。

在下面给出的说明性例程中,我们假设 RMask、GMask 和 BMask 已经存放的是 RGB 三个颜色分量的位掩膜值,三个颜色分量的最大值为 255,而 source 和 dest 是指向源像素和目标像素的指针。

    unsigned long tdest = 0;
    unsigned long t;

    t = (*source & RMask) + (*dest & RMask);
    if(t > RMask) t = RMask;
    tdest &brVBar= t;

    t = (*source & GMask) + (*dest & GMask);
    if(t > GMask) t = GMask;
    tdest ¦= t;

    t = (*source & BMask) + (*dest & BMask);
    if(t > BMask) t = BMask;
    tdest ¦= t;

    *dest = (unsigned short)tdest;
这段代码使用了一个小技巧来处理饱和运算,即结果用位掩膜值来衡量是否要作饱和运算处理。

『Subtractive-Blending』

同 Additive-Blending 正好相反,Subtractive-Blending 就是用饱和相减的方法来混合源像素和目标像素的颜色分量。FreeMind 很喜欢用它来处理阴影,用这种方法处理出来的阴影效果能够很自然地同环境相融合。

至于 Subtractive-Blending 的处理过程,同 Additive-Blending 很类似,我就不罗嗦了。唯一要注意的是当用目标像素的颜色分量减去源像素的颜色分量时,如果结果小于允许的最小值则结果取为允许的最小值(通常为零)。

『其它混合方法』

玩过 Photoshop 的人都知道,其实像素间的混合方法还有很多种,比如 multiplicative,divisive,maximum,minimum 等等,但这些方法运算相对较慢,而且游戏中对这些效果的要求也比较少,所以在实际的游戏中使用得很少。

共2页 9 7 [1] [28 :>

几种常用的像素混合方法 相关文章:
几种常用的像素混合方法 相关软件:
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
转载请注明来源:http://www.xgdown.com