VRエンジン作成日記

ひたすらVRエンジンを作っていきます

バンプマッピングを実装してみた

バンプマッピングを実装してみた。考え方については分かっていたものの、具体的にコードで考えるのは難しかった。下の画像の地面の部分と、カプセルのオブジェクトから文字が飛び出しているように見えるところがバンプマッピングの処理。 次のサイトを参考に…

視錐台カリングを実装してみた

今日は視錐台カリングを実装した。実装したけど、考え方をきちんと理解しているわけではない。次のサイトに書かれている内容を参考にさせて頂いて、なんとなくで書いた。 edom18.hateblo.jp 描画オブジェクトが多い場合は違いが分かりそうだけど、今のところ…

親子関係にあるオブジェクトの座標2

シャドウマップがうまくいっていないことも気になってるんだけど、そもそもフォンシェーディングも綺麗にできていなかった。さらに考えると、親子関係のオブジェクトの位置関係もUnityと見比べると違う結果になっていた。 親子関係のオブジェクトは、 ・親オ…

シャドウマップを実装しようとした

シャドウマップを使って影を描く処理を実装しようとしたけど、難しくて今日中に終えることができなかった。 毎日1個ペースで機能を増やそうと思ってたけど、何日か考える必要がある箇所がこれからもたびたび出てきそうな予感。以前に考えたことがある内容で…

RenderTextureの追加

今日はRenderTextureを追加した。いつものことながら、今のところ雑に追加したままになっている。 地面に敷いた、四角形の領域でRenderTextureを使用している。この機能があると、他のカメラでレンダリングした映像を再度画面に配置して、2次元のテクスチャ…

パーティクルシステムを作り始めた

パーティクルシステムというのは、小さな点が次々に飛び出してくるような機能。 雪が降っているシーン、星が奥から飛び出してきて光速移動しているように見えるシーン、シューティングゲームの爆発効果とかで使うことができる。この機能があると、様々な用途…

objフォーマットの対応

objファイルの読み込み機能を修正した。objファイルの読み込み機能は数週間前に作ってはいたんだけど、頂点データくらいしか読み込めていなかった。今回は三角形のインデックスと法線、UVとテクスチャを読み込むようにした。objファイルが正常に読み込めるよ…

立体視用の機能を追加

ようやくVRっぽい機能を1つ追加できた。 立体映像の表示方法にはいくつか種類がある。基本的にはどれも、左右の目で別々の画像を表示する構成になっている。例えば次のような種類がある。 ・サイドバイサイド (side by side) ・トップアンドボトム (top and…

シェーダ関連機能の追加

今日はシェーダに関連する機能を追加していた。昨日書いたように、シェーダ言語では設定しきれないけどレンダリングに必要な項目がいくつかある。UnityではShaderLabのPassブロックの中で、レンダリングステートとして設定できるようになっている。この辺り…

Material.renderQueueの追加

今日は細々と気になっていたことを修正した。落ち着いて衝突判定の処理を書き進めていきたいところだけど、積もってきた未処理の作業を減らしておかないと落ち着いて考えることができなさそうだった。 今日やったことは主にMaterial.renderQueueの部分。rend…

FPSの表示機能を追加した

今日はFPS(画面描画回数の単位。フレーム毎秒)の表示機能を追加していた。画面の右上あたりでデバッグ情報とかを表示する窓みたいなものなんだけど。ゲーム開発者の間では一般的にStatsというらしい。以前、Flashでコンテンツを作っている時に、よく誰かが実…

親子関係にあるオブジェクトの座標

今日は画面に表示されるオブジェクトの親子関係の座標についての実装を変更していた。今まではObject3Dというクラスに座標を格納していて、positionというメンバ変数に保存していた。座標を変えたい場合は次のように書く。 obj.position.x = 10; こうすると…

とりあえずの目標

Unityほど便利でないとしても、ひとまず動くようにしたい。あと、ライブラリだけじゃなくてグラフィカルなエディタもセットで作りたい。そこまでいくと1人でできないかもしれないけど、できるだけ目標に向けて作っていく予定。 今日はゲームエンジンアーキ…

猛烈にVRエンジンが作りたくなった

最近VTuberとか流行ってるし、時代はVRだと思いこんでVRエンジンを作ることにした。ちょうど数学の勉強もしたかったので、幾何を覚えたら得をするのではないかという目論見もある。 何から手をつけていいやら分からないので、とりあえず基礎からしっかり覚え…