{
  "schemaVersion": "0.11.0",
  "canonical": "https://www.pystone.net/notes/lod-tools-survey/",
  "atlas": "https://www.pystone.net/?node=lod-tools-survey#knowledge-atlas",
  "markdown": "https://www.pystone.net/notes/lod-tools-survey.md",
  "context": "https://www.pystone.net/notes/lod-tools-survey.context.json",
  "knowledgeVersion": "224c990773de.5fa8af6e39fa",
  "build": {
    "siteCommit": "224c990773de166d23a886306577dd90379529ce",
    "notesCommit": "5fa8af6e39fa3891d1b9b4832bfa6c4e0ecaaf0a",
    "builtAt": "1970-01-01T00:00:00.000Z",
    "version": "224c990773de.5fa8af6e39fa"
  },
  "id": "note:lod-tools-survey",
  "slug": "lod-tools-survey",
  "title": "LOD工具调研",
  "type": "note",
  "visibility": "public",
  "idStability": "rename-stable",
  "author": {
    "name": "Perrin Yong",
    "profile": "https://www.pystone.net/profile/"
  },
  "publisher": {
    "name": "Perrin Yong",
    "profile": "https://www.pystone.net/profile/"
  },
  "aliases": [],
  "summary": "LOD工具调研",
  "contentRole": "unspecified",
  "isMoc": false,
  "mocRecognition": "none",
  "generated": false,
  "attribution": "unspecified",
  "domain": "10-计算机、信息技术与工程",
  "tags": [],
  "mocs": [],
  "contentHash": "f393f02ce08ab129bfbbff2938110700a0de52b5304d6fa67e54dbbcabf6e65e",
  "assets": [
    {
      "reference": "assets/1616130612689.png",
      "url": "/media/e5f80c13a0e55415dc05.png",
      "mediaType": "image/png",
      "contentHash": "e5f80c13a0e55415dc0515dc88864f7ae94c15b5befd5e88f35ff9c9f50570c6",
      "byteLength": 5430,
      "width": 205,
      "height": 124
    },
    {
      "reference": "assets/1616130617603.png",
      "url": "/media/b522ce3f2648de370bea.png",
      "mediaType": "image/png",
      "contentHash": "b522ce3f2648de370beac1b8431798efc691ff8176e46af8dc3accd585e54257",
      "byteLength": 26765,
      "width": 409,
      "height": 184
    },
    {
      "reference": "assets/1616130640961.png",
      "url": "/media/15a126ce1dba7f1296bb.png",
      "mediaType": "image/png",
      "contentHash": "15a126ce1dba7f1296bb63c0c9dc08b66be77c63987de357798540e5dbc3a80a",
      "byteLength": 7105,
      "width": 197,
      "height": 113
    },
    {
      "reference": "assets/1616130651149.png",
      "url": "/media/588990a823461e71e453.png",
      "mediaType": "image/png",
      "contentHash": "588990a823461e71e4530acdc978433de2f7d0afbbd7add51dca16ddb7272a57",
      "byteLength": 26384,
      "width": 436,
      "height": 338
    },
    {
      "reference": "assets/1616131033247.png",
      "url": "/media/795f2746fc0b3706276e.png",
      "mediaType": "image/png",
      "contentHash": "795f2746fc0b3706276e7ce060da94ea199d52becc46496e49bd40146eac043b",
      "byteLength": 1796,
      "width": 217,
      "height": 66
    }
  ],
  "headings": [
    {
      "depth": 1,
      "text": "LOD工具调研",
      "anchor": "lod工具调研",
      "citation": "https://www.pystone.net/notes/lod-tools-survey/#lod%E5%B7%A5%E5%85%B7%E8%B0%83%E7%A0%94"
    },
    {
      "depth": 2,
      "text": "LOD Introduction",
      "anchor": "lod-introduction",
      "citation": "https://www.pystone.net/notes/lod-tools-survey/#lod-introduction"
    },
    {
      "depth": 3,
      "text": "generalized",
      "anchor": "generalized",
      "citation": "https://www.pystone.net/notes/lod-tools-survey/#generalized"
    },
    {
      "depth": 3,
      "text": "Methods",
      "anchor": "methods",
      "citation": "https://www.pystone.net/notes/lod-tools-survey/#methods"
    },
    {
      "depth": 4,
      "text": "Discrete Levels of Detail (DLOD)",
      "anchor": "discrete-levels-of-detail-dlod",
      "citation": "https://www.pystone.net/notes/lod-tools-survey/#discrete-levels-of-detail-dlod"
    },
    {
      "depth": 4,
      "text": "Continuous Levels of Detail (CLOD)",
      "anchor": "continuous-levels-of-detail-clod",
      "citation": "https://www.pystone.net/notes/lod-tools-survey/#continuous-levels-of-detail-clod"
    },
    {
      "depth": 4,
      "text": "HLOD (Hierarchical LOD)",
      "anchor": "hlod-hierarchical-lod",
      "citation": "https://www.pystone.net/notes/lod-tools-survey/#hlod-hierarchical-lod"
    },
    {
      "depth": 3,
      "text": "Applications",
      "anchor": "applications",
      "citation": "https://www.pystone.net/notes/lod-tools-survey/#applications"
    },
    {
      "depth": 2,
      "text": "LOD in Unity",
      "anchor": "lod-in-unity",
      "citation": "https://www.pystone.net/notes/lod-tools-survey/#lod-in-unity"
    },
    {
      "depth": 3,
      "text": "LOD for shaders",
      "anchor": "lod-for-shaders",
      "citation": "https://www.pystone.net/notes/lod-tools-survey/#lod-for-shaders"
    },
    {
      "depth": 3,
      "text": "LOD for meshes",
      "anchor": "lod-for-meshes",
      "citation": "https://www.pystone.net/notes/lod-tools-survey/#lod-for-meshes"
    },
    {
      "depth": 4,
      "text": "workflow",
      "anchor": "workflow",
      "citation": "https://www.pystone.net/notes/lod-tools-survey/#workflow"
    },
    {
      "depth": 5,
      "text": "带有LOD的模型",
      "anchor": "带有lod的模型",
      "citation": "https://www.pystone.net/notes/lod-tools-survey/#%E5%B8%A6%E6%9C%89lod%E7%9A%84%E6%A8%A1%E5%9E%8B"
    },
    {
      "depth": 5,
      "text": "不带LOD的模型",
      "anchor": "不带lod的模型",
      "citation": "https://www.pystone.net/notes/lod-tools-survey/#%E4%B8%8D%E5%B8%A6lod%E7%9A%84%E6%A8%A1%E5%9E%8B"
    },
    {
      "depth": 4,
      "text": "Project-wide LOD settings",
      "anchor": "project-wide-lod-settings",
      "citation": "https://www.pystone.net/notes/lod-tools-survey/#project-wide-lod-settings"
    },
    {
      "depth": 4,
      "text": "Smooth transitions between LOD levels",
      "anchor": "smooth-transitions-between-lod-levels",
      "citation": "https://www.pystone.net/notes/lod-tools-survey/#smooth-transitions-between-lod-levels"
    },
    {
      "depth": 2,
      "text": "LOD Tools",
      "anchor": "lod-tools",
      "citation": "https://www.pystone.net/notes/lod-tools-survey/#lod-tools"
    },
    {
      "depth": 3,
      "text": "overview",
      "anchor": "overview",
      "citation": "https://www.pystone.net/notes/lod-tools-survey/#overview"
    },
    {
      "depth": 3,
      "text": "Unity AutoLOD",
      "anchor": "unity-autolod",
      "citation": "https://www.pystone.net/notes/lod-tools-survey/#unity-autolod"
    },
    {
      "depth": 3,
      "text": "发现的问题",
      "anchor": "发现的问题",
      "citation": "https://www.pystone.net/notes/lod-tools-survey/#%E5%8F%91%E7%8E%B0%E7%9A%84%E9%97%AE%E9%A2%98"
    },
    {
      "depth": 2,
      "text": "Ref",
      "anchor": "ref",
      "citation": "https://www.pystone.net/notes/lod-tools-survey/#ref"
    }
  ],
  "claims": [],
  "outgoing": [],
  "incoming": [
    {
      "id": "note:game-graphics-and-runtime",
      "title": "游戏图形与运行时",
      "url": "https://www.pystone.net/notes/game-graphics-and-runtime/",
      "atlas": "https://www.pystone.net/?node=game-graphics-and-runtime#knowledge-atlas",
      "label": "游戏图形与运行时",
      "origin": "explicit",
      "humanReviewed": true,
      "context": "渲染基础中的“LOD工具调研”导航项",
      "citation": "https://www.pystone.net/notes/game-graphics-and-runtime/#%E6%B8%B2%E6%9F%93%E5%9F%BA%E7%A1%80"
    }
  ],
  "contentMarkdown": "# LOD工具调研\n\n> 创建时间：2021/1/28 14:13\n\n  * LOD工具调研\n    * LOD Introduction\n      * generalized\n      * Methods\n        * Discrete Levels of Detail (DLOD)\n        * Continuous Levels of Detail (CLOD)\n        * HLOD (Hierarchical LOD)\n      * Applications\n    * LOD in Unity\n      * LOD for shaders\n      * LOD for meshes\n        * workflow\n          * 带有LOD的模型\n          * 不带LOD的模型\n        * Project-wide LOD settings\n        * Smooth transitions between LOD levels\n    * LOD Tools\n      * overview\n      * Unity AutoLOD\n      * 发现的问题\n    * Ref\n\n## LOD Introduction\n\nIn computer graphics, level of detail (LOD) refers to the complexity of a 3D model representation.\n\nLOD can be decreased as the model moves away from the viewer or according to other metrics such as **object importance** , **viewpoint-relative speed** or **position**.\n\nLOD techniques increase the efficiency of rendering by **decreasing the workload** on graphics pipeline stages, usually **vertex transformations**. The reduced visual quality of the model is often **unnoticed** because of the small effect on object appearance when **distant** or **moving fast**.\n\n### generalized\n\nAlthough most of the time LOD is applied to **geometry detail** , the basic concept can be generalized. Recently, LOD techniques also included **shader** management to keep control of **pixel complexity**. A form of level of detail management has been applied to texture maps for years, under the name of **mipmapping** , also providing higher rendering quality.\n\n> It is commonplace to say that “an object has been LOD’d” when the object is simplified by the underlying LOD-ing algorithm.\n\n### Methods\n\n#### Discrete Levels of Detail (DLOD)\n\n**Provide various models to represent the same object.**\n\nCreating multiple, discrete versions of the original geometry. At runtime, the full-detail models are substituted for the models with reduced detail as necessary. **Using less detailed versions of your models that are viewed when they’re further away from the camera**.\n\nDue to the discrete nature of the levels, there may be visual **popping** (sometimes called switchover) when one model is exchanged for another. This may be mitigated by **alpha blending** or **morphing** between states during the transition.\n\n#### Continuous Levels of Detail (CLOD)\n\n**uses a structure which contains a continuously variable spectrum of geometric detail.** The structure can then be probed to **smoothly** choose the appropriate level of detail required for the situation.\n\nA significant advantage of this technique is the ability to **locally vary the detail** ; for instance, the side of a large object nearer to the view may be presented in high detail, while simultaneously reducing the detail on its distant side.\n\n#### HLOD (Hierarchical LOD)\n\ngrouping different objects together\n\n### Applications\n\n>   * **Video game** developers want to provide players with large worlds but are always constrained by hardware, frame rate and the real-time nature of video game graphics.\n>\n>   * GIS(geographic information system) and 3D city models\n>\n>   * Rendering and modeling software\n>\n>\n\n## LOD in Unity\n\n### LOD for shaders\n\nYou can assign a LOD (level of detail) value to a SubShader. This value indicates how computationally demanding its shader programs are. At runtime, you can tell Unity to exclude SubShaders\nabove a given LOD value, so that Unity falls back to using SubShaders that have a lower LOD value.\n\nUnity does not calculate SubShader LOD automatically, and this feature does not relate to distance from the Camera. You must set the maximum LOD manually.\n\nShader.maximumLOD\nShader.globalMaximumLOD\n\n### LOD for meshes\n\nThe farther a GameObject is from the Camera, the lower-detail LOD level Unity renders. This technique reduces the load on the hardware for these distant GameObjects, and can therefore improve rendering\nperformance.\n\n> For the very lowest level of detail, you can use a Billboard Asset, which Unity displays instead of a 3D mesh.\n\n#### workflow\n\n##### 带有LOD的模型\n\n  * 制作模型时，LOD命名规范，Unity会自动识别LOD，添加LOD Component\n\n![Alt text](assets/1616130612689.png)\n\n![Alt text](assets/1616130617603.png)\n\n![Alt text](assets/1616130640961.png)\n\n![Alt text](assets/1616130651149.png)\n\n> 如果制作时，多个LOD的坐标相同，在Unity当中直接就可以使用。如果多个LOD坐标不同，需要调整LOD的坐标\n\n  * 命名不规范，无法识别LOD - manually create a GameObject with a LOD Group component, and configure the LOD levels manually.\n\n##### 不带LOD的模型\n\n  * AutoLOD，勾选了Generate on import后，在导入模型时，会将fbx中的Mesh都视为LOD0，自动生成LOD1和LOD2 的Mesh，生成lod资源，为FBX模型添加LOD Group组件，放入场景中就是带有LOD的模型。\n\n#### Project-wide LOD settings\n\nMaximum LOD Level: Exclude meshes above a specified LOD level from your build.\nLOD Bias: Determine whether to favor higher or lower LOD levels at threshold distances.\n\n#### Smooth transitions between LOD levels\n\nSmooth transitions take place inside transition zones, where Unity renders both the current and next LOD levels separately, and then cross-fades them together.\n\n**Cross-fading** is the technique of rendering\ntwo levels at the same time, with a weighting of 1 to 0 for the current LOD level and 0 to 1 for the next LOD level:\n\n![Alt text](assets/1616131033247.png)\n\n## LOD Tools\n\n### overview\n\n  * MeshLab an open source mesh processing tool that is able to accurately simplify 3D polygonal meshes.\n\n  * Polygon Cruncher a commercial software from Mootools that reduces the number of polygons of objects without changing their appearance.\n\n  * Simplygon a commercial mesh processing package for remeshing general input meshes into real-time renderable meshes.\n\n### Unity AutoLOD\n\n### 发现的问题\n\nAutoLOD会把生成的Mesh的顶点的格式自动变为UInt32，该格式的Mesh无法进行动态合批，会增加DrawCall。\n\n## Ref\n\n<https://en.wikipedia.org/wiki/Level_of_detail_(computer_graphics)>\n<https://conceptartempire.com/3d-lod-level-of-detail/>\n"
}
