Unity Shader之自定义GUI shader可以自己写一个shader gui,即写一个类继承自ShaderGUI,参考文档:https://docs.unity3d.com/Manual/SL-CustomEditor.html 这是完全没有问题的,但有时想简单点,不想这么麻烦。 那么可以使用unity给我们提供好的一些GUI,即MaterialPropertyDrawer, 参考文档:https://docs.unity3d.com/Sc...
我在这里编写了一个URP Shader模板,你可以通过右键Create->Shader->URP Shader来创建他,该模板具有基础的URP格式,并使用了我自定义的ShaderGUI,你可以通过修改CustomShaderGUI/Editor/Template/URPShader来修改这么模板 模板的创建使用了雨松大佬的方法 2.使用SimpleShaderGUI 使用时只需要在Shader最后添加ShaderGUI的引用...
Light Weight ShaderGUI,Unity ShaderGUI的轻量级替代方案。经常能看见一些Unity Shader插件有着1000行Shader却有2000行ShaderGUI的情况,而对GUI接口不熟悉的人想改动GUI又很困难。为了写更少的代码,更简单灵活地排版ShaderGUI,我开发了这个工具: 不写一行ShaderGUI实现自定义排版 使用了内置MaterialPropertyDrawer接口,参考...
官方文档:http://docs.unity3d.com/Manual/SL-CustomShaderGUI.html CS代码如下: 1usingUnityEngine;2usingUnityEditor;3usingSystem;45publicclassTestShaderGUI : ShaderGUI6{7publicoverridevoidOnGUI(MaterialEditor materialEditor, MaterialProperty[] properties)8{9//render the default gui10base.OnGUI(materialE...
这里先写这些了,有什么意见或者建议都可以在下面留言,谢谢大家。 后续:如果大家对这些功能还不满足的话,还可以自己写编辑器,只要继承“ShaderGUI”这个类就好了,具体大家可以在这里查看:http://docs.unity3d.com/ScriptReference/ShaderGUI.html,如果有需要,我也可以继续写这个类详细的扩展。
要修改这个地方,我们应该怎么做处理呢,我们首先下载官方的shader包, 打开这个资源包,我们找一个脚本文件叫做StandardShaderGUI.cs 打开之后可以看到官方对这个操作的代码 但是他这里面没有对,我们把这个代码使用在项目中,发现了一个很重要的问题:我们可以修改他的渲染模式,但是我们无法得到他当前是什么渲染模式,我们把in...
这里先写这些了,有什么意见或者建议都可以在下面留言,谢谢大家。 后续:如果大家对这些功能还不满足的话,还可以自己写编辑器,只要继承“ShaderGUI”这个类就好了,具体大家可以在这里查看:http://docs.unity3d.com/ScriptReference/ShaderGUI.html,如果有需要,我也可以继续写这个类详细的扩展。
这里先写这些了,有什么意见或者建议都可以在下面留言,谢谢大家。 后续:如果大家对这些功能还不满足的话,还可以自己写编辑器,只要继承“ShaderGUI”这个类就好了,具体大家可以在这里查看:http://docs.unity3d.com/ScriptReference/ShaderGUI.html,如果有需要,我也可以继续写这个类详细的扩展。
将创建GUI显示变量与Shader变量链接起来 在OnGUI中 传值 以及各个列表创建 以扰动举例 主要参数已注释 混合模式判断与函数定义 补充 宏开多了,涉及变体数量问题,简单的计算还是要使用lerp去再优化回来,毕竟宏达到一定数量后,每多一个都会让变体数量几何倍数增长 ...
这些shader也必须使用samplerExternalOES采样方式来访问纹理。这部分在后面采样器中有说明。 几个重要的技术点如下: Shader采样 YUV->RGB 这里片元着色器的使用如下: 该Shader是针对GL_TEXTURE_EXTERNAL_OES的一种扩展,完成YUV到RGB的转换,采样出来的数据需要绘制到Unity纹理上,这里面不能直接操作,需要借助FBO和EGL...