GLTF.Model.2024-07-01.17-00-15.mp4
Windowsを想定しています。 vcpkgをC:/dev/にインストールしてください。公式リポジトリに説明があります。 vcpkgを使ってglm,glfw3をインストールしてください。
macでもbrewを使ってglmとglfw3をインストールすることでmain1とmain2は動作させることができます。
assetフォルダを作りそこにgltfファイルを入れ、mainの中で読み込むファイル名を指定してください。model()の中にパスを指定してください。読み込む際にテクスチャがあることを前提としているのでテクスチャがない場合は読み込めません。
main 本リポジトリのメインコードです。
カメラから各ピクセルに対して一本だけレイを出します。レイとメッシュの交差点から光源方向にレイを飛ばします。遮るものがなければ明るさがでます。bvhを使っています。カメラを動かせます。本来であればマテリアルを設定して再帰的なサンプリングを行うべきでしょうが、未実装です。
main1~4はレガシーです。
main1 vertex shaderとfragment shaderを使って、gltfをそのまま描画するプログラムです。model.draw()を使って描画します。 main2 vertex shaderとfragment shaderを使って、gltfを描画するプログラムです。カラーは赤に設定しています。modelからトライアングルをすべて取ってきてvaoを作成し描画します。 main3 カメラからレイを飛ばして、オブジェクトと交差するかどうかを判定するプログラムです。bvhを使っています。カメラを動かせます。 main4 bvhを使わずに、すべてのトライアングルと交差判定を行うプログラムです。重いのでカメラは動かせません。