Javaで3Dゲームプログラミング※(第0回)
(※ただしOpenGLなどGL系の支援は使用しない。)
第0回としましたが、第1回があるかは謎です(笑)
はじめに
OpenGLとか勉強していると、ややこしい行列とかがバババーッと出てきて知らない間にうまい具合に表示されておーすごいって感じなんですがイマイチ直感的じゃない気がしていました。
数学的に正しいのはわかるんだけど手を動かして実際に計算してみればわかるんだけど、それを再確認することって大切だと思います。OpenGLをそのまま使ってしまうのは完全にブラックボックスなわけで計算している実感がわきませんし
というわけで、これからOpenGLを使用せずにJavaで3Dレンダリングを用いたゲームプログラミングについて記事を書いていこうと思います。
なぜゲームプログラミングなのか
ゲームプログラミングって色々と学べることがあるんじゃないかと思います。例えば、
などなど。最近はCPUパワーで押せばほとんど書けてしまうので意識しないとあんまり使う機会がなくて微妙かもしれませんが。クオリティを上げていけばわかりやすく効率的な書き方が求められていくと思うので、こういった勉強も無駄にはならないと思います。
現状
現状としてはベースの部分は割としっかり実装できてきて、シェーディングやテクスチャについても考慮したレンダリングができています。ただ、ハードウェア支援を受けていないCPUのシングルスレッド処理ですべて書いているため解像度を上げると途端にFPSが落ちてしまいます…
それを改善すべくあーだこーだ実装してみているんですがあまり改善する兆しは見えません。というかCPU100%に張り付いていないのにFPSが落ちるってどういうこっちゃ(CPU以外がボトルネックになっている?!)
というわけで
現状あまり人様に見せられるような仕上がりにはなっておりません…
とりあえず、次回から行列演算についてちょっと書くぞ~~~