在我的团结项目中,我拿到了一把枪。当我开枪时,枪管上的子弹(带有红色痕迹)出来了。我注意到,小径是深红色,有时是浅红色,我不知道为什么......
我该怎么做这个图像? (图像中的这个游戏叫做使用统一创建的superhot)
最后一张图片,子弹的踪迹就像方形或三角形......
答案 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)将材料应用于线索渲染器。