ページ 1 / 1
OpenGL環境でCGを実装するプログラミング
Posted: 2008年10月22日(水) 10:42
by でごいち
学校の課題の一環として、OpenGL環境の基で自由にCGを設計するプログラムを作成しております。私は、過去の課題で作成したロケットのプログラムをさらに拡張し、シェーディングやテクスチャマッピングを設計するつもりでいます(勿論、ロケットの作成手順はある程度理解はしています)。テクスチャマッピングの方では壁(床は既に設計済み)を設計しようと思うのですが、それが思うように設計できません。また、シェーディングの設計(単に空間が光るだけではいけない)方法も思うように設計できません。どなたか専門知識をお持ちの方、プログラム例などのご指導を宜しくお願い致します。
参考までに、C言語の実行環境について説明します。OSはWindowsXPで、コンパイラは「Borland C++(bcc32)」です。C言語の知識としては、関数を用いてmainの中で呼び出すレベルのプログラムは何とかできます。構造体やポインタも、授業で扱ったプログラムを拡張したりするレベルのことは大丈夫です。
この掲示板は勿論のこと、CGのプログラムも初めての利用なのでどうかご指導のほど宜しくお願いいたします。
追:インクルードヘッダ"myShape.h"は、添付のWordファイル内に同時収録してあります。
Re:OpenGL環境でCGを実装するプログラミング
Posted: 2008年10月22日(水) 12:12
by toyo
Word持ってないので普通のテキストファイル(zip可)でアップできませんか
Re:OpenGL環境でCGを実装するプログラミング
Posted: 2008年10月22日(水) 12:33
by 御津凪
Word で見ても、特に *.doc 形式にする必要は無かったように思えます。
*.doc 形式にした理由というのはあるのでしょうか?
もしかしたら「ここをこうする」といったコメントをダイレクトに書いてもらいたかったと思うのですが、
toyo さんのように 読み込めない環境の方がいるので、
私も *.txt 形式(複数のファイルなら *.zip 形式)での添付を推薦します。
私はOpenGLを扱ったことが無いので、質問にはちょっと答えられませんが、
砲台を4つ作られている部分(弾やら足やら)を砲台を一つ設計する関数にして、
それを4回呼び出す形に直せば少しはすっきりして見やすくなるはずですよ。
Re:OpenGL環境でCGを実装するプログラミング
Posted: 2008年10月22日(水) 15:08
by でごいち
なるほど・・・・改めて、関連するファイルを1つに圧縮して再アップします。現在のロケットのCGにシェーディングの機能を追加したり(単に物体を照らすだけではいけない)、テクスチャマッピングで壁を実装する方法を、例えばこの関数とこの関数の間にこのようなプログラムを挿入すればよいなど、の形式でご指導お願い致します。
Re:OpenGL環境でCGを実装するプログラミング
Posted: 2008年10月22日(水) 16:24
by toyo
>単に物体を照らすだけではいけない
というのは具体的にどういうものでしょうか
とりあえず上の円柱だけ単に照らしてみました
/* toyo add */
GLfloat red[/url] = { 1.0, 0.0, 0.0, 1.0 };
/* end */
/* 上側の円柱を設計 */
glPushMatrix();
glRotatef(theta, 0.0, 1.0, 0.0); /* ローカル座標系, 右回りに指定角度だけ回転:θ, x, y, z */
glTranslatef(0.0, dist + 1 + x, 0.0);
glColor3f(1.0, 1.0, 1.0);
/* toyo add */
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glLightfv(GL_LIGHT0, GL_DIFFUSE, red);
/* end */
mySolidCylinder(1.0, 2.0, 12);
/* toyo add */
glDisable(GL_LIGHTING);
glDisable(GL_LIGHT0);
/* end */
glPopMatrix();
*昔買ったOffice2000は持ってるんですが使う機会がないので今のパソコンにはインストールしてないんですよね
Re:OpenGL環境でCGを実装するプログラミング
Posted: 2008年10月22日(水) 18:42
by でごいち
toyoさん、大変ありがとうございました。参考にさせていただき、少しでも完成度の高い作品を作りたいということは言うまでもありませんが、1つだけお詫びがあります。先の投稿で、「物体を単純に光らせるというのはいけない」と記述しましたが、課題の実施要領を見直した所「空間を光らせるだけではいけない」と書かれていました。最初の投稿に訂正するとともに見間違いをお詫びします。
と言う訳で閲覧者の皆様、他に何か良い考えがあれば前述の内容を全て踏まえてご指導のほど宜しくお願い致します。