Unity材质替代渲染相关:RenderWithShader & SetReplacementShader

本文介绍了Unity中如何利用Camera的RenderWithShader和SetReplacementShader方法实现物体着色器的临时或持续替换渲染,用于满足特殊需求。RenderWithShader适用于一次性渲染,而SetReplacementShader则可保持渲染状态,通过ResetReplacementShader恢复原状。文章还解释了UsedShader和ReplaceTag的使用,强调了它们在Shader匹配过程中的作用,以及如何设置自定义的tags键值对。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Unity材质替代渲染相关:RenderWithShader & SetReplacementShader

概要

Unity提供了使用Camera实现场景中物体替换shader渲染的方法,来满足一些特殊需求。

public void RenderWithShader(Shader shader, string replacementTag);
public void SetReplacementShader(Shader shader, string replacementTag);

两种方法都在挂载在Camera上的脚本上调用,其中RenderWithShader 方法调用一次之后只渲染场景一次,SetReplacementShader方法调用之后会一直使用,直到调用ResetReplacementShader方法,则恢复所有物体的正常渲染。

RenderWithShader

官方文档解释链接(v:2018.4)
英文不好,个人大概理解为使用这个方法的相机不能是你当前正在使用的渲染的相机,你需要一个新的相机,并且disable掉挂载的Camera组件,这个相机不会再发送OnPreCull, OnPreRender or OnPostRender 消息,最好结合RenderTexture使用。所以我使用它的方法基本就是将它作为一种触发性质的渲染方式,在你需要的时候调用一次渲染方法,渲染到RenderTexture并进行使用。

GetComponen

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值