タグ付けされた質問 「vao」

3
OpenGL Vertex Array Object(VAO)にはどの状態が保存されますか?また、VAOを正しく使用するにはどうすればよいですか?
OpenGL VAOにはどの状態が保存されているのかと思っていました。VAOには、バッファリングされた頂点の頂点仕様に関連する状態(バッファ内の属性、バインドされているバッファなど)が含まれていることがわかりました。VAOの正しい使用法をよりよく理解するために、VAOがどの状態を保持しているかを正確に知りたいです。 VAOの使用をどのように想定するか 簡単な例から、VAOの正しい使用法は次のとおりであることがわかりました。 セットアップ Generate VAO BindVAO ---- Specify vertex attributes ---- Generate VBO's ---- BindVBO's -------- Buffer vertex data in VBO's ---- Unbind VBO's Unbind VAO レンダリング Bind VAO ---- Draw Unbind VAO このことから、少なくとも頂点バッファーバインディングと頂点属性の仕様がVAOに格納されていると想定しています。ただし、この使用パターンが(複数の)テクスチャと(複数の)シェーダープログラムが作用する状況にどのように拡張されるかはわかりません。あるアクティブなシェーダプログラム VAOに保存されますか?また、テクスチャバインド(サンプリング/ラッピング設定)もVAOに保存されますか?ユニフォームにも同じ? したがって、私の質問は次のとおりです。 OpenGL VAOにはどのような正確な状態が保存されていますか?(VBOバインディング、属性仕様、アクティブシェーダープログラム、テクスチャバインディング、テクスチャサンプリング/ラッピング設定、ユニフォーム...?) 関連するサンプリング/ラッピング設定を持つ(複数の)テクスチャ、(複数の)シェーダープログラム、ユニフォームが関係する、より複雑なレンダリング設定でVAOを正しく使用するにはどうすればよいですか?
25 opengl  vao 

