WebGL URP 材质在构建时呈粉红色,但在编辑器中看起来不错(使用 Amplify Shader Editor 创建的着色器)

问题描述 投票:0回答:1

我的问题与Unity WebGL在编辑器中正常,构建中粉红色屏幕非常相似,但提供的解决方案不起作用。就像问题中一样,材料在编辑器中看起来很好,但是当单击“构建并运行”时,大多数材料会变成粉红色。我已在

Project Settings > Graphics > Built-in Shader Settings
下添加了用于材质的着色器,并通过删除除一个以外的所有资源并确保在构建时由 WebGL 使用它来确保我使用正确的 URP 资源,除非我错过了某些内容。这并没有解决问题。

免责声明:我自己没有创建着色器,但它附带了我购买的资产,因此不幸的是我无法在此处发布着色器。因此,我必须尽可能地描述着色器,但我对着色器的一般知识以及用于它们的工具非常有限(如果我可以提供更多信息,请告诉我)。

着色器的描述以及迄今为止尝试过的内容

  • 最初,着色器甚至没有针对 WebGL 进行编译,但幸运的是,创建者对其进行了更改,但他们没有能力对此进行更多更改,这就是我在这里的原因。
  • 着色器似乎是使用 Amplify Shader Editor (v1.9.6.2)
  • 创建的
  • 资源中有多个着色器,但混合到纹理的着色器在导入后不起作用。所有着色器都使用
    Shader type: Universal Lit
  • 我尝试使用Amplify Shader Editor来看看我是否可以自己解决问题,但我没能做到。
    • 例如我删除了着色器输出的所有输入,但它仍然是粉红色的。
    • 这是当我注意到即使我使用Amplify Shader Editor编辑之前工作的着色器时,它也会变成粉红色(例如也只使用固定的基色)。当我使用使用此工具创建的全新着色器创建材质时也是如此。
    • 在着色器的检查器视图中,我确实在通过编辑器进行更改后单击了编译并显示代码,但这并没有解决问题。
    • 重新导入着色器后,之前工作的着色器再次工作,但混合着色器仍然无法工作。

是否有可能Amplify Shader Editor与WebGL不兼容?为什么使用此编辑器对着色器进行任何编辑都会产生粉红色材质?我做错了什么。请记住,我不熟悉该工具,但就目前情况而言,我无法使用编辑器创建工作着色器,该编辑器在浏览器中不会显示粉红色,但在编辑器视图中看起来如预期。

其他信息

  • Unity版本:2022.3.30f1
  • 测试浏览器:Firefox 129.0.2(64位)和Edge版本128.0.2739.54(官方版本)(64位)
unity-game-engine shader webgl urp
1个回答
0
投票

我进一步研究,终于找到了解决我的问题的方法。着色器使用着色器模型 4.5,该模型似乎不适用于 WebGL。

Output Node > SubShader > Shader Model
下,我将值从 4.5 更改为 4.0,现在似乎可以正常工作。我也尝试了新模型,但在我的情况下不起作用。

© www.soinside.com 2019 - 2024. All rights reserved.