码迷,mamicode.com
首页 > 其他好文 > 详细

ReplacementShader 测试

时间:2018-07-19 11:59:02      阅读:399      评论:0      收藏:0      [点我收藏+]

标签:ica   html   nts   顺序   问题   pass   img   inf   str   

简介

参考网页
SetReplacementShader(Shader shader, string replacementTag);

  • 参数中的replacementTag,是Shader中Tags中键值对的Key值,即 "RenderType"="Transparent" 的 RenderType
  • 替换规则是,按照键值对的值,从替换用的Shader中找到对应TagValue的SubShader,没有找到对应的不显示
  • 简单说明示例 shader1, shader2 为原始的Shader,将会被替换为 Replace 的SubShader1, 和 不显示
//Shader1
Shader "Shader1" {
     SubShader {
         Tags { "ReplaceTest"="Test1" }
         ... ...
     }
}

//Shader2
Shader "Shader2" {
     SubShader {
         Tags { "ReplaceTest"="Test2" }
         ... ...
     }
}

//替换用的Shader
Shader "ReplaceShader" {
     SubShader {
         Tags { "ReplaceTest"="Test1" }
         Pass {
             ...
         }
     }
    //Test2 没有对应的 SubShader 不会显示
     SubShader {
         Tags { "ReplaceTest"="Test3" }
         Pass {
             ...
         }
     }
 ...
 }

替换的C#脚本

cam.SetReplacementShader(ReplaceShader,  "ReplaceTest");

测试效果

测试工程 ReplacementShader

将球的Shader替换掉,别的保持不变
由于替换不成功会不显示,需要用一个摄像机单独绘制需要替换的层
技术分享图片
测试中遇到的问题:
用双摄像机方便对比,但是右侧相机的渲染顺序和左侧基础相机顺序一致时,会对左边相机渲染效果产生影响
将右边相机最先绘制,就没有问题,即 最右 -2,左边基础-1,左边只绘制球层级 0

ReplacementShader 测试

标签:ica   html   nts   顺序   问题   pass   img   inf   str   

原文地址:https://www.cnblogs.com/Hichy/p/9334806.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!