2
OpenGL:VBOを指定せずにVAOを使用できますか
VAO(頂点配列オブジェクト)に関するすべてのチュートリアルで、頂点属性を構成し、VBO(頂点バッファーオブジェクト)をバインドすることにより、VAOの使用方法を示しています。しかし、各バッファーが同じデータパターン(頂点、uv、色など)を使用する固定シェーダーと組み合わせて、VBOのセット用に構成されるVAOを作成します。したがって、1つのシェーダーを使用して描画される複数のVBOに対して1つのVAOを作成します。 これに関するデモが見つからなかったため、試してみることにしました。しかし、それは機能せず、glDrawArray呼び出し時にクラッシュします。VBOがバインドされていないようです。私が使用しているコードは次のとおりです。 レンダリング: /* Prepare vertex attributes */ glBindVertexArrayOES(vao); /* Upload the buffer to the GPU */ glBindBuffer(GL_ARRAY_BUFFER, pool->next()); glBufferSubData(GL_ARRAY_BUFFER, 0, parts * buffer.stride() * 6, buffer.getBuffer()); /* Draw the triangles */ glDrawArrays(GL_TRIANGLES, 0, parts * 6); glBindVertexArrayOES(0); VAO作成: glBindVertexArrayOES(vao); glEnableVertexAttribArray(ls.position); glVertexAttribPointer(ls.position, 2, GL_FLOAT, GL_FALSE, buffer.stride(), 0); glEnableVertexAttribArray(ls.color); glVertexAttribPointer(ls.color, 3, …
12 opengl  vbo  vao 

2
2Dゲームと最新のOpenGL
事前概念 わかりました、それで私がこれまでに集めたのはこれです: 固定パイプラインを使用しない(非推奨または非推奨) vbosは「オブジェクトモデル」を格納します(n頂点データ、ほとんど) vaosは、データがどのように配置されるかを記述し、描画呼び出しが各vboのどの部分がどの種類の頂点情報に対応するかを認識します(1つのvaoは複数のvboを参照でき、その逆は少し難しい) 各描画呼び出しは、シェーダーに頂点データも送信します 3Dの見方(オプション) これらの情報があれば、3Dの複雑なオブジェクトの描画が最新のOpenGLで非常に優れていることがわかります。基本的に、(おそらくBlenderまたは他の同様のソフトウェアからの)オブジェクトモデルの束をローカル座標を持つVBOにロードし、次に、オブジェクトの各インスタンスに異なるシェーダーパラメーター(オフセット)を指定して、ワールドスペースに描画します。 問題/質問 ただし、2Dでは問題と優先順位はまったく異なります。それほど複雑なオブジェクトを描画する必要はありません。複雑な投影行列は必要ありません。シェーダーははるかに単純です。 最新のOpenGLで頻繁に(実際には頻繁に、基本的にすべてのフレームで)変化するジオメトリを描画するための最良の方法は何でしょうか? 次の段落では、問題のいくつかの考え(円と四角形の問題)を見ることができます。これにより、興味のある変更の種類をより明確に識別できます。 私の試み(オプション) そこで、基本的な2Dジオメトリを画面に描画する方法を考え始めました。 正方形:[(1, 0), (1, 1), (0, 1), (0, 0)]ローカル空間で正方形のジオメトリのVBOを読み込み、シェーダーに正方形の実際の幅と世界座標および色情報を提供します 涼しく、簡単に見えます。円に移動しましょう: 円:三角ファン...ええ。どのくらいの精度(頂点の数)?小さな円の精度は小さく、バグの円の精度は高くなければなりません。明らかに1 VBOをロードしても、すべてのケースに対応できるわけではありません。円のサイズが大きくなるために精度を上げる必要がある場合はどうなりますか? かっこいい。少し簡単な長方形に移動しましょう。 長方形:ええ。「一般的な長方形のジオメトリ」はありません。幅と高さの比率があればそれだけですが、サイズが変化すると、各長方形はおそらく異なります。 ご覧のとおり、物事はそこから下り坂になります。特に複雑なポリゴンなどではそうです。 コードポリシーなし:P アイデアの概要が必要なだけで、コードは必要ありません。特にCまたはC ++コードは必要ありません。「この頂点データでVBOを作成し、それをバインドする...」のように言ってください。
10 opengl  2d  vbo  vao 

2
Unity3dを介して新しいc#スクリプトを追加するときにVS soution Explorerを強制的に再読み込みしますか?
私はC#スクリプトを作成する(ときCreate -> C# Script)を介しUnity3d やからそれを削除Unity3d- Visual Studioショー私の警告ウィンドウ。 気に障る。 ウィンドウなしでソリューションエクスプローラーで「ReloadAll」を強制する方法はありますか?
8 unity  visual-studio  unity  google-play-services  google-play  physics  simulations  c#  unity  raycasting  unity  virtual-reality  savegame  arcade  c++  steam  ios  objective-c  databases  storage  opengl  vbo  vao  libgdx  scene2d  unity  animation  c#  path-finding  roguelikes  opengl  c++  glsl  2d  physics  phaser  selection  3dsmax  unity  collision-detection  c#  tilemap  isometric  unity  c#  2d  sprites  mouse  scripting  grid  c#  unity  libgdx  java  unity  playstation4  c#  c++  directx  dll  c++cli  libgdx  overlap2d  multiplayer  node.js  websocket  animation  unity  textures  unity  terrain  physics  unity  rotation  movement  transformation  monogame  windows  installer  shaders  unity  virtual-reality  unity  performance  frame-rate  profiler  google-play  appstore  trademark  java  android  libgdx  unity  unity-networking  unity  physics  software-engineering  unity  savegame  physics  2d  unity  unity  c#  unity-networking  textures  geometry  unreal-4  3d-modeling  java  android  libgdx  android  collision-detection  libgdx  rotation  legal  localization  patents  opengl  cubemap  sampler-state  2d  transformation  unity  c#  opengl  glsl  lighting  opentk  c++  collision-detection  physics 

4
インデックス描画は非インデックス描画よりも高速です
6つの頂点(2つの三角形)からなる多数のポリゴンを描画する必要があります。 テクスチャ座標、法線などがない場合、どちらのアプローチでも72バイトになります。将来的には、テクスチャ座標と法線も間違いなく必要になります。これにより、インデックスの描画で消費されるメモリが少なくなります。それほど多くはありません。 だから私の質問は:頂点の重なりが少ないVAOの場合、どちらのアプローチがより速いですか?インデックス以外の描画で消費される余分なメモリは気にせず、速度のみを気にします。 編集:明確にするために。 非索引アプローチ: float[18] vertices = { //Triangle 1 1,1,0, 1,0,0, 0,0,0, //Triangle 2 1,0,0, 0,1,0, 0,0,0, }; インデックスアプローチ: float[12] vertices = { 1,1,0, 1,0,0, 0,0,0, 0,1,0, }; int[6] indices = { //Triangle 1 0,1,2, //Triangle 2 0,3,2 };
8 opengl  rendering  vbo  vao 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.