Java 3DGame LWJGL GitBook chapter8〜Camera〜

イントロダクション

LWJGL GitBookChapterを写経しながら理解していきます。Git(ソース)はこちら。。。

前回は、Chapter7-2をやりました。今回は画面を表示するときの「カメラ」に付いてやります。

ゲームで表示されている領域を変えたり、ズームアップしたりするアレです。

コードを読む(Read Code)

今までに見て来た部分は割愛します。

  1.  Chapter1[外枠の表示のみ]
  2. Chapter2-1〜クラスの構成〜
  3. Chapter2-2〜インターフェースの使い方と詳細〜
  4. Chapter2-3〜GameEngineクラス(サンプルクラス)〜/li>
  5. Chapter2-4〜Windowクラス(サンプルクラス)〜
  6. Chapter3〜描画処理を読む〜
  7. Chapter4〜シェーダについて〜
  8. Chapter5-1〜レンダリングについて〜
  9. Chapter5-2〜レンダリング詳細〜
  10. Chapter6〜Projection(投影)〜
  11. Chapter7-1〜Cubeを作る〜
  12. Chapter7-2〜Texture〜

https://ahbejarano.gitbook.io/lwjglgamedev/chapter8

今回の追加ソース

  1. MouseInput
  2. Camera

大きな修正部分

  1. Transformation#getWorldMatrix()を修正していました。
  2. DummyGame#init()
  3. Renderer#render()

写経後に起動するアプリ

*************************************


*************************************

改めてソースを読む

Main: DummyGame, GameEngineをインスタンス化してGameEngine#start()を実行

DummyGame: Renderer, Camera, Vector3fをインスタンス化して各フィールドに設定

GameEngine:

  1. スレッドを立ち上げ(new Thread(this))、フィールドにWindow, MounseInput, DummyGameのインスタンスを設定する
  2. OSの種類に応じて、GameEngine#run() or GameEngine#start()を切り替えて実行する
  3. フィールドにセットした各クラスの初期処理(init())を起動する
  4. gameLoopを回しながらinput, renderを繰り返し実行する

大雑把にこんな感じの処理をしていました。

今回のキモ

ズバリ、カメラワークでしょう!そして、因縁の三角関数!!

そして、GitBookの説明を読んでもよくわからなかったので、デバッカーを作って実行

スクリーンショット 2018-10-31 20.38.06.png

入力があったときのみコンソールに出力する様に処理を追加→欠陥品でした。。。1回目しか出力しません。。。

スクリーンショット 2018-10-31 21.47.10.png

出力結果

2018-10-31 21.46.55

とりあえずはここまでやったのだけど、入力した値が逆方向に向いている(-0.05)こと以外はわからなかった次第でございます。

続きはまた後日。

でわでわ。。。

 

コメントを残す