首页 > 解决方案 > 我想用统一的着色器创建自定义方格图案效果

问题描述

我想基于 3 x 3 int 网格统一创建一个可定制的棋盘图案,在其中我用 1 指定哪个像素是透明的,用 0 指定一个全彩色的。

问题是到目前为止我找不到任何类型的结构来保存所述矩阵。我尝试了 mat3x3、int3x3 和 float3x3,但是在传递中初始化它们之后,它们在所有索引上返回相同的值,即 0。

v2f.muv 包含屏幕位置坐标

我初始化错了吗?

const int3x3 c8 = { 1, 1, 1, 1, 0, 1, 1, 1, 1 };

                fixed4 frag(v2f i) : SV_Target
                {
                    fixed4 col = tex2D(_MainTex, i.uv);
                    col.a = c8[ i.muv.x % 3 ][ i.muv.y % 3 ];
                    return col;
                }

标签: unity3dshader

解决方案


没关系,在发布后又搞砸了 5 分钟后,我发现我只需要将静态放在初始化前面。


推荐阅读