精华内容
下载资源
问答
  • Automatic LOD.unitypackage

    2020-05-07 11:38:34
    模型的面数过多,在游戏上跑,性能会有较大问题,该插件可对模型面数进行优化模型,使游戏流畅度不受模型面数影响。
  • unity LOD

    2017-11-03 13:47:22
    层次细节(LOD),它是根据物体在游戏画面中所占视图的百分比来调用不同复杂度的模型的。简单而言,就是当一个物体距离摄像机比较远的时候使用低模,当物体距离摄像机比较近的时候使用高模。这是一种优化游戏渲染...

    层次细节(LOD),它是根据物体在游戏画面中所占视图的百分比来调用不同复杂度的模型的。简单而言,就是当一个物体距离摄像机比较远的时候使用低模,当物体距离摄像机比较近的时候使用高模。这是一种优化游戏渲染效率的常用方法,缺点是占用大量内存。使用这个技术,一般是在解决运行时流畅度的问题,采用的是空间换时间的方式。

           下面我们分步骤来构造一个最简单的LOD模型示例:

    步骤1:准备3组模型,高精度模型,中精度模型,和低精度模型,并按照复杂程度自高向低的为模型命名,如“模型名称LODO0”、“模型名称LOD1”等,最后的数字序号越低,表示复杂程度越高。如图所示:

    步骤2:定义一个空对象,添加LODGroup组件,如图所示:


    步骤三:分别将刚刚准备好的三种不同精度的模型,拖拽到空对象的LODGroup组件的各个级别上。首先给LOD组件的“LOD 0”(LOD 0 表示摄像机最近距离显示)添加对应的模型。(LOD 0 对应高精度模型,然后拖拽到Add上面即可)如图所示:


    步骤四:在LOD组件添加模型的过程中会弹出如图所示的提示信息,表明要把添加的模型作为LODGroup组件所属对象的子物体,单击"Yes,Reparent"按钮即可。


    步骤五:为使构造的LOD游戏对象显示得更加自然,需要把LOD下的三个子物体进行”对齐“处理。(将其相对于父物体的坐标置为0)如图所示:


    步骤六:在Scenes视图中,拖动摄像机分别近距离与远距离观察模型的变化。

    注:Project Settings中与LOD组件相关参数

         LOD Bias和Maximum LOD Level 
    - 执行unity编辑器菜单:Edit > Project Settings > Quality,会打开Quality Setting窗口 ,找到Other下的参数,如图所示:


    Maximum LOD Level:是最大LOD级别,表示游戏中使用的最高LOD级别。在该级别以上的模型不会被使用,并且在编译时忽略。(这将节省存储空间和内存空间)。

    Bias LOD:LOD偏离 ,LOD级别基于物体在屏幕上的大小。当物体大小在两个LOD级别之间,可以选择使用低细节模型或高细节模型。数值取值范围为0-1,数值越接近0,越偏向于选择低细节模型。大白话描述即是:如果该值小那么,摄像机离物体距离稍微有些变化,不同细节物体即会切换,该值大,那么摄像机需要与物体有很大的距离才会切换。


    展开全文
  • Unity学习-优化_LOD技术

    2019-04-17 20:37:00
    Unity会根据摄像机的远近距离调整模型的显示效果 其中效果是需要我们去提供的 在给物体添加LOD Group组件之后 会出现有4块颜色不同的区域,这里就是告诉我们的层级权重关系 在scene视图下我们可以拖动...

     

    最近项目的需求被策划那边卡流程了,在大改,没什么事情做

    于是开始自己找点不会的东西来学一下了

    这里会记录我得学习经历,采用费曼学习法来提示自己

     

    LOD

    Unity会根据摄像机的远近距离调整模型的显示效果

    其中效果是需要我们去提供的

     

    在给物体添加LOD Group组件之后  会出现有4块颜色不同的区域,这里就是告诉我们的层级权重关系

    在scene视图下我们可以拖动上面的摄像机小图标可以预览实际效果

    其中分为4个层级

    1:LOD0 100% 权重显示

    2:LOD1 60% 权重显示

    3:LOD2 30%权重显示

    4:这是看不到的位置,做剔除处理

    这上面的30% 60% 100%不是一个具体参数,只是在告诉我们这个物体的距离和显示关系。越小越看不到

    点击其中一个LOD

    可以增加renderers,这里的检索范围是Hierachy里面的物体,也就是被创建出来的物体,而且只会检索带MeshRender组件的物体

    我们在每一个阶段放一个CUBE,位置相同,颜色不同以作区分,因为在实际的用处中,这里会替换成实际的模型 ,3个显示等级

    对应【1种物体的3种规格模型】,没一种规格的模型顶点,贴图都会做不同的精度设置 达到我们优化的目的

    这里我们用3种颜色代替3种精度达到我们想要的效果

    拖动摄像机,即可预览实际效果

     首先设置3种显示效果

    1.创建3个CUBE

    2.新建3个材质球,达到我们自定义CUBE颜色的目的

    3.将材质球赋给各个CUBE

    如图

    cube1:

    cube2:

     

    cube3:

     

     

     

     

     

     当实际的摄像机和物体的距离在LOD1的阶段时显示为红色

     

    在距离达到LOD1位置的生活,显示为黑色

    LOD2的生活 显示为绿色

     

    到这里,我们就可以从逻辑上面达到可以根据摄像机的距离,来控制物体的显示效果了

    接下来就可以和美术沟通,如果对应实际需求了。

    这样做有一个弊端,每个游戏物体都需要对应3套精度的模型,在效率上会增加,但是优化的效果不错。

    而且在场景比较简单的情况下,实用LOD本身会占用一部分的开销,如果一个简单的场景,本身的开销并不大

    实用LOD的开销甚至比优化掉的开销还打,就会得不偿失了。

    至于具体决定使不使用就看小伙伴们的项目组啦~

     

    转载于:https://www.cnblogs.com/leixuan111/p/10726022.html

    展开全文
  • Unity LOD技术(lod of detail) LOD Group 简述 根据摄像机远近选择不同的模型显示 是大场景显示优化技术 LOD Group 主要的控制组件 操作与图例 添加lod goup之后就可以为不同的lod级别设置不同的要显示的物体了...

    Unity LOD技术(lod of detail) LOD Group

    简述

    • 根据摄像机远近选择不同的模型显示
    • 是大场景显示优化技术

    LOD Group

    • 主要的控制组件
    • Fade Mode可以控制不同lod级别的显示转换动画,渐变

    操作与图例

    • 添加lod goup之后就可以为不同的lod级别设置不同的要显示的物体了
    • Add按钮,为某一个lod组件添加物体
    • 拖动相机图标可以预览不同lod级别的显示情况
      在这里插入图片描述
      在这里插入图片描述
    展开全文
  • Unity LOD Group

    2020-01-22 18:18:23
    文章目录概述LOD Group 选择条预览 LOD 切换Renderers for LOD MeshesLOD切换Fade Transition WidthWorking with Speed Tree modeAPI 概述 当绘制对象时,单位像素绘制的三角形数量越多,效率就越低。因此我们希望在...

    概述

    当绘制对象时,单位像素绘制的三角形数量越多,效率就越低。因此我们希望在保证精度的前提下渲染尽量少的三角形数量,LOD可以解决这个问题。

    LOD(Level of Detail),根据对象距离摄像机的距离,使用合适的渲染数据(Renderer,Mesh,Material)来对对象进行渲染。典型的,一个角色,当距离摄像机特别近时,我们希望展现更多的细节,比如布料纹理,花纹。但是当距离摄像机特别远时,即使渲染了这些细节,屏幕上也不一定能看到,因为这些细节可能比一个像素还要小,这些渲染就没有效果了。同时,近处栩栩如生的细节,到一定距离后,会产生像素抖动,例如衣服上耀眼的金线,在远处由于误差,可以一会渲染,一会不渲染,效果就是一些杂乱的亮点在闪烁,显得很脏。所以无论是为了降低渲染负载,还是降低像素抖动,当对象离我们较远时,都应该用简化的Mesh,简单的材质进行渲染。这就是LOD的作用。

    题外话,其实对于其它部分,比如动画播放,AI更新,也是适用该概念的,远处的东西执行简化的逻辑。

    在Unity中,使用 LOD Group 组件用来管理对象细节等级(Level of Detail)。

    控制LOD切换

    LOD选择条,选择LOD Levels,进行编辑,以及查看效果。

    Load Bias质量设置信息。图中的信息表示当前设置为2.0,只要设置为1以外的值,都会出现该提示。在Editor>ProjectSettings>Quality>Other>LOD Bias进行设置。该值用来定义摄像机距离对象多远时,开始执行LOD逻辑。

    Fade Transition Width,定义淡入淡出距离。当不选择Animate Cross-fading时,选择Culled前面的LOD,该参数会出现。主要是解决2个问题:浮点抖动,即由于浮点误差,摄像机和对象都不动时,在可见距离判断上不精确,结算结果一会可见,一会不可见,对象会闪烁。二是如果该判断范围太小,则相对距离在很小的范围内变化时,也会比较频繁地在可见,不可见之间切换,该width实际上定义了一个缓冲区来避免该现响。

    该LOD级别进行渲染的Renderer,可以有多个。

    此外,在该组件底部还有2个按钮

    Recalculate Bounds:当添加进新的LOD Mesh Renderer 时,重新计算 Bounding Volume(包围体)。

    Recalculate Lightmap Scale:当LOD包围体更新后,重新计算对象的所有的Mesh Renderers的 lightmap scale 属性。

    LOD Group 选择条

    LOD Group Selection Bar 用带颜色的框来表示选中的LOD。

    LOD框内的百分数,是该LOD激活的阈值,该阈值是对象在屏幕空间中的高度与屏幕总高度的比值。例如,如果LOD1的threshold被设置成了50%,则当拉远摄像机,到该对象在视口中的高度小于视口高度的一半时,显示该LOD。

    A:LOD预览的播放指示器。可以拖动摄像机图标来在LOD之间切换。在其底部显示了当前的百分比。

    B:点击level框选中一个LOD,选中后,可以编辑两侧的框线来编辑其切换区域值,以及编辑显示用的渲染器(Renderers)。

    C:在LOD框内,点击鼠标右键,会弹出菜单,可以删除该LOD,活在在LOD前插入新的LOD。

    D:Level调整控制。拖动框的边线来改变LOD等级的百分比。

    注意:如果 LOD Bias 的值不是1,则进行LOD切换时的摄像机位置可能不是对象在屏幕中高度比时的位置,所以会显示警告。

    预览 LOD 切换

    当在Scene视口中选中一个对象,并用滚轮移动摄像机,或者直接在LOD Group 组件上拖动摄像机图标,可以看到距离多远时进行LOD切换。

    当切换LOD时,会渲染对象当前LOD的包围盒,以及当前LOD文字。

    Renderers for LOD Meshes

    选中一个LOD后,可以编辑他的渲染模型。

    Renderers 是该LOD要进行渲染的Mesh,通常是挂载了LOD Group组件的对象的子对象。

    点击Add按钮添,会弹出窗口,列表中是当前场景的所有对象,可以选择一个作为该LOD渲染的Mesh,也可以直接从Hierarchy窗口中直接拖动一个对象上去来添加,完成后该按钮变成一个Mesh预览,并显示“-”按钮来删除。同时后面会显示Add按钮。

    如果添加的对象,不是该对象的子对象,Unity会提示将其编程子对象。

    LOD切换

    游戏过程中,我们不想让玩家明显地感觉到切换的过程,因此要实现一种平滑地切换。

    当切换时,Unity会同时渲染当前和下个LOD地Mesh,并分别淡入和淡出。

    Cross-fading 是同一时刻,用0-1地权重,渲染2个等级地技术。

    Unity实现了2种方式地切换,混色和半透明。

    对于最后一个LOD,没有cross-fading,仅仅是淡出,后面没东西淡入了:)

    设置平滑切换:

    1. Fade Mode 选择 Cross Fade。

    注意,如果使用了Speed Tree,请使用 Speed Tree 模式

    1. 默认地,Animate Cross-fading 是勾选的,意思是Unity会按照时间来执行淡入淡出。如果想要自定义根据摄像机位置的切换区域,取消该选项,并设置 Fade Transition Width参数来控制。

    Fade Transition Width

    当模型的高度比例到达下个LOD的阈值时,开始切换LOD,例如如果LOD1的阈值时60%,当高举比例为60%时,立即进行LOD0和LOD1之间的切换,切换会持续一定的时间。

    当勾选 Animate Cross-fading时,该过程是自动的,不需要进行任何设置。每个LOD切换执行同样的过程和时间。

    也可以选择在LOD内定义其切换区域。Animate Cross-fading未选择时,该参数会显示。每个区域开始,并在下个LOD的阈值前结束。该区域定义的是在该LOD时,到达下个LOD差的百分比为多少时,开始执行(相当于提前进行)LOD的切换。

    设置方法:

    1. 取消 Animate Cross-fading 复选框
    2. 选择一个LOD,并调整 Fade Transition Width 的值。

    该值是当前LOD的整个长度的百分比。越大,开始的越早。

    Working with Speed Tree mode

    Speed Tree 的集合体为每个顶点存储了下一个LOD的位置信息,每个顶点知道如何在当前LOD位置和下个LOD位置之间进行插值。导入speed tree构建的模型时,Unity会自动选择Speed Tree mode。

    Unity只需要渲染当前的LOD几何体,并提供一个0-1的值来控制每个顶点逐步的移动到下一个LOD的位置。在LOD切换结束后,就变成下个LOD的几何体了。

    Speed Tree 模式用该 Blend Factor 对顶点位置,在当前Mesh LOD Level和下个Mesh LOD Level之间进行插值。用茶之后几何体进行渲染。

    注意:Speed Tree 模式仅混合2个Mesh LOD levels,即它们都是Mesh Renderer。如果是切换到billboard片LOD级别或完全消失,则执行Cross-fading模式。

    Blend Factors in Shader code

    Unity并没有内建的提供混合两个Mesh的技术。如果需要,则要自己实现。

    Unity会根据对象的屏幕尺寸计算混合因子,并传递给shader,存储在unity_LODFade.x中,y则是LOD Level。根据Fade Mode,在shader中对应LOD_FADE_PERCENTAGE和LOD_FADE_CROSSFADE。

    API

    编程接口

    展开全文
  • Unity LOD Study

    2016-09-11 00:48:24
    Unity LOD StudyBegin LOD : Level Of Detail ,根据物体距离当前渲染摄像机的距离设定不同的level层级,并且根据层级设定当前需要显示的Level模型层级。通过减少远距离的渲染细节,达到减少性能消耗的目的。 As...
  • unity3d lod

    千次阅读 2013-02-26 16:39:23
    //以下是简单lod的核心脚本,主要是功能就是通过距离来判断哪些东西隐藏 哪些东西显示 // *********************************************************************...// (c) Nikko /Unity3dx.com // All Rights rese
  • unityLOD

    2016-12-06 19:14:00
    unityLOD http://www.cnblogs.com/MrZivChu/p/lod.html posted on 2016-12-06 19:14 jiahuafu 阅读(...) 评论(...) 编辑 收藏
  • Unity LOD LODGroup (LOD Bias)

    千次阅读 2015-09-17 15:00:32
    LOD是( Level of Detail)的缩写,表示细节级别。LODGroup 使用这个技术,一般是在解决运行时流畅度的问题,采用的是空间换时间的方式 根据摄像机离对象的远近,切换不同细节级别的对象,达到一种目的:近处的对象...
  • UnityLOD

    2021-04-06 21:56:54
    LOD是Level Of Detais 多层次细节 视角离近时,我们让物体显示精细度高的模型 视角离远时,我们让物体显示精细度低的模型 ...Unity优化——LOD技术 Unity3D游戏开发如何优化性能?—— LOD技术 ...
  • Unity Shader Lod说明

    2019-07-30 10:17:06
    Unity Shader Lod说明 格式 Shader "ShaderName" { SubShader { LOD 100 } SubShader { LOD 200 } SubShader { LOD 400 } } 说明 LOD提供了在不同性能级别的显卡上切换sub...
  • Unity优化 lod技术

    2020-05-23 17:20:32
    Unity优化 lod技术 LOD Group是unity里面的一项插件,他的功能是可以随着摄像机视角的不断远离或靠近来显示设定好的模型。 为什么使用lod: 当场景有许多模型而且都是面数很多的高模,模型数量的增加必然增加引擎的...
  • Unity Shader LOD使用

    2020-11-25 17:22:01
    作用:unity引擎会根据不同的LOD值在使用不同的SubShader Unity选择对应的Subshader会从上往下寻找第一个小于等于LOD值的子着色器。一个着色器中会有一到多个SubShader,但是系统每次只会执行一个子着色器,选择子...
  • InstantOC Dynamic Occlusion Culling LOD 1.5.unitypackage
  • UnityLOD

    2018-04-28 13:23:00
    层次细节(LOD),它是根据物体在游戏画面中所占视图的百分比来调用不同复杂度的模型的。简单而言,就是当一个物体距离摄像机比较远的时候使用低模,当物体距离摄像机比较近的时候使用高模。这是一种优化游戏渲染...
  • Unity Shader LOD

    千次阅读 2016-06-10 17:02:00
    Shader "Custom/_SetShader" { Properties { _Color ("Main Color", Color) = (1,1,1,0.5) _MainTex ("Base (RGB)", 2D) = ... //LOD 必须从上到下必须按照从大到小排列 ,因为外部设置LOD值,会从上到下查询,当LO
  • Unity中的Lod

    2016-12-07 11:37:00
    Unity中的Lod http://blog.csdn.net/bigpaolee/article/details/48521371 LOD是( Level of Detail)的缩写,表示细节级别。 这里注意下,Lodgroup的百分比是这个对象占用视图的百分比...
  • Unity 3D - LOD

    千次阅读 2016-08-01 20:38:19
    Unity 3D - LOD: 转载自 : http://www.narkii.com/club/thread-321290-1.html 说明 : LOD 即 Levels of Detail 的简称 , 意为多细节层次 . LOD技术指根据物体模型的节点在显示环境中所处的位置和重要度 , 可根据...
  • unity shader lod 使用

    千次阅读 2017-05-25 01:50:08
    LOD是 ( Level of Detail ) 的缩写,表示细节级别。Shader LOD - 这个是另外一种控制细节级别的技术 - 在一个 Shader 当中,可以给不同的 SubShader 指定不同的LOD属性,例如: SubShader { Tags{ "RenderType" ...
  • unity中的LOD

    2017-09-14 16:47:31
    LOD,使
  • unityLOD优化技术详解

    千次阅读 2019-01-17 22:13:55
    相信有很多人听到要优化项目时,脑海中就会蹦出LOD这个单词。那么,LOD技术到底是什么呢?怎么去使用呢? 接下来由小生给大家操作一波,看过之后保证会使。 首先,要知道LOD技术的含义: LOD为Levels of Detail的...
  • Unity优化——LOD技术

    千次阅读 2019-02-26 21:40:25
    什么是LOD LOD是Level Of Detais 的简称,多细节层次 在游戏场景中,根据摄像机与模型的距离,...根据摄像机与物体距离,unity会自动切换模型。 使用LOD 先准备几个模型,从高模到低模。没有模型。。。低配版 ...
  • Simple LOD v1.5.unitypackage

    2019-08-23 14:03:03
    SimpleLOD插件1.5经过一些修改,仅代码工程简单清晰,可以对Mesh的面数进行优化,Mesh合并和在游戏中动态去修改模型的面数等等的功能,是优化游戏性能比较好的利器。
  • unityLOD组件

    2017-09-30 15:20:22
    本文转载自http://blog.csdn.net/huutu/article/details/52106468LOD是Level Of Detais 的简称,多细节层次。在游戏场景中,根据摄像机与模型的距离,来决定显示哪一个模型,一般距离近的时候显示高精度多细节模型,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 481
精华内容 192
关键字:

lodunity