Loading... # 在Unity中使用ShaderToy网站上的shader方式: #### 1. 之前的文章中提到的ShaderToy Renderer : [ShaderToy shader快速移植实现](https://www.lazyun.cn/default/10.html) - 最终的渲染结果是一张RenderTexture,可以直接使用; - 也可以使用提供的对应的Material. #### 2. 这篇文章中会介绍如何在URP RenderFeature中使用ShaerToy Shader [![效果展示, 点击打开视频](https://res.lazyun.cn/typecho/2022/05/29/glowcity.jpg?x-oss-process=style/compress)](https://www.bilibili.com/video/BV17B4y1X7Xc/) ##### - 大概说明 - 1. 转换Shader过程这里就不详细说明了,具体参考[https://www.lazyun.cn/default/10.html](https://www.lazyun.cn/default/10.html) - 2. 还是以`ScriptableObject`为主要载体,其中记录了多个Channel之间的链接关系,以及Channel使用的Shader,这里直接改用`Shaer`替换了之前的`Material`,减少移植的手工操作,如下图所示: ![ShaderToyAsset内容展示](https://res.lazyun.cn/typecho/2022/05/29/shadertoyasset.jpg?x-oss-process=style/compress) - 3. RenderFeature的设置,如下图中所示 ![ShaderToyRenderFeature的设置展示](https://res.lazyun.cn/typecho/2022/05/29/shadertoyrenderfeature.jpg?x-oss-process=style/compress) ##### - RenderFeature参数详细说明 - `Draw To Screen` : 是否直接画到屏幕上,这个可以用于快速调试 - `Use Screen Mouse` : 是否直接使用屏幕鼠标坐标用于交互 - `Texture Scale` : RenderTexture的全局缩放比率,降低RenderTexture分辨率缓解渲染和内存压力 - `Final Texture Name` : Shader中的`Global Texture`名称,可以在Shader中直接采样该Texture获取ShaderToy的最终渲染结果用于进一步加工 - `Shader Toy Asset` : ShaderToy Shader的主要载体 - `Default RenderTexture Info` : 默认的ShaderToy使用的RenderTexture参数,可以在具体Channel中override覆写。 - `Texture Size` : RenderTexture的尺寸,最终的尺寸将是这个值和Texture Scale的乘积,需要注意的是: **如果设置为零,将使用屏幕的宽高作为尺寸** - `Format ` : RenderTexture的格式,默认为`ARGB Half`, 如果转换结果与ShaderToy网站差距很大,但没其他线索的情况下,可以参数修改这个值 - `Filter Type` : 默认Bilinear - `Wrap Mode` : 默认Clamp - `Depth Buffer` Depth Buffer > 最后放上源码链接:https://github.com/LazyunGame/ShaderToyRenderFeature 最后修改:2022 年 05 月 29 日 © 禁止转载 赞 0