Webgl 动态雪碧配料
我已经实现了一个简单的2d渲染器,但不能用于纹理或动态对象 首先要说的是,我有4个类,我认为它们是最重要的<代码>渲染器,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
场景
,精灵
,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
连接在一起以实现“动态”批处理
实现这一点的常用技术是什么?或者你能想出一种方法来实现我想要的吗