使用替换shader渲染

相关函数:
  Camera.RenderWithShader(shader: Shader, replacementTag: string) 使用指定shader渲染,只影响一帧
  Camera.SetReplacementShader(shader: Shader, replacementTag: string) 使用指定shader替换,直接替换掉物体的渲染shader
  Camera.ResetReplacementShader() 重置替换shader,也就是将物体的渲染shader还原为物体自带的shader
  Camera.CopyFrom(other: Camera) 摄像机拷贝,会拷贝目标摄像机的所有参数,包括位置信息
参数tag:
  如果为空,那么所有的物体都会使用替换shader渲染。
  如果不为空,那么只有其shader匹配tag的shader会被渲染,不匹配tag的物体,直接不渲染。
注意:所有的内置shader都有RenterType的tag。

    using UnityEngine;
    using System.Collections;

    public class RenderWithReplacedShader : MonoBehaviour
    {

        void OnGUI()
        {
            if (GUI.Button (new Rect (0, 0, 150, 50), "RenderWithShader"))
            {
                // 调用一次只会渲染一帧
                Camera.main.RenderWithShader(Shader.Find ("James/TestShader"), "RenderType");
            }

            if (GUI.Button (new Rect (0, 50, 150, 50), "SetReplacementShader"))
            {
                // 将物体的渲染shader替换掉
                Camera.main.SetReplacementShader(Shader.Find ("James/TestShader"), "RenderType");
            }

            if (GUI.Button (new Rect (0, 100, 150, 50), "SetReplacementShader"))
            {
                // 移除替换的shader,还原为物体自带的shader
                Camera.main.ResetReplacementShader();
            }
        }
    }
时间: 2024-07-30 12:17:24

使用替换shader渲染的相关文章

unity, 替换shader渲染(Rendering with Replaced Shaders)

实现特效,尤其是一些后处理特效,经常需要将各物体的shader替换为另一套shader进行渲染到纹理,再后再进行合成或以某种叠加方式叠加到最后的画面上去. 再复杂一点儿的,可能不同的物体所用的替换shader还不一样. unity中Camera.RenderWithShader可实现这个功能. 下面是官方文档原话: Rendering with Replaced Shaders Some rendering effects require rendering a scene with a dif

Android Shader渲染以及实现水波纹霓虹文字雷达等效果

"-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> Android Shader渲染以及实现水波纹霓虹文字雷达等效果 - lzy的博客 - 博客频道 - CSDN.NET lzy的博客 目录视图 摘要视图 订阅 [活动]2017 CSDN博客专栏评选 &nbsp [5月书讯]流畅的Python,终于等到你!    &a

Android学习笔记进阶15之Shader渲染

Android提供的Shader类主要是渲染图像以及一些几何图形. Shader有几个直接子类: BitmapShader    : 主要用来渲染图像 LinearGradient  :用来进行线性渲染 RadialGradient  : 用来进行环形渲染 SweepGradient   : 扫描渐变---围绕一个中心点扫描渐变就像电影里那种雷达扫描,用来梯度渲染. ComposeShader   : 组合渲染,可以和其他几个子类组合起来使用. 1   BitmapShader 渲染器着色一个位

Android Shader渲染器:BitmapShader

public class BitmapShader extends Shader BitmapShader,  Shader家族的 专门处理图片渲染的 构造方法: public BitmapShader(Bitmap bitmap, TileMode tileX, TileMode tileY) bitmap:原图 tile直译为 瓷砖,瓦片.这里的TileMode 可看成是 铺图的模式. tileX, tileY:x/y 方向铺图的模式 public enum TileMode { CLAMP

android的shader渲染器

android里边的渲染器的使用主要是shader的子类,shader继承自object,他的子类有: 1.BitMapShader:BitMapShader 是bitmap渲染器,看名字就知道, BitmapShader是Shader的子类,可以通过Paint.setShader(Shader shader)进行设置. 这里我们只关注BitmapShader,构造方法: mBitmapShader = new BitmapShader(bitmap, TileMode.CLAMP, TileM

Unity Shader实现描边效果

http://gad.qq.com/article/detail/28346 描边效果是游戏里面非常常用的一种效果,一般是为了凸显游戏中的某个对象,会给对象增加一个描边效果.本篇文章和大家介绍下利用Shader实现描边效果,一起来看看吧. 最近又跑回去玩了玩<剑灵>,虽然出了三年了,感觉在现在的网游里面画面仍然算很好的了,剑灵里面走近或者选中NPC的一瞬间,NPC就会出现描边效果,不过这个描边效果是渐变的,会很快减弱最后消失(抓了好久才抓住一张图....) 还有就是最常见的LOL中的塔,我们把

【浅墨Unity3D Shader编程】之五 圣诞夜篇: Unity中Shader的三种形态对比&amp;混合操作合辑

本系列文章由@浅墨_毛星云 出品,转载请注明出处.  文章链接:http://hpw123.net/a/C__/kongzhitaichengxu/2014/1222/164.html 作者:毛星云(浅墨)    微博:http://weibo.com/u/1723155442 邮箱: [email protected] QQ交流群:330595914 更多文章尽在:http://www.hpw123.net 本文算是固定功能Shader的最后一篇,下一次更新应该就会开始讲解表面Shader,而

【淡墨Unity3D Shader计划】五 圣诞用品: Unity在Shader三种形式的控制&amp;amp;混合操作编译

本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/42060963 作者:毛星云(浅墨)    微博:http://weibo.com/u/1723155442 邮箱: [email protected] 文章开头,先给自己诚求个游戏研发实习的好去处. 浅墨今年1月.明年上半年有近半年的空暇时间可供实习. 近5年游戏编程经验,能够胜任全职的游戏开发工作.仅仅拿实习生的工资(性价比非常高有

Unity3D教程宝典之Shader篇:第九讲Render Path

转载自风宇冲Unity3D教程学院 Render Path定义Render Path,就是采取的光照流程. Render Path设置可以在Edit-> Project Settings->Player 里设定,见下图.也可以直接在摄像机的Inspector面板里设置. Render Path详细讲解                                    一:Vertex LitVertex Lit即顶点光照,顾名思义, 就是所有的光照计算都是在顶点进行的,因此所有的像素运算效