着色器图弄乱了纹理(Unity 2D)

Posted

技术标签:

【中文标题】着色器图弄乱了纹理(Unity 2D)【英文标题】:shader graph messes up the texture (Unity 2D) 【发布时间】:2021-10-16 21:57:52 【问题描述】:

我正在尝试制作一个发光着色器,但是。当我添加 _MainTex 属性时,会发生这种情况:- shaded

shaded wireframe

我尝试将网格类型更改为全矩形,但是当我这样做时会发生这种情况full rect mesh types :-

我不知道问题出在哪里,请帮忙,我是着色器图的新手,我正在使用“sprite shader graph unlit”,我也尝试过同样的问题。这是我的着色器图:-shader Graph

【问题讨论】:

【参考方案1】:

Sample Texture 2D 节点返回 vec4,但您的 Fragment 输出仅接受 vec3,因此忽略 alpha 信息。

如果您希望着色器也使用纹理的 Alpha 值,则应将 Sample Texture 2D 节点的 A 输出插入片段的 Alpha 输入。

您当前正在返回所有像素的纹理颜色值,而不是按 alpha 过滤。

如果这不起作用,请检查是否必须为着色器启用半透明。

【讨论】:

以上是关于着色器图弄乱了纹理(Unity 2D)的主要内容,如果未能解决你的问题,请参考以下文章

在着色器图中访问二级纹理法线贴图?

Unity学习——纹理材质&着色器

[Unity] Shader(着色器)输入输出和语义

[Unity] Shader(着色器)之纹理贴图

如何将浮点矩阵作为 2D 纹理传递给片段着色器?

纹理同时用作着色器程序的 FBO 颜色附件和 sampler2D