bambooflow Note

Stroing_Vertex_Attributes

最終更新:

bambooflow

- view
メンバー限定 登録/ログイン

Storing Vertex Attributes


各メッシュデータには、
  • 頂点座標(v)
  • 法線(n)
  • テクスチャ座標(tc)
を準備し、サーバにストアする必要がある。
サーバにストアするとき、データの格納方法は2通りある。

  • 各データを配列で格納
  • 構造体で格納


各データを配列で格納


v v v v v v

n n n n n n

tc tc tc tc tc tc


glFloat v[] = { ... };
  glFloat n[] = { ... };
  glFloat tc[] = { ... };
 
  glVertexAttribPointer(vIndex, 3, GL_FLOAT, GL_FALSE, 0, v);
  glVertexAttribPointer(nIndex, 3, GL_FLOAT, GL_FALSE, 0, n);
  glVertexAttribPointer(tcIndex, 2, GL_FLOAT, GL_FALSE, 0, tc);
 
  glEnableVertexAttribArray(vIndex);
  glEnableVertexAttribArray(nIndex);
  glEnableVertexAttribArray(tcIndex);
 


構造体で格納


struct VertexData {
 GLfloat tc[2];
 GLfloat n[3];
 GLfloat v[3];
};

tc n v tc n v tc n v


VertexData verts[];
 
 glVertexAttribPointer(vIndex, 3, GL_FLOAT, GL_FALSE, sizeof(VertexData), verts[0].v);
 glVertexAttribPointer(vIndex, 3, GL_FLOAT, GL_FALSE, sizeof(VertexData), verts[0].n);
 glVertexAttribPointer(vIndex, 2, GL_FLOAT, GL_FALSE, sizeof(VertexData), verts[0].tc);
 
 
  glEnableVertexAttribArray(vIndex);
  glEnableVertexAttribArray(nIndex);
  glEnableVertexAttribArray(tcIndex);
 

ストア時は、パラメータにオフセットを与える。

タグ:

OpenGL
記事メニュー
目安箱バナー