定期的にレンダリングコードを呼び出すように設定し、初期化は終了です。これらの処理の詳細は以降で作成していきます。初期化が終わったので、次は表示するモデルデータを作成します。今回は地球を表示するので、球体のモデルデータをプログラムで生成することにしましょう。)と、それらを繋いだ三角形リスト(インデックスデータ)で構成されます(ほかにもバリエーションがありますが、ここでは省略)。呼ばれるオブジェクトに格納します。この方法はとりづらいです。格納する方法をとっています。能書きはこれくらいにして、実際のコードを見ていきましょう。関数は以下のようになります。データを転送しています。し、その後適切なメソッドを実行してデータを操作したりレンダリングに使用したりします。次はインデックスデータの作成です。インデックスデータは、三角形の三頂点それぞれに対応する頂点のインデックスを、レンダリングする三角形の数だけ並べたものになります。作成とデータの転送は頂点のときとほぼ同じです。レンダリング時にインデックスの数が必要になるので、グローバル変数に記憶しておきます。オブジェクトに読み込んだものをテクスチャーオブジェクトに転送して利用します。ブラウザで表示できる画像ファイルならなんでも表示できます。オブジェクトを使って画像を読み込んでいます。し、画像データを転送します。テクスチャが縮小されたときの画質・レンダリング速度改善のための「ミップマップ」と呼ばれる縮小画像を生成するメソッドです。上で動作する一種のプログラムで、頂点シェーダーとフラグメントシェーダーの二種類があります。前者はひとつひとつの頂点に対して実行され、頂点座標やその他の頂点属性の計算・変換を行います。後者は三角形内の個々のピクセルに対して実行され、テクスチャや頂点カラーなどの合成を行います。ベースなので、必ずこのシェーダーを用意しなければなりません。そのための処理は以下のようになります。});}ちょっと長いので、ブロックごとに説明しますね。頂点シェーダー・フラグメントシェーダーを作成シェーダーを作成する処理は頂点シェーダー・フラグメントシェーダーともにほとんど同じなので、一緒に説明します。シェーダーを作成するのですが、このとき与える引数によって頂点シェーダーかフラグメントシェーダーかが決まります。実行してそれをコンパイルします。タグを使って埋め込みます(後述)。別ファイルを読み込んで使うことも可能です。エラーメッセージが取得できるので、なんらかの方法で出力するようにしておきましょう。頂点・フラグメントシェーダーのペアを保持するプログラムオブジェクトを作成します。頂点シェーダーとフラグメントシェーダーを設定します。することで、頂点シェーダーからフラグメントシェーダーへのパラメータの受け渡しなどを適切に処理することができます。値を読み込むための、番号で識別される器)に結びつけます。第二引数には頂点属性の番号、第三引数に頂点シェーダー内の変数名を指定して呼び出すことで、これを実行します。値がそれぞれ設定されることになります。頂点シェーダーとフラグメントシェーダーをリンクする頂点シェーダーの出力変数の内容がフラグメントシェーダーの入力変数に適切に引き渡されるように、双方をリンクします。呼び出すだけで実行されますが、シェーダーのコンパイルと同様にエラーを表示するようにした方がよいでしょう。宣言された変数の内容が頂点シェーダーからフラグメントシェーダーへ引き継がれるようになります(実際にはそのままの値ではなく、重心座標で補間した値が引き渡されます)。シェーダーに引き渡すパラメータについて、その設定に使用するインデックス値を取得します。設定する変数名を指定すれば、そのインデックスが変えるので、その値をグローバル関数に保存しておきます。レンダリング時には、このインデックスを指定してそれぞれの変数に値を設定するわけです。ファイルに埋め込みます。して解釈されないようにするためです。以外であれば他の文字列でもかまわないと思いますが、通例としてこのようにすることになっているようです。シェーダーの処理内容については説明するときりがないのでここでは触れません。シェーダー言語の詳細については後述の参考文献などを参照してください。いった宣言の意味を少し説明しておきます。