我想要以简单快捷的方式调整大小的3d对象数量。
我的代码与xoppa的纸牌游戏示例非常相似:
https://xoppa.github.io/blog/a-simple-card-game/
使用ModelBatch
和RenderableProvider
:
@Override
public void render() {
...
modelBatch.begin(cam);
modelBatch.render(items);
modelBatch.end();
...
}
项目是ObjectSet
实施RenderableProvider
。
使用item
:
MeshBuilder
顶点和索引
meshBuilder.begin(mesh.getVertexAttributes());
meshBuilder.part("items", GL20.GL_TRIANGLES, renderable.meshPart);
for (Item item : this) {
meshBuilder.setVertexTransform(item.transform);
meshBuilder.addMesh(item.vertices, item.indices);
}
meshBuilder.end(mesh);
现在我要做的是调整项目大小以制作一些奇特的动画效果。我想我可以使用PerspectiveCamera
并更改距离参数。但是如果我想独立调整每个项目的大小呢?
要尝试解决此问题,我将顶点(item.vertices
)直接乘以每个render()
调用中的调整大小(缩放)因子,但每个Item
都有大约140个顶点,所以我需要每次循环它们并乘以缩放因子。
我在想可能有更有效的方法来调整每个项目的大小?
答案 0 :(得分:1)
每帧修改item.transform
矩阵以包含缩放操作;使用矩阵的整个要点是数学上可组合的。
请参阅: