gamebryo --空间扭曲效果

看了一下 金属战争这个demo.里面有好多的特殊效果啊。

甚至貌似还用到了ds。很牛叉。看了一天也没看完一个demo.只能说这个demo实在是太多东西了。

集中火力看了一下他的扭曲怎么实现的。

所有带有扭曲的物体有个标识。用的标识的物体会被渲染到一个 shimmer buffer 这个buffer和屏幕一样大。用来作为mask查询时候用。

每个像素的 r 被用来做x偏移。g用来做y偏移. b他用来作为一个系数。衰减亮度。 如果rg 的值和半黄一样。也就是 rg - 0.5 == 0

那么他认为不需要偏移。直接取原色。某则把rg变化到 -1 -1 之间做偏移。 然后在确认偏移后的颜色依然不是半黄。那么这个点的采样就变成了偏移后的点.做法这样。但是为啥就会有扭曲效果了。。还没研究清楚。。他这个是用到火。可能火本来就带有扭曲属性可能很正常。那要全是一个色的东西不是就绝对不会扭曲??

 

float2 vNewTexCoord = vTexCoord;
    float4 vHeatBright = tex2D(g_samSrcAux, vTexCoord);
    float2 vHeat = vHeatBright.rg;
    if (any(vHeat - 0.5))
    {
        vHeat = vHeat * 2 - 1;
        float2 vOffsetTexCoord = vTexCoord + vHeat.xy
            * g_fPerturbationMultiplier;

        if (any(tex2D(g_samSrcAux, vOffsetTexCoord).rg - 0.5))
        {
            vNewTexCoord = vOffsetTexCoord;
        }
    }

    return tex2D(g_samSrcColor, vNewTexCoord) * (1
        + g_fShimmerBrightness * vHeatBright.b);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值