東京工業大学 ロボット技術研究会

東京工業大学の公認サークル「ロボット技術研究会」のブログです。 当サークルの日々の活動の様子を皆さんにお伝えしていきます。たくさんの人に気軽に読んでもらえると嬉しいです。
新歓特設ページ        ロボット技術研究会 HP        ロボット技術研究会 twitter公式アカウント

OpenGL

「ロボット技術研究会」通称「ロ技研」は、その名前の通りロボットの制作や研究はもとより、電子工作や機械工作、プログラミングなどの幅広い分野にわたるものつくり活動を行っています。

カテゴリ一覧: loading

誰もやってないようなので、モダンなFortranだけでモダンなOpenGLを使ってみた

└(՞ةڼ◔)」<やっほ〜したろうだよォ〜!

最近色んな人からドヤ顔白衣と呼ばれるようになりました。
アノ人の影響力はすごいですね…。

i-engineer.jp


ついに今日、卒業論文発表が終わりました!
これで学部生としてやるべきことは尽くしました。今はただ天命を待つだけです。
というわけで、新年度に向けてしたろうが生まれ変わりました!@shitaro2016
心機一転、ゼロからの再スタート!これからの活躍に期待してください!

概要

従来では、FortranでOpenGLを使うにはGLUTという選択肢しかなかった。
しかし、モダンなFortranではC言語とより密な連携がとれるようになったことに着目したしたろうは、
自分でGLFWとGLEWのラッパーを書くことで、モダンなOpenGLをモダンなFortranで使用することを実現したのだ!

続きを読む

【CG^3】 OpenGLで3Dゲーム作成 2

こんにちは、CG^3の抹茶(@_xcipher)です.

環境とか、使用ライブラリとか色々変えました

* 環境とか
    VC++ 2012CTP -> VC++ 2013CTP (C++11おいしい!)
    
* 使用しているライブラリとか
    FTGL (日本語フォント描画) -> freetype2
    [new!] OpenAL (サウンド周り)
    [new!] boost::asio (通信)
    [new!] LZ4 (圧縮)
    
* やりたいこと
    自動作曲
    自動ワールド生成
    マルチプレイ(オンライン)
    アップデーター\
    
* シェーダーのおはなし
    ** 描画パイプライン
        1. 3D上の頂点情報をGPUへ送る
        2. 頂点シェーダ―が頂点単位で何か処理する(座標変換など)
        3. [ジオメトリシェーダ―(頂点増減)]
        4. 隠面処理とか
        5. ラスタライズ (頂点によって張られた面をピクセルに)
        6. ピクセルシェーダーがピクセル単位で何か処理する(ライティングなど)
        7. 画面に出力
    
    OpenGL3.x以降やDirectX10以降では、シェーダーをプログラミングしないといけません。
    つらい。
    楽しい!
    
    ** 具体的に何書くの
        例えば、ライティング
        ライトの座標指定しても勝手に描画してくれません。(現実は厳しい)
        ライトの座標からこれだけ離れているから、このピクセルはこれぐらい明るくする、みたいなのを書いて、あたかもライトがそこにあるっぽいような描画をさせます。
        行列とベクトルが大活躍します。
        つらい。
        楽しい!

