Webgl 动态雪碧配料

Webgl 动态雪碧配料,webgl,sprite,batching,Webgl,Sprite,Batching,我已经实现了一个简单的2d渲染器,但不能用于纹理或动态对象 首先要说的是,我有4个类,我认为它们是最重要的渲染器,场景,精灵,SpriteBatch 为了解释我在做什么,我将写一个简单的例子 var renderer = new Renderer(); var scene = new Scene(); var sprite1 = new Sprite(); scene.add(sprite1); function render(){ sprite1.x += 0.01; rend

我已经实现了一个简单的2d渲染器,但不能用于纹理或动态对象

首先要说的是,我有4个类,我认为它们是最重要的<代码>渲染器,
场景
精灵
SpriteBatch

为了解释我在做什么,我将写一个简单的例子

var renderer = new Renderer();
var scene = new Scene();
var sprite1 = new Sprite();
scene.add(sprite1);
function render(){
    sprite1.x += 0.01;
    renderer.render(scene);
}
render();
在场景内部发生的事情是,当第一次向场景添加
精灵时,会创建
新精灵批次
,并且所有进一步添加到场景的
精灵
将附加到相同的
精灵批次
,直到
精灵批次
满为止

所以我的问题是
顶点

new Float32Array([-0.5, -0.5, 0.5, -0.5, -0.5, 0.5, -0.5, 0.5, 0.5, -0.5, 0.5, 0.5]);
调用
场景时计算。添加(sprite1)
。这使得我的动画制作非常不同,因为
大顶点缓冲区
位于
SpriteBatch
中。因此,当调用
sprite1.x+=0.01时,我只想更新属于
sprite1
顶点。但是,我不知道如何将
Sprite
Scene
SpriteBatch
连接在一起以实现“动态”批处理

实现这一点的常用技术是什么?或者你能想出一种方法来实现我想要的吗