Java 3DGame LWJGL Retry Lv1 〜動かして理解する〜

イントロダクション

LWJGLのGitBookを読み進めChapter8まできましたが、ここからよく解らなくなってしまいました。

原因は、3Dモデル描画(レンダリング)の部分をちゃんと理解していないためです。

なので、Chapter5-2からやり直します。

幸いにも、GitからPULLしてきたファイルがあるのでそいつをカスタムして理解していきます。

余談

EclipseでGitからPULLする場合は、ChapterX("X"には数字)のフォルダをPULLするとプロジェクトが作成されてちょうど良い感じです。

フォルダ(ディレクトリ)の直下に「.project」ファイルがあるとEclipseはそのフォルダを「プロジェクト」として読み込んでくれます。

今回のGitリポジトリは「pom.xml」ファイルがあるのでそれはMevenプロジェクトとして読み込んでくれるようです。

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


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

Chapter5-2で表示

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


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

  ソースで遊ぶ

前回表示したのは、シンプルに四角でした。こいつを以下のようにしてみます。

1.色を色々と変えてみる

色を決めているであろう、ソースコードは下の部分になります。

DummtGame#init()

       // 追記 2018/10/27
        float[] colors = new float[] {
        	    0.5f, 0.0f, 0.0f, // T01
        	    0.0f, 0.5f, 0.0f, // T02
        	    0.0f, 0.0f, 0.5f, // T03
        	    0.0f, 0.5f, 0.5f,}; // T04

これのT01行の値(「0.5f, 0.0f, 0.0f,」)を変更してみます。

「0.0f, 0.0f, 0.0f,」

「0.0f, 0.5f, 0.0f,」

「0.0f, 0.0f, 0.5f,」

どうやら「0.0f」は黒「0.5f」はRGBの3つ並んだうちの色を出すようです。

→「0.0f, 0.0f, 0.0f,」黒、「0.5f, 0.0f, 0.0f,」赤、「0.0f, 0.5f, 0.0f,」緑、「0.0f, 0.0f, 0.5f,」青

逆に1.0fの値は白になるだろうか?

「1.0f(R), 0.0f(G), 0.0f(B),」は左上が白くなるであろうと仮説を立てます。

<実行結果>

明るい赤でした。。。でも上記の配列はRGBの順番でそれぞれの色の強さを示していることがわかりました。

次は二段目、T02行の値(「0.0f, 0.5f, 0.0f,」)を変更してみます。T01の行と同様に値を変えていきます。

「0.5f, 0.0f, 0.0f,」

「0.5f, 0.0f, 0.0f,」

「0.0f, 0.0f, 0.5f,」

ここまでやって、はっきりしました。

 

       // 追記 2018/10/27
        float[] colors = new float[] {
        	    0.5f, 0.0f, 0.0f, // T01:左上(赤)
        	    0.0f, 0.5f, 0.0f, // T02:左下(緑)
        	    0.0f, 0.0f, 0.5f, // T03:右下(青)
        	    0.8f, 0.8f, 0.0f,}; // T04:(黄)

 

こんな感じで、color部分に関しては理解できました。

次回

今度は、positionをいじって遊ぼうと思います。

関連ページ一覧

Java 3DGame LWJGL GitBook chapter5-2〜レンダリング詳細〜

<開発準備>

Java Install Eclipse〜開発ツールのインストール〜

<LWJGLのGitBokに関して>

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

<Java Basic>

  1. Java Basic Level 1 〜Hello Java〜
  2. Java Basic Level2 〜Arithmetic Calculate〜
  3. Java Basic Level3 〜About String class〜
  4. Java Basic Level 4〜Boolean〜
  5. Java Basic Level 5〜If Statement〜
  6. Java Basic Summary from Level1 to 5
  7. Java Basic Level 6 〜Traning of If statement〜
  8. Java Basic Level8 〜How to use for statement〜
  9. Java Basic Level 8.5 〜Array〜
  10. Java Basic Level 8.5 〜Array〜
  11. Java Basic Level 10 〜While statement 〜
  12. Java Basic Swing〜オブジェクト指向〜
  13. Java Basic Swing Level 2〜オブジェクト指向2〜