如何在不同状态创建多个刻度?
-
20-12-2019 - |
题
我正在尝试使用处理2.0的着色器。 作为一个简单的偶尔在理解点着色器一点更好,我已经实现了一个在Sprite类中的系统:
- 我将SPRITESH表设置为片段着色器中的统一示例。 2048x 2048(12 x 12帧为128像素方形) 我创造了一个点。
- 我在顶点着色器中设置了uv坐标,以实现点。
- 我通过作为统一变量传递的整数偏移顶点着色器中的UV坐标,以在SPRITESHEET 中选择“帧”
- i更新整数(使用模数到循环),递增uv偏移应用程序中每5帧。
这意味着我可以从顶点着色器内完成基本的动画序列。如果这是可取的,我不知道这是可取的,但我怀疑每次想要更改帧时,它都会比在片段着色器中设置新的统一样本2d更好。
我的问题是 - 如何在多个实例上使用此着色器?如果我想要在屏幕上的两个精灵,每个Sprites都有不同的值(即播放动画的不同帧),在没有每个具有自己的光学方向的情况下如何实现这一点,因此它自己的统一采样器2d的副本在内存中?
希望你能提供帮助。
解决方案
是的,这种方法更好,然后每帧设置新纹理。
绘制多个精灵只使用相同的程序并使用不同的统一逐一绘制对象:
1:gluseprogram(yourprogram);
2:第一个对象的纹理和uv
3:..draw first对象
4:..set新纹理(或保持相同的纹理是精灵在那里) ..对于第二个对象
。5:..draw第二对象等
编辑:程序不受您设置的统一绑定的绑定,您可以随时更改,然后再次调用绘制。
不隶属于 StackOverflow