zoukankan      html  css  js  c++  java
  • ReplacementShader 测试

    简介

    参考网页
    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

  • 相关阅读:
    leetcode回溯总结
    排序算法详解
    Java核心基础知识泛型
    leetcode贪心算法
    Linux虚拟机配置及安装Redis
    HJ6质数因子
    冒泡排序(升序)
    动态规划 背包问题
    配置mycatschema.xml
    HJ106字符逆序
  • 原文地址:https://www.cnblogs.com/Hichy/p/9334806.html
Copyright © 2011-2022 走看看