unity3d - 是否有可能使着色器扩展 Unity 中的另一个着色器

标签 unity3d shader fragment-shader

我想使用 perlin 噪声和诸如此类的东西制作几个 GPU 纹理,所以我有这个大着色器,它具有所有这些 perlin、单纯形、voronoi 噪声函数,然后只制作一个新的着色器来扩展只有一个的大着色器具有以下功能:

color = perlin(x, y, z) + perlin(x*10, y*10, z*10)/voronoi(x,y,z);

这可能吗?什么是最好的方法?我最终将为每个纹理制作一个着色器,因此会有很多着色器,我宁愿避免复制/粘贴所有这些功能,尤其是当我需要重新制作其中一个时

最佳答案

将通用代码移动到.cginc.glslinc 文件中,并使用#include 语句包含它们。另请参阅 answers.unity3d.com 上的此问题.

另一种方法是使用 UsePass命令。

关于unity3d - 是否有可能使着色器扩展 Unity 中的另一个着色器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20861769/

相关文章:

unity-game-engine - 像素化照明着色器

c# - 添加轻量级渲染管道时对象图形困惑

c# - OpenCV坐标转换

android - 某些 Android 设备中未显示线性渐变

unity3d - 应用后处理着色器

ios - 将 SCNGeometry 渲染为线框

ios - 创建并写入 GL_ALPHA 纹理 (OpenGL ES 2)

user-interface - 某些 Windows 8 和 8.1 上的 Unity3d 4.6 UI 图像错误

unity3d - 为 Hololens 照亮场景的正确方法是什么?

c++ - 带阴影的聚光灯变成方形