下载此文档

GameMaker高级混合模式运行原理.doc


文档分类:汽车/机械/制造 | 页数:约2页 举报非法文档有奖
1/2
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/2 下载此文档
文档列表 文档介绍
混合模式相信大家都使用过bm_add,bm_normal这种经典混合方式,而高级混合模式draw_set_blend_mode_ext对于一个刚接触的人来说是一个十分抽象的概念,不过一旦你了解他,你会发现他是相当简单的,你甚至可以制作自己特定的混合模式,来达到更高的游戏效果,所以这是进阶游戏制作必备的知识,希望大家和之前一样,一定要掌握~    高级混合模式的例子实际上不少,不过这个函数不同,从游戏例子里基本不能完全看明白他是怎么工作的,而且最重要的是,在gm自带的help里,几乎对使用细节完全没有任何描述,以下我们就来解析一下这个函数(文中公式图载自gmlscripts,如果有其他疑问,这里也是个不错的去处哦)    在高级混合模式和普通不同,他拥有2个参数,第一个你在混合模式下正在使用的绘制命令绘制出的图形(如draw_sprite),而第二个则是在你现在所绘制图形之前原本就拥有的图形,如表面,游戏背景或者是在使用混合模式之前同样坐标下绘制的精灵……等等,并且混合的时候,通道RGB颜色值并不是0~255来表示,而是0~1哦(也就是颜色所占的分量)。    在中文帮助里说过这样一句话(这里不去管帮助里翻译是否通顺,你能理解就行)“正常的混色模式设置源地混合bm_src_alpha和目的地混合bm_inv_src_alpha”。意思则为:利用这组函数组成的GML:draw_set_blend_mode_ext(bm_src_alpha,bm_inv_src_alpha);你所得到的结果,就和普通并没使用任何混合模式的结果一模一样,这时,我们就从这里入手,首先来理解一下所使用的这2个参数:bm_src_alpha:混合因素是(As,As,As,As). bm_inv_src_alpha:混合因素是(1–As,1–As,1–As,1–As).     这句话听起来相当抽象,来详细说明一下吧(尽量理解):我们以一个像素为单位,来解析每个图片,每一个像素所经历的混合过程:bm_src_alpha如上所写,混合因素是4个As,这4个As的参数分别代表的是(R,G,B,A)即图像的红、绿、蓝、通道,现在使用了bm_src_alpha,意义就为将在这4个参数上,分别都乘以一个As,As在这里是什么意思呢,即是在你正在绘制的图形的alpha值,所以乘以As以后,那么就变为了(R*As,G*As,B*As,A*As)。    而第二个参数bm_inv_src_alpha,即为目的像素,我们得打的是正常混合模式,目前就得使用bm_inv_src_alpha参数,inv在这里即是inverse的缩写,(1-As)意思则是得到的相反值,原来是Alpha越大,那么现在就越小,比如1的话,现在得到的话就是1-1=0。    最终,这2个混合加在一起,我们得到的就是想要的结果啦,为了详细的解释出现的结果,你可以看看一下的公式:参数1(源)             参数2(目的)         结果[源红]*[源通]  +  [目红]*[1-源通]  =  新的红色[源蓝]*[源通]  +  [目蓝]*[1-源通]  =  新的蓝色[源绿]*[源通]  +  [目绿]*[1-源通]  =  新的绿色[源通]*[源通]  +  [目通]*[1-源通]  =  新的alpha通道  

GameMaker高级混合模式运行原理 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数2
  • 收藏数0 收藏
  • 顶次数0
  • 上传人drp539603
  • 文件大小49 KB
  • 时间2020-02-17