如何向 Shader 传递一个巨大的数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何向 Shader 传递一个巨大的数组相关的知识,希望对你有一定的参考价值。

参考技术A c/c++可以用二维数组名作为实参或者形参,在被调用函数中对形参数组定义时可以指定所有维数的大小,也可以省略第一维的大小说明,如: void Func(int array[3][10]); void Func(int array[][10]); 二者都是合法而且等价,但是不能把第二维或者更高维的大小省略,如下面的定义是不合法的: void Func(int array[][]); 参考技术B 用了 glTexImage2D 代码不算多。不过最开始 glTexParameteri 配错了参数,一直没有数据。还有作为 GL_ALPHA 传进去之前要把数据所放的 0...255 之间。
另外 Vertex Texture Fetch 代码也不多,不过感觉自己脑子里可能缺概念没接上,我再写写看

FormData如何向后端传递数组

参考技术A 这个问题是在上传文件相关功能中发现的,后端要求FormData中封装一个数组类型的参数,试了几次发现API请求体中的对应参数类型并不是数组,下面给出我的几次尝试过程:

1.刚开始尝试最简单粗暴的一种

然后去看请求体的时候发现,虽然封装的 list 参数是数组,但是却是字符串,后端得到的数据 '1,2,3'

2.接着上网查了一些资料,发现大多数是这种写法:

在这里贴一个链接: https://blog.csdn.net/chuijiongyu7406/article/details/101021528?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.control

但是并没有解决我的问题,后端获取的还是字符串,只不过变成了 '['1','2','3']' ,其实这里后端将字符串转换成数组也就解决了问题,但是后端不同意😶😑🙄

在一次尝试中,尝试了一种写法:

后端成功的得到了 ['1','2','3'] ,这个数组类型的参数,附上请求体里面的参数:

以上是关于如何向 Shader 传递一个巨大的数组的主要内容,如果未能解决你的问题,请参考以下文章

Shader专题:卡通着色控制颜色的艺术

FormData如何向后端传递数组

Cel-Shading 对 BMP 模型纹理的影响?

安卓系统中notificaion shade是啥

可以将二维字节数组制成一个巨大的连续字节数组吗?

shader是啥意思