如何制作明亮的圆形/圆形轨迹渲染器?

时间:2015-05-20 02:19:23

标签: unity3d trail

在我的团结项目中,我拿到了一把枪。当我开枪时,枪管上的子弹(带有红色痕迹)出来了。我注意到,小径是深红色,有时是浅红色,我不知道为什么......

我该怎么做这个图像? (图像中的这个游戏叫做使用统一创建的superhot)

Bright bullet trails  Triangle or Square-like trail

最后一张图片,子弹的踪迹就像方形或三角形......

1 个答案:

答案 0 :(得分:2)

这是一种volumetric line rendering

您可以在此处找到有关它的参考: https://www.assetstore.unity3d.com/kr/#!/content/29160

通常它需要花费很多,因为它需要在着色器中进行多次渲染。 并且跟踪渲染器是一个低多边形(只是三角形条带),如果你应用这样的假发光着色器,结果就不好了。

Shader "Test/Glow" {
    Properties {
        _Color ("Color", Color) = (1,1,1,1)
    }
    SubShader {
        Tags { "Queue"="Transparent" }
        LOD 200
        ZTest Always
        Cull Off
        Blend One One

        CGPROGRAM
        #pragma surface surf Lambert

        float4 _Color;

        struct Input {
            float3 viewDir;
            float3 worldNormal;
        };

        void surf (Input IN, inout SurfaceOutput o) {
            o.Alpha = _Color.a * pow(abs(dot(normalize(IN.viewDir),
                normalize(IN.worldNormal))),4.0);
            o.Emission = _Color.rgb * o.Alpha;
        }
        ENDCG
    }
    FallBack "Diffuse"
}

(另一个发光着色器:http://qiita.com/edo_m18/items/b5ad2490b73126489c07

我认为模仿这种渲染的最便宜方式是

1)创建或找到Additive Transparent Shader
2)创建浅色纹理(中心为红色,边缘为渐变)
3)将着色器附加到材料上。
4)将材料应用于线索渲染器。