3

在我的统一项目中,我有一把枪。当我射击时,从枪管中射出一颗子弹(带有红色轨迹)。我注意到,小路是深红色的,有时是浅红色的,我不知道为什么......

我该怎么做才能喜欢这张图片?(图片中的这个游戏叫做使用unity创建的superhot)

明亮的子弹轨迹 三角形或方形轨迹

最后一张图,子弹的轨迹是正方形或三角形……

4

1 回答 1

3

这是一种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) 将材质应用到轨迹渲染器。

于 2015-05-20T07:19:48.290 回答