チャレンジしましょう。動かすためのプログラムを書きました。(OpenGLサンプルプログラム:GLUT)まぁ、いつものように適当にファイルが入っています。あと、実行ファイル及び、プロジェクトファイルが入っています。「オプション」-「ディレクトリ」で、ディレクトリを追加します。CORPORATION\NVSDK\CG\LIBに、それぞれのファイルがあるので、追加しました。<Cg/cgGL.h>を、追加しましょう。言語によるプログラムは、DirectXのものと変わりません。今回は、頂点シェーダで、透視変換して色は頂点色をそのまま出力します。出力データを作成します。■CgオブジェクトCgを使うためには、DirectXのように、Cgを使う時のcgContextと、プログラムを格納するcgProgramIterに、変数を結びつけるcgBindIterを用意します。POSITION;\n"以下略また、今回は、Cg言語プログラムをCソースに埋め込みました。Cgプログラムは文字列として、格納されます。■Cgのセットアップそれでは、Cgの初期化を行いましょう。Cgを使えるようにします。プログラムを登録します。開始関数を指定することによって、使えるようになります。グラフィックチップにCgプログラムを転送します。あとは、cgGetBindByNameで、使う変数のイテレータとプログラム内部の名前を結び付けます。}ちなみに、後片付けは、それぞれ適当なものを呼び出します。}■メイン関数それでは、メインループを見てみましょう。いっても、たいしたものではありません。OpenGLの初期化をして、先ほど見たCgの初期化をします。あとは、メインループで処理をさせておいて、終わったら、あと片付けをします。初期化ですが、ほとんど同じです。}箱は、法線ベクトル、頂点インデックス、及び頂点座標で構成されます。それぞれ、配列として定義しておきます。}■描画では、描画部分です。基本的には、前回のポリゴンを描画しているところと変わりありません。行列を退避したあと、回転行列を使ってぐるぐる回すワールド行列を作成したあと、箱を表示します。}さて、肝心なのが箱の表示です。して、ON/OFFを切り替えます。}あと、glVertex3fvで頂点座標を指定したり、glNormal3fvで法線ベクトルを指定して表示します。リサイズとアイドルの関数は変わりません。}■最後にさて、Cg言語がOpenGLで動かせるようになりました。NV30部門へ応募するための準備ができました。もどるimagire@gmail.com。