音ゲーの出来ない雑魚のブログ

LWJGLとかのことをいうブログ

「moreover lwjgl」 14  Phongなひかりとその最適化

このまえは拡散光だけで、艶も環境光もなかったので、リアル感がありませんでした。そこで、今回はPhongシェーディングというものを使って、実装したいと思います。

Phongシェーディングとは、光による物体の色の変化を「環境光(Ambient)」「拡散光(Diffuse)」「反射光(Specular)」にわけて考え、それらを1ピクセルずつ(つまりフラグメントシェーダで)計算するというものです。
上の3つの光は、

続きを読む

「moreover lwjgl」 13 世界をDiffuseな光で照らす(+アンチエイリアシング)

今までのコードでは2Dしかやっていなかったので、1次元上げて3Dの立方体を使います。
また、今までやったこと(テクスチャ、シェーダ)を使って、3Dっぽい感じの物体を表示したいと思います。
そのために今回作るのは、です。

Diffuseは「拡散光」のことで、物体が光をどれほど吸収し、拡散的に反射するかというものです。つまり、物体に当たっているところが明るいとか、光に垂直なところが一番明るいとかそういう光のことです。「反射光」とは違います。

続きを読む

「moreover lwjgl」 12 oggを流す

速報?ですが、LWJGLのバージョン3.0.0が6/3に正式にリリースされていました。VulkanやらNanoVGやらだけでなく、が追加されており、ただのラッパーではなくなってきているのかな?という感じです。

それでは本題…いままでのOpenGLの流れをぶっちぎってしまって急にOpenALに入って変な感じになってしまいますが…

OpenALクリエイティブテクノロジーというところが作った音声に関するオープンライセンスなライブラリーです。

続きを読む

「moreover lwjgl」 11 現代的な行列変換 ~JOMLを使って~

タイトル前回の丸パクリですね

今回は、行列を使って物体を動かしてみます。行列による物体の動き(行列変換)については、前に(適当に)まとめた記事があるので、参考にしてもらえると嬉しいです。

cakkby.hatenablog.jp


今回は、物体を動かす行列をGLSLに受け取って頂点座標を変換してもらいます。その時に行列はJavaプログラムの方で先に計算しておいたものを渡すのですが、平行移動などの簡単な計算はよくても、任意軸周りの回転や透視投影などはとても難しいので、そのような計算をしてくれるライブラリーを使ってみたいと思います。
それが、”JOML”です。

続きを読む