国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Unity 3D 殘影的研究 截取當前模型的網格材質并顯示

2019-11-08 00:01:37
字體:
來源:轉載
供稿:網友

版本:unity 5.4.1  語言:C#

 

參考實戰核心技術的第七章,不過只分析了其中核心的代碼。

 

與之前的換裝核心有點像,但此次是直接新建一個對象,只替換material、mesh兩個,并沒有涉及到骨骼的添加。

 

下面來看看代碼:

Material mat = null;    //殘影的材質float colorA = 1f;  //殘影當前的透明度// Use this for initializationvoid Start (){    // 獲取對象的皮膚渲染    SkinnedMeshRenderer meshRenderer = gameObject.GetComponent<SkinnedMeshRenderer>();    // 烘培出當前的網格    Mesh mesh = new Mesh();    meshRenderer.BakeMesh(mesh);    // 新建一個殘影    GameObject go = new GameObject();    go.hideFlags = HideFlags.HideAndDontSave;   //在Hierarchy中不顯示,并保留到新場景中    // 添加MeshFilter、MeshRenderer的情況    //MeshFilter goMeshFilter = go.AddComponent<MeshFilter>();    //goMeshFilter.mesh = mesh;    //MeshRenderer goMeshRenderer = go.AddComponent<MeshRenderer>();    //goMeshRenderer.material = meshRenderer.material;    // 添加SkinnedMeshRenderer的情況    SkinnedMeshRenderer goSkinnedMeshRenderer = go.AddComponent<SkinnedMeshRenderer>();    goSkinnedMeshRenderer.material = meshRenderer.material; //添加材質    goSkinnedMeshRenderer.sharedMesh = mesh;    //添加網格    // 將殘影放到原對象的上一格    go.transform.position = (gameObject.transform.position + new Vector3(0, 1f, 0));    go.transform.rotation = gameObject.transform.rotation;    // 替換能夠透明顯示的Shader    //mat = goMeshRenderer.material;    mat = goSkinnedMeshRenderer.material;    mat.shader = Shader.Find("JiuYinT/Toon/Basic Replace");}	// Update is called once per framevoid Update (){    if (mat == null)        return;    // 漸變消失的效果    colorA -= Time.deltaTime;    if (colorA <= 0f)        colorA = 1f;    Color col = mat.GetColor("_Color");    col.a = colorA;    mat.SetColor("_Color", col);}

我用了個球做測試,不過出現了一個問題:

編輯器中正常顯示,但下面的Game窗口下的顯示就。。

直接變全黑了,找了組里的美工詢問原因,估計是Shader的原因,換成Standard就正常了,老版本的Shader無法在新版本中使用啊。具體Shader是什么原因,我會過一段時間仔細研究一下Unity的光照、Shader系統。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 利津县| 东乡族自治县| 宜都市| 桐庐县| 廉江市| 远安县| 吴忠市| 泰州市| 晋江市| 沙田区| 沙河市| 建德市| 乌鲁木齐县| 台前县| 枝江市| 呼和浩特市| 洛宁县| 平定县| 定西市| 安义县| 柯坪县| 津市市| 浠水县| 吐鲁番市| 南阳市| 剑川县| 土默特右旗| 大宁县| 漳州市| 缙云县| 呼和浩特市| 樟树市| 合作市| 漳浦县| 正定县| 普定县| 凯里市| 共和县| 康定县| 昭觉县| 宾阳县|