COJTとは
1/31に、筑波大学キャンパスOJT(以下COJT)という大学の産学連携の授業の成果発表をしてきました。
COJTには、ソフトウェアコースとハードウェアコースがあり、私はソフトウェアコースの方を受講しました。
ソフトウェアコースでは、アクセル社のAG4というグラッフィクスLSIで動作するゲームの開発と発表を行いました。
ハードウェアコースは、FPGAを使って各自好きな回路を作成したようです。
1/31に、筑波大学キャンパスOJT(以下COJT)という大学の産学連携の授業の成果発表をしてきました。
COJTには、ソフトウェアコースとハードウェアコースがあり、私はソフトウェアコースの方を受講しました。
ソフトウェアコースでは、アクセル社のAG4というグラッフィクスLSIで動作するゲームの開発と発表を行いました。
ハードウェアコースは、FPGAを使って各自好きな回路を作成したようです。
早いもので大学3年の授業が終わってCOJTを残すのみとなってしまいました。
一昨日成績開示があったのですが、卒業に必要な単位のうち取り切っていないのは、 卒業研究と技術英語と体育だけなので、実質的に大学の授業は取り終わったに等しいです。
3年の秋学期のABモジュールに開講された、インタラクティブCGという授業を履修したのですが、 今学期で一番楽しい授業だったと思うので、振り返ってみます。
ちなみに、去年にも似たような記事を書いていました。
久々の更新です。
早いもので大学2年の授業が終わって春休みになってしまいました。
3学期には、コンピュータグラフィックス基礎という授業を履修したのですが、 今学期で一番楽しい授業だったなーと思うので振り返ってみます。
基本的にはOpenGLを使って色々しました。
特に力を入れた課題などを紹介します。
ソースコードなどはすべてgithubにあるので、 気になる人はぜひ見てね!
OpenGLを使ってアニメーションを作るという課題があったので、 全方位シューティングゲームを作ってみました。
技術的な点だと、自機、隕石、弾の3つは、慣性移動、衝突判定、描画などは共通の処理でできるので、
この3つをobject
という構造体1つで管理して、同じような処理を何度も書かないようにしました。
OpenGLの回転と平行移動を駆使して、立体の展開図のアニメーションを作りました。
まずは立方体の展開図。
正12面体となると、座標の計算が大変でしたが、気合で実装しました。
マウスで制御点を入力してベジエ曲線を描く課題です。
定義式をプログラムにするだけの簡単なお仕事でした。
オプションとして3次元バージョンにも挑戦しました。
OBJファイルという、頂点と面の2つの情報で立体を表す立体図形のフォーマットがあるのですが、 このOBJファイルを出力するプログラムを作りました。
ちなみに、OBJファイルを描画するプログラムは先生の方で用意してくれました。
球体は普通にやると頂点部分で例外処理があって面倒ですが、頂点部分に複数の頂点がくるようにして楽しました。
Wikipediaにトーラスの式があるので、それを参考にして作りました。
球の課題の式の定義部分を変更するだけで、できたので楽でした。
3角関数で半径を変化させて、適当な回転体を作りました。
また、マウスで入力した線から任意の回転体を作ったりしました。
また、マウスで線を描くときに下から上に線を引くと、面が裏返るので、それを利用してプリンみたいなのも作りました。
レイトレーシングをやりました。
普通にやるとつまらないので、いろいろ工夫しました。
Mass-Spring モデルによる簡易的な布の物理シミュレーションをしました。
球体との衝突判定を追加してみたのが次です。
こうして振り返ると、かなり色々な課題に挑戦しましたが、どれも楽しかったです。
CGを自分の研究としてもいいなーとか思ってしまいました。