LOD

作者:追风剑情 发布于:2014-6-29 21:06 分类:Shader

   通过给SubShader设定一个整型Level Of Detail,即LOD数值,可以在运行时根据硬件设备能力来决定是否使用此Shader,以及使用哪一个层级的SubShader

一、新建一个设置LOD的测试脚本

  1. using UnityEngine;
  2. using System.Collections;
  3.  
  4. public class LOD_Test : MonoBehaviour {
  5.  
  6. public int LOD;
  7. public MeshRenderer meshRenderer;
  8. // Use this for initialization
  9. void Start () {
  10. meshRenderer.material.shader.maximumLOD = LOD;
  11. }
  12. }
  1. 二、新建一个Shader
    1. Shader "Custom/Shader_LOD" {
  1. 	Properties {
  2. 		_Color ("Main Color", Color) = (1, 1, 1, 0.5)
  3. 		_MainTex ("Base (RGB)", 2D) = "white" {}
  4. 	}
  5. 	SubShader {
  6. 		LOD 600
  7. 		Pass {
  8. 			Material { Diffuse (0, 1, 0, 1) }
  9. 			Lighting On
  10. 			SetTexture [_MainTex] {Combine texture * primary double}
  11. 		}
  12. 	}
  13. 	SubShader {
  14. 		LOD 500
  15. 		Pass {
  16. 			Material { Diffuse (1, 1, 0, 1) }
  17. 			Lighting On
  18. 		}
  19. 	}
  20. 	SubShader {
  21. 		LOD 400
  22. 		Pass {
  23. 			color(1, 0, 0, 1)
  24. 		}
  25. 	}
  26. }
  27.  
  28. 运行效果(shader.maximumLOD = 600)
  1. LOD600.png
    1. 运行效果(shader.maximumLOD = 500)
    1. LOD500.png
    1. 运行效果(shader.maximumLOD = 400)
  1. LOD400.png
  2.  

标签: LOD

Powered by emlog  蜀ICP备18021003号-1   sitemap

川公网安备 51019002001593号