天天看点

ShaderToy转换成ShaderLab(Unity)前言一、ShaderToy To ShaderLab总结参考

文章目录

  • 前言
  • 一、ShaderToy To ShaderLab
    • 1.工具介绍
    • 2.URP管道
  • 总结
  • 参考

前言

本文主要介绍如何通过工具将ShaderToy的Shader代码转为Unity的CG代码。ShaderToy是国外知名的图形网址,是可以提供我们学习和实际开发中借鉴的很好的网站。因为ShaderToy上展示的着色器完全是用GLSL编写的,可以使用WebGL在浏览器中运行,但在unity中,我们需要转为CG语言去写,手动转比较耗费时间,刚好在国外网站上看到这个工具,并通过自己的实践,发现该工具还是可行的,不过转换体量较大的时候容易出错, 读者可根据shadertoy的代码自己修复下,也可以完善工具。ShaderToy是GLSL语言,读者需要具备GLSL语言的读写能力。

ShaderToy

一、ShaderToy To ShaderLab

1.工具介绍

可以通过这个github网址直接去阅读工具的使用:工具github地址

笔者也简单介绍下步骤:

【1】 从www.shadertoy.com复制着色器,ctrl +A把着色器的代码拷贝上。例如:https://www.shadertoy.com/view/3lsSzf 上的

ShaderToy转换成ShaderLab(Unity)前言一、ShaderToy To ShaderLab总结参考

【2】从Window \ ShaderMan中打开ShaderMan工具

ShaderToy转换成ShaderLab(Unity)前言一、ShaderToy To ShaderLab总结参考

【3】为我们的着色器选择名称

ShaderToy转换成ShaderLab(Unity)前言一、ShaderToy To ShaderLab总结参考

【4】从shaderToy.com导入着色器

ShaderToy转换成ShaderLab(Unity)前言一、ShaderToy To ShaderLab总结参考

【5】然后点击Convert,会生成下图,有几个报错,对比shadertoy的着色器代码,修复下即可,改工具转体量较大会出错,读者可自行优化这个工具。

ShaderToy转换成ShaderLab(Unity)前言一、ShaderToy To ShaderLab总结参考

2.URP管道

使用urp(Universal Render Pipeline )的读者,可以参考学习这个github的地址:urp ShaderToy

总结

虽然说这个工具是不够完善的,但比手动转效率高,读者可自行去优化这个工具,使其更加完善。

参考

ShaderMan

shadertoy-to-unity-URP

ShaderToy