Unity Lod
2024-09-04 13:41:51
LOD是Level Of Detais 的简称,多细节层次,根据摄像机与物体距离,unity会自动切换模型。一般离摄像机近的时候显示高模,离摄像机远的时候显示低模,借此来提升性能。
如果你在Blender里创建了一组名称以_LOD0,_LOD1,_LOD2等结尾的网格,则将网格导入Unity时自动为您创建具有适当设置的对象的LOD组。 例如,如果网格的基本名称是Player,则可以创建名为Player_LOD0,Player_LOD1和Player_LOD2的文件来生成具有三个LOD级别的对象。
导出FBX,导入到Unity,就可以直接看到LodTest上有LOD Group的组件了。
LOD Fade
可以通过选择具有所有LOD的GameObject并在LOD组内部将Fade Mode设置为Cross Fade并启用Animated Cross-fading来启用LOD Fade。
然后去keijiro的github下拿到CrossFadingLod.shader的文件,做成材质,然后把材质都赋给LodTest下的3个物体,为的是让他们有个渐变的过渡。或者直接在下面复制
Shader "Custom/CrossFadingLod"
{
Properties
{
_Color ("Color", Color) = (1,1,1,1)
_MainTex ("Albedo (RGB)", 2D) = "white" {}
_Glossiness ("Smoothness", Range(0,1)) = 0.5
_Metallic ("Metallic", Range(0,1)) = 0.0
}
SubShader
{
Tags { "RenderType"="Transparent" "Queue"="Transparent" }
LOD 200 CGPROGRAM #pragma multi_compile _ LOD_FADE_CROSSFADE #pragma surface surf Standard alpha:fade
#pragma target 3.0 sampler2D _MainTex; struct Input
{
float2 uv_MainTex;
}; half _Glossiness;
half _Metallic;
fixed4 _Color; void surf(Input IN, inout SurfaceOutputStandard o)
{
// Albedo comes from a texture tinted by color
fixed4 c = tex2D (_MainTex, IN.uv_MainTex) * _Color;
o.Albedo = c.rgb;
// Metallic and smoothness come from slider variables
o.Metallic = _Metallic;
o.Smoothness = _Glossiness;
#ifdef LOD_FADE_CROSSFADE
o.Alpha = c.a * unity_LODFade.x;
#else
o.Alpha = c.a;
#endif
}
ENDCG
}
FallBack "Transparent/Diffuse"
}
关于Lod的链接:https://docs.unity3d.com/Manual/class-LODGroup.html
最新文章
- MySQL笔记---视图,存储过程, 触发器的使用入门
- android Menu
- MyEclipse 不能编译Java类到Classes文件夹
- VC 实现文件与应用程序关联(转载)
- MySQL 存储php中json_encode格式中文问题及解决
- Javascript Date Format
- nutch 大量网站
- 数据可视化的优秀入门书籍有哪些,D3.js 学习资源汇总
- WCF与Web API 区别
- 详解Centos默认磁盘分区
- ext组件的查询方式
- Spock - Document -05 - Extensions
- Pycharm去掉项目所有 # 注释
- 覆盖的面积 HDU - 1255 (扫描线, 面积交)
- CentOS6.8下Jenkins+maven+tomcat+git+shell自动构建、部署web应用环境的搭建
- python迭代器概念与应用
- centos7安装LNMP与Laravel遇到的一些小问题
- css 给inline和inline-block元素设置margin和padding
- Odoo创建基础模块和相关内容
- 数组比较大小的几种方法及math是方法