我何时应该决定使用新的片段着色器?

问题描述

我是OpenGL的新手,所以这个问题可能不合时宜。

目前,我仅在需要某种像素/像素计算时才使用着色器,例如确定照明角度,位置,纹理和相关内容。我最近遇到了一个稍微不同的问题。我感觉像操作OpenGL来绘制形状和像素(没有textureSampler)有点过头了,感觉这不是为了它或者我没有正确使用它。因此通常,每当我想使用2D并制作网格时,我都不会绘制线条和像素,而是在屏幕的高度和宽度上加载相同大小和相同间距的精灵,并根据自己的缩放比例设置它们的比例宽度和高度。这种方法在我玩过的大多数情况下都可以正常工作(例如Conway的10000个实体,mandelbrot集等),可能不是最佳方法,但它可以工作。

但是我对流体模拟感到好奇,最终需要在我所谓的“瓷砖”上实现Perlin噪声。但是您会看到,由于在我的上下文中我的每个图块都被用作“像素”(再次,我没有NxN像素,而是将NxN纹理化实体用作“像素”),所以图块的颜色将由噪声算法在每帧动态值。如果在这种情况下要弄乱我的着色器,我觉得我应该使用一个统一变量...但是同时这没有任何意义,因为我在统一变量中分配的所有内容都是基本矩阵和整数。我看不到如何为每个实体加载新值。这样,我就将“输入/输出”变量留给了顶点着色器,对于每个操作,它都会调用片段着色器来实际实现rgb过滤。这有一个主要缺点,因为我需要为每个帧将信息重新加载到VBO中,这简直是错误的。我唯一的选择是在将其作为纹理加载到OpenGL之前,在实际图像上操作这些像素。

无论如何,我的问题是,何时应该考虑编辑/创建新的着色器?就我而言,基本上每个帧都需要一个新纹理。我应该在将图像作为纹理加载之前还是之后在新的片段着色器中进行这些更改?也许我的整个方法错误的?

在有人问之前,不,我不是在阅读或阅读OpenGL书籍,而是在尝试学习,我希望尽可能继续这种方法

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)