* 自動作曲のおはなし
    音楽経験なし!音楽知識なし! -> プログラムに作らせよう
    パクろうと思ってるのがコレです -> Wolfram Tones
    単純セルオートマトンの一部を帯状に切り取って、それを楽譜に見立てています。
    おもしろい。
    
    ** PCで音を鳴らすには?
        自分はOpenALを使う予定ですが、他にもXAudioとかあります。
        音の波形の離散的なデータを渡すと音を出してくれます。
        楽器の波形渡してあげれば、そんな感じの音が出ます(多分)
        まだ勉強中です(´・ω・`)
        
* 進捗
やりたいこと増やしてたら何も進んでなかった。


いろいろやってると工大祭間に合わないのでは
いじょうです( •̀_•́)ง

【CG^3】 OpenGLで3Dゲーム作成

こんにちは、CG^3の抹茶(@_xcipher)です.

現在、minecraftっぽい3Dゲームを作ろうとしていて、そのゲームエンジン部分を作成中です.

4月までDirectX11ベースでゲームのエンジン部分を作ってたのですが、ちょっと行き詰まったのでOpenGLに乗り換えてみました.

* 環境とか
  • Visual C++ 2012 (Nov 2012 CTP)
  • OpenGL 4.0
  • GLSL 4.0

* 使用しているライブラリとか
  • glfw3 (GLUT的ポジション)
  • glew (GLSLまわり)
  • GLM (数学関係)
  • FTGL (日本語フォント描画)(予定)
  • LodePNG (PNG画像読み込み)
  • Google V8 JavaScript Engine (スクリプティング)

Windowsでも特に苦労なくビルドできます.


* V8エンジンとは

C++で書かれたJavaScriptエンジン.

Googleが作ってるのできっと強い.

C++側に埋め込んで、JSでスクリプティングができる. わー.

主にC++の変数、関数、クラスなどとJacaScriptのオブジェクトの仲介部分を書いていく感じになります.

公式のサンプルを読めば何となく分かるので、それっぽく書くと何か動きます.

汎用性のあるラッパーを作るのが難しい.

用途としては、ゲーム内の敵の動きを記述しようと思ってましたが、意外といろいろできそうでした.
(json形式で書かれた設定の読み込みとか)

ある程度ラップしたもの
[C++側]
cpp

[js]
js

[出力]
res
(logはcompileのときに中で埋め込んでます. 標準出力してるだけです)


* 3Dモデル読み込み
基本的に、標準でサポートされていません.
自分で解析して読み込みましょう. (白目)

C++で文字解析はつらいです
[解析手段]
  1. 頑張る → つらい
  2. boost::spirit::qi → ✌('ω')。o(???????????????)
  3. C++が読みやすいような中間データを作成する → 悪くはないかもしれない
  4. ライブラリを使う → 最適解
  5. 上記のJSスクリプティングで読み込む → 新規性を感じる
JSだと楽にかけて意外と良いのでは~

そんなわけで5でやってみました.
できました.
matcha01

メタセコイアっていうソフトで作られたmqo形式のモデルです.
(まだ完全ではないです.)
こっそりライティングをしていますが、この話はまた次回辺りで...

ちなみに、Debugビルドだと、解析にめっちゃ時間かかります.
Releaseならなんとか実用的かもしれないです

* その他

Q. Unity使わないの?

ゲームエンジンも作りたいので...
逆に、すぐに動くゲームを作りたいのならUnity一択な時代ですね.

Q. Luaは?
使ったことないです


Q. OpenGL と DirectX の違い

 どっちもでもいいと思います.

 ただ、ライブラリ面ではOpenGLの方が充実していて楽に書けると思います.

DXライブラリはDirectX9までなので、DirectX10以降を使う場合は直打ち不可避です.


Q. OpenGL4.0, DirectX11 とは

 どちらも最先端の機能を使うことができます.(PCの性能にも依りますが)
比較的新しいので、ネット上の情報は少なく、書籍を参考にしたり、英語の公式ドキュメントやサンプルを読む力が必要です.
OpenGL2.0やDirectX9でも十分なクオリティのゲームを作れますし、動作する環境も多いので、わざわざ新しいものを使う必要は無いのかもしれません.
でも一番新しいもの使ってみたいですよね?

* 今後の予定
  • ライティング、影の描画など
  • シェーダーでいろいろ特殊効果を実装してみる
  • Defferd Shadingしてみる
  • OpenALで音を鳴らしてみる
  • OpenGLのいろんな機能を試す(テッセレーションとか)
  • ゲーム本体を作る

工大祭までにそれなりのものを作りたいですね...
それでは(。・ω・)ノ゙


ソースです. 汚いです. 読めないです. いじめないであげてください.
github



ギャラリー
  • MakerFaireTokyo2017に出展します
  • MakerFaireTokyo2017に出展します
  • MakerFaireTokyo2017に出展します
  • MakerFaireTokyo2017に出展します
  • MakerFaireTokyo2017に出展します
  • MakerFaireTokyo2017に出展します
  • たのしいロボット帝国 製作物紹介
  • たのしいロボット帝国 製作物紹介
  • たのしいロボット帝国 製作物紹介
記事検索
最新コメント