成就中心 DouJin Terraria! 社区服务 统计排行 帮助
  • 5376阅读
  • 7回复

[心得交流]求教高亮特效的做法

发帖
16
信仰
2
蓝点
34
符卡
0
我不知道这个应该叫什么,高光渲染?高亮混合?active?add?
总之,普通图片叠加效果是这样的,有种叠加效果是这样的,然后ZUN神主用这招实现了很多弹幕特效的样子:



有没有哪位大大知道这个是什么原理?是颜色叠加吗?和alpha分量有没有关系?
发帖
661
信仰
0
蓝点
651
符卡
0
只看该作者 沙发  发表于: 2011-09-16
bm_add
发帖
82
信仰
1
蓝点
68
符卡
0
只看该作者 板凳  发表于: 2011-09-17
搭车问这个是怎么做到的?大战争1面的背景。
  • 图片:stage01a.png
  • 图片:stage01e.png
  • 图片:th000.png
发帖
16
信仰
2
蓝点
34
符卡
0
只看该作者 地板  发表于: 2011-09-18
bm_add算是什么游戏引擎用的语句?GM?
反正看起来就是颜色叠加,但是我用D3D就是调不出来,郁闷。。。

回桌子,把第二幅图调成黑色,覆盖到第一幅图上,再三维旋转一下,得到这个样子

感觉有点像吗?
发帖
82
信仰
1
蓝点
68
符卡
0
只看该作者 4楼 发表于: 2011-09-18
回 3楼(SeiweLL) 的帖子
谢谢,不过感觉还是不太像。
D3D实现颜色直接相加的混合模式,应该是SetRenderState,把D3DRS_SRCBLEND设成D3DBLEND_SRCALPHA,把D3DRS_DESTBLEND设成D3DBLEND_ONE。
另外说个题外的东西,昨天无聊我上个回复的素材拖到Google图片搜索里搜,居然找到了处理之前的原版,由此可以启发我们自制这类素材的方法。
  • 图片:conglinzm_551b.jpg
发帖
16
信仰
2
蓝点
34
符卡
0
只看该作者 5楼 发表于: 2011-09-18
感谢桌子,终于调出来了。由于我用的Managed DirectX,写法上不太一样,最后写出来的语句是这样的
DeviceMain.SetRenderState(RenderStates.SourceBlend, (int)Blend.SourceAlpha);
DeviceMain.SetRenderState(RenderStates.DestinationBlend, (int)Blend.One);
尽管看起来还是比较奇怪,但总算是实现效果了。
本来我以为是设置TextureState,然后里面一堆Operation,一堆Argument,无数种组合。。。

另外那两张背景图我本想用D3D显示看看效果的,结果第二幅图不管是D3D还是画图板打开都只能看到这个样子


这究竟是为什么
发帖
82
信仰
1
蓝点
68
符卡
0
只看该作者 6楼 发表于: 2011-09-18
回 5楼(SeiweLL) 的帖子
你这个图是原图去掉alpha通道的样子。
我按照你的思路作了点修改,先把原图的alpha变成alpha×(1-灰度),颜色都变成黑色,再做一下平移(循环拼接),就变成了附件那样,然后再盖在另一张图上,那块亮亮的地方就出来了。虽然和原作不像,不过效果也不难看。
  • 图片:out.png
发帖
13
信仰
0
蓝点
5
符卡
0
只看该作者 7楼 发表于: 2011-11-14
原来是直接叠加呃……学习了
Your brain has two parts:the left & the right.Your left brain has nothing right, and your right brain has nothing left.
诶?

Me.SetState("填坑");
描述
快速回复

您目前还是游客,请 登录注册
如果您在写长篇帖子又不马上发表,建议存为草稿
认证码: