皆様、いかがお過ごしでしょうか。それやるだけで通り一遍はマスターできちゃうんですよねぇ。何かで皆でよってたかって作ったほうが今時じゃね?と、いうことで、本を書くのは時間がかかるので(遅く出た本は価値が下がるので悩みどころなのですが)、前哨戦として入門編をここで展開してみます。インストールしてください。必要だったと思いますので、インストールしてください。Centerからたどることができます)。■勉強のしかた一番、早い方法は、ぐだぐだ書くよりも、どうすれば効率よく勉強できるかを示すことだと思うので、それを書いちゃいましょう。本当に、それで終わりなのですが、あまりに手抜きなのでもう少しフォローしましょうか。使えるようになります(厳密には、あとはヘルプで知りたいことを検索するだけ問題は解決するということです)。関数の呼び方なんかがわかるだけで、「どうすりゃゲームが作れるんだよ」とか、「この技術はどうやって実装するんだよ」という問題は別問題なので、それはそれで勉強してください(最近のゲームの作り方とかやりたいですけど、守秘義務の首ラインが読みにくいんで難しいんですよねぇ...)。閑話休題、説明は英語で書いてありますが、どうせプログラムの関数は英語だし、順を追ってけいば、そんなに不自由せずに理解できると思います。いう内容なのか理解しとくといいのかな?大まかには、次の順序で進めていけばよいと思います。サンプルは、次の場所にあります。インストールした場所なので、人によって違うかと思いますが適宜応答してください。以降で、それぞれ見ていきましょう。■チュートリアル「Tutorials」にあるのが、順番に勉強していくことで一通りの使い方が身につけられるチュートリアルです。15個と数は多いですが、内容は少しづつ増えるだけなので、手間を惜しまず眺めていきましょう。内容は、次のようになっています。違っていても、そんなもんだと考えてください。アプリケーションの作成です。使って画面を青っぽく塗りつぶします。使うときの仮想ビデオカードみないなイメージでしょうか。使って、3角形を表示するいわゆるポリゴン描画です。こんなとこからシェーダを使うのが今風です。3角形をぺたっと貼り付けていたのですが、今度は箱を立体的に表示します。いわゆる透視変換の導入です。□Tutorial05:行列変換を使ったアニメーションのデモ今度は2つの箱を表示します。位置を変えるために姿勢制御の行列を切り替える必要があるのですが、その(シェーダに受け渡すパラメータの)切り替え方の紹介です。時は、変数を変えたことを明示的に指定してやらなきゃいけなかったんですが、それがなくなったよといいたいのかも知れないのですが、それを読み取るにはマニアック過ぎる気もするなぁ□Tutorial06:頂点シェーダを使った簡単な照明計算のデモ2つの平行光源からの拡散光の計算です。個人的には、こういう簡単だけど一般性がないサンプルって使い回しが効かないから好きじゃないんですよねぇ□Tutorial07:テクスチャを張るデモ「seafloor.dds」を読み込んで、それを貼り付けます。GLUTをパクったリスペクトした、簡易フレームワークがあります。コールバック関数を登録し、呼ばれたときの処理を書くことによって、低レベルで単純な誰が書いてもそんなに変わらないのに書くのが面倒な部分を省いてくれます。プロじゃなけりゃ、そのまま使っても良いんじゃない?というレベルに仕上がっています。いつ仕様が大きく変わるかわからないのが怖いぐらいです。使ったメッシュの読み込みいわゆる3Dモデルの表示です。いやぁ~、入門サイトで何が鬼門かというとこのメッシュ表示ですよ。データを作るのは面倒くさいわ、細かく追っていくのは分量が多くなるわ、最悪です。それに、普通は自分で扱いに便利なフォーマット考るっちゅ~の(公開できないけど)。言うことで、ただモデル出したいだけなら、このチュートリアルに従ってモデルを表示しましょう。用意されているカメラやメニューの使い方を学習します。範囲を飛び越えて「とにかく必要なやつ用意してやろうじゃないか」という気概が伺えます。ほどほどに使うのが良いんじゃないかなぁと思います。「何で、シェーダを書かせるのかというと、それを使うと変わったことが出来るからだよ」という見本です。横方向にうねうねします。違うので眺めてみてください。素人さんはうれしいのかも知れませんが、実際はそのまま使うことはないよね...□Tutorial12:ピクセルシェーダの応用いわゆる環境マッピングです。キューブマップの使い方の導入にもなっています。導入されたジオメトリシェーダの使い方の入門です。ポリゴンの各面を法線方向にずらして飛び散るような演出を実現します。これもそのまま使うことはないですね。レンダリングのためのパラメータ(表面だけor両面or裏面だけ等)がオブジェクト化されて、一斉に設定するようになっています。(OpenGLでは、それぞれの値が配列のように保持されるようなステートマシーンになっててちょい古臭い気がします)。各種設定の方法と思いなさい。もどるimagire@gmail.com。