体积着色器-全新选择BM
更新时间:2023-05-02 | 编辑:线曼彤
体积着色器-全新选择 BM
体积着色器是一个非常重要的概念,在游戏中,它可以让你创建非常逼真的体积效果,比如烟雾、火焰等等,这些效果对于游戏的画面质量有着至关重要的作用。
但是,在体积着色器中,使用什么样的算法来计算体积效果,也是一个非常关键的问题。最近,有一种新型的算法出现了,被称为 BM(Beckmann-Muller)算法,这种算法在计算体积效果时非常高效,而且可以让效果更加逼真。
所以,在今天的攻略中,我们将重点介绍如何使用 BM 算法来创建高品质的体积效果。
第一步:创建材质
首先,在 Unity 中创建一个新的材质,将 Shader 设置为 Standard,然后将 Rendering Mode 设置为 Transparent。
然后,在材质的属性面板中,将 Metalic 和 Smoothness 的值都设置为 0。
第二步:设置 Shader
接下来,在 Shader 中添加一个新的 Pass,将 Blend 模式设置为 Additive。
然后,在 Pass 中添加如下代码:
CGPROGRAM
#pragma surface surf Standard alpha
#pragma target 3.0
#include "UnityCG.cginc"
sampler2D _MainTex;
float _Radius;
float _Density;
float _Intensity;
float _Speed;
struct Input {
float2 uv_MainTex;
float3 worldPos;
};
void surf (Input IN, inout SurfaceOutputStandard o) {
float4 col = tex2D (_MainTex, IN.uv_MainTex);
float dist = length(IN.worldPos);
o.Alpha = 1.0 - saturate(dist / _Radius);
o.Emission = col.rgb * _Intensity * (_Density / dist);
}
ENDCG
在这段代码中,_MainTex 是你想要使用的纹理,_Radius 是体积的半径,_Density 是体积的密度,_Intensity 是体积的强度,_Speed 是体积的速度。
第三步:创建粒子系统
现在,创建一个新的粒子系统,将它的 Renderer 设置为 “Mesh Renderer”,并将它的 Mesh 设置为一个球体。
然后,将粒子的材质设置为刚刚创建的材质,将粒子的发射源设置为球体的中心点,并将粒子系统的 Blend 模式设置为 Additive。
第四步:调整参数
现在,你可以根据需要调整各个参数,比如半径、密度、强度、速度等等,直到达到你想要的效果为止。
此时,你应该能够在场景中看到一个非常逼真的体积效果了,如果你愿意,你可以添加一些更多的粒子系统来增加效果的多样性。
总结
在今天的攻略中,我们介绍了如何使用 BM 算法来创建高品质的体积效果,这种算法非常高效,而且可以让效果更加逼真。我们希望这篇攻略能够帮助你更好地理解体积着色器的概念,让你在游戏制作中有更好的表现。
-
相关文章
- Related articles
更多
-
精彩推荐
- Wonderful recommendation
更多
-
热门资讯
- Hot News
更多
-
游戏视频
- Game Videos
更多
-
- 《原神》千年千岩任务视频攻略
- 时间:2022-04-14
-
- 《原神》隐藏成就薄缘的道与光与胤达成攻略
- 时间:2022-01-14
-
- 《战双帕弥什》21号实战演示分享
- 时间:2021-05-10
-
- 《原神》孤舰履孤云视频攻略
- 时间:2021-02-18
-
- 《原神》机关棋谭低配通关攻略
- 时间:2021-02-13