2012-04-16 16 views
0

私はマルチプレイヤーゲームに取り組んでおり、プレイヤーの近くに他のプレーヤーを表示しています。最大16人のプレイヤーがゲーマーの近くにいるかもしれませんが、0でも構いません。私が考えているのは、16個の空のVBOを設定して、クライアントがキャラクターの位置を受け取る準備ができていることです。空のVBOを作成することは有効ですか?サーバーがクライアントを送信しているものによっては、レンダリングデータがどのようにレンダリングされるかどうかは関係ありませんか?メッシュをレンダリングするときにVBOを処理する方法は、表示される場合と表示されない場合があります。

+1

あなたはここでは複雑すぎると思います。 VBOまたはVBOを作成してバインドし、プレーヤーの状態オブジェクトをどこかに配置します。プレイヤーがそこにいるか(フラグが真)、あなたがメッシュを描くか、彼は(旗が偽)であり、そうではありません。私に0から15までのループの単純なIFのようです:)。 – Robinson

+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を描画しようとするのはなぜですか?

関連する問題