码迷,mamicode.com
首页 > 其他好文 > 详细

ActionScript3游戏中的图像编程(连载三十一)

时间:2014-08-10 18:40:30      阅读:280      评论:0      收藏:0      [点我收藏+]

标签:actionscript 3.0   flash   图像处理   游戏   编程   

2.2.4 Photoshop转Flash的投影角度换算


      继续往下看,Photoshop不透明度选项下面是投影角度,默认值是120°,而Flash里角度是45°,两者相差将近90°,投影角度却相近,为什么?让我们把Flash的投影滤镜也设置成120°。(图 2.20)
 

bubuko.com,布布扣

bubuko.com,布布扣

图 2.20 角度值等于120的Flash投影


      投影跑左边去了,x方向与Photoshop里的投影位置截然相反。经观察,Flash投影的角度与ActionScript的坐标系完全一致,它等于当前方向与水平线的夹角,顺时针为正,逆时针为负。


      我并非单从这两个角度的表现就得出了结论, 360度我都试验过了之后才归纳出来的,不过我不太可能把360个角度的结果都贴出来,否则100页都贴不完。读者可以自行尝试一番。


      而Photoshop的角度逻辑稍显复杂,它不直接表示投影的位置,而是光照的角度,而且坐标系跟ActionScript的相反,逆时针为正,顺时针为负。而投影将落在与光照方向相反的位置上(根据光的直线传播原理得出,图 2.21),所以,投影方向与水平线的夹角等于(投影角度* (-1) + 180度 + 360度) % 360°。(+360°再取余的目的是保证角度数值在0~360的区间内)
 

bubuko.com,布布扣

图 2.21 光的直线传播与投影的形成原理


      将120°代入上式,求得最终角度=(-120+180+360)%360=60°。


      所以Flash应该将角度设置为60°才能保证效果与Photoshop的相吻合。(图 2.22)
 

bubuko.com,布布扣

bubuko.com,布布扣

图 2.22 角度值等于60的Flash投影


 

      可见它们的实际角度仅相差15度,但这一微妙的差别,对美观的影响也不小,调成60度以后,由于投影和文字在y方向上的差距拉大了,因此视觉上会显得文字更凸出,立体感更强。


      由于Photoshop有多种样式用于创建立体效果(比如投影,斜面浮雕,光泽等),它们最终输出的颜色均与灯光方向有关,所以Photoshop投影样式设置的右侧还有个“使用全局光”的复选框。当该框被勾上,这些样式就会共用同一个角度的光照(随便修改其中一个,其它的都会自动跟着调整过来),从而确保多个样式之间有更好的融合度。

ActionScript3游戏中的图像编程(连载三十一),布布扣,bubuko.com

ActionScript3游戏中的图像编程(连载三十一)

标签:actionscript 3.0   flash   图像处理   游戏   编程   

原文地址:http://blog.csdn.net/iloveas2014/article/details/38471357

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!