温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

【Unity3d脚本】卡通渲染效果脚本

发布时间:2020-02-25 09:16:28 来源:网络 阅读:939 作者:xiaoxuanyunmeng 栏目:游戏开发
@script ExecuteInEditMode 
    class EdgeDetectEffectNormals extends ImageEffectBase 
    { 
     var renderSceneShader : Shader; 
   
     private var renderTexture : RenderTexture; 
     private var shaderCamera : GameObject; 
   
     function OnDisable() { 
      super.OnDisable(); 
      DestroyImmediate (shaderCamera); 
      if (renderTexture != null) { 
       RenderTexture.ReleaseTemporary (renderTexture); 
       renderTexture = null; 
      }  //Unity3D教程手册:www.unitymanual.com
     } 
   
     function OnPreRender() 
     { 
      if (!enabled || !gameObject.active) 
       return; 
   
      if (renderTexture != null) { 
       RenderTexture.ReleaseTemporary (renderTexture); 
       renderTexture = null; 
      } 
      renderTexture = RenderTexture.GetTemporary (camera.pixelWidth, camera.pixelHeight, 16); 
      if (!shaderCamera) { 
       shaderCamera = new GameObject("ShaderCamera", Camera); 
       shaderCamera.camera.enabled = false; 
       shaderCamera.hideFlags = HideFlags.HideAndDontSave; 
      }
       //Unity3D脚本:www.unitymanual.com
   
      var cam = shaderCamera.camera; 
      cam.CopyFrom (camera); 
      cam.backgroundColor = Color(1,1,1,1); 
      cam.clearFlags = CameraClearFlags.SolidColor; 
      cam.targetTexture = renderTexture; 
      cam.RenderWithShader (renderSceneShader, "RenderType");  
     } 
   
     function OnRenderImage (source : RenderTexture, destination : RenderTexture) 
     { 
      var mat = material; 
      mat.SetTexture("_NormalsTexture", renderTexture); 
      ImageEffects.BlitWithMaterial (mat, source, destination); 
      if (renderTexture != null) { 
       RenderTexture.ReleaseTemporary (renderTexture); 
       renderTexture = null; 
      } 
     } 
    } 
   


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI