投稿者 tel | 2011年11月3日

GLSLでstructを使う

GLSLでは次のようにしてuniformに構造体を指定できる。

struct Material {
  vec4 diffuse;
  vec4 specular;
  vec4 ambient;
  float power;
};
uniform Material uMaterial;

このuniformのロケーションを取得する場合、uMaterialをそのまま設定できない。uMaterialのメンバ1つずつを設定しなければならない。

// nullが返ってきてしまう
gl.getUniformLocation(program, 'uMaterial');
// これならOK
gl.getUniformLocation(program, 'uMaterial.diffuse');

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

カテゴリー

%d人のブロガーが「いいね」をつけました。