0
我正在制作多人游戏,并将在玩家附近展示其他玩家。最多有16名玩家可以靠近玩家,但也可能有0.我想要做的是设置16个空的VBO,以便他们在客户端收到它们时准备加载角色的位置。创建空的VBO有效吗?如果不是,我应该如何处理可能存在或不存在的数据,具体取决于服务器发送客户端的数据?如何在渲染可能显示或不显示的网格时处理VBOs?
我正在制作多人游戏,并将在玩家附近展示其他玩家。最多有16名玩家可以靠近玩家,但也可能有0.我想要做的是设置16个空的VBO,以便他们在客户端收到它们时准备加载角色的位置。创建空的VBO有效吗?如果不是,我应该如何处理可能存在或不存在的数据,具体取决于服务器发送客户端的数据?如何在渲染可能显示或不显示的网格时处理VBOs?
你的问题让我困惑。为什么使用VBO来存储位置? VBO可以只绘制你正在绘制的任何顶点,并且可以在绘制时根据modelMatrix移动位置。
简单的伪代码:
LoadVBO(player_model);
for(int i=0;i<16;i++){
if(player[i].visible) {
modelMatrix = player[i].position;
glUniform(modelMatrix);
DrawVBO(player_model);
}
}
如果这还不够,请给出更多的信息。为什么试图绘制一个空的vbo,而不是设置一个跳过绘图调用的标志?
我认为你在这里过于复杂的事情。创建并绑定你的VBO或VBO,然后在某处你有一个玩家状态对象。或者玩家在那里(标志为真)并且你画网格,或者他不是(标志为假),而你没有。看起来像一个简单的IF在从0到15的循环中给我:)。 – Robinson 2012-04-16 20:44:09
嗯......如果数据不存在......你可以......也许...... **不渲染它**? – 2012-04-16 20:48:46