如何在渲染可能显示或不显示的网格时处理VBO?

时间:2012-04-16 20:12:51

标签: opengl vbo

我正在开发一款多人游戏,并会在玩家附近展示其他玩家。最多可以有16名玩家靠近游戏玩家,但也可能有0.我正在考虑做的是设置16个空的VBO,这样他们就可以在客户收到角色时加载角色的位置。创建空的VBO是否有效?如果不是,我应该如何渲染可能存在或不存在的数据,具体取决于服务器发送客户端的内容?

1 个答案:

答案 0 :(得分:4)

你的问题让我困惑。为什么使用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,而不是只设置一个跳过绘制调用的标志?