UnityでWeb用のビルドを試す
UnityでWeb向けのビルドをテストしています。
デフォルトはWebGLだと思いますが、後で、WebGPUも試しておきたいです。
UnityでWeb向けのビルドをテストしています。
デフォルトはWebGLだと思いますが、後で、WebGPUも試しておきたいです。
前回のUnityに続いて、今回は、UE5のシェーダーのコードを確認したいと思います。 UE5 はソースコードをすべて読むことができますので、まず、github からソースコードを取得します。
手順としては以下の通り。
まず、現時点のUnityの最新バージョンは、6000.0.40f1 でしたので、こちらを使ってシェーダーのコードを調べてみます。
Unityには描画パイプラインが、 Build-in 、 URP 、 HDRP の3種類あります。現在、主に使われているのは URP だと思いますので、URP を使ってプロジェクトを作ります。まず、シーンの床面として、Planeを配置して、Sphereを1つその上に起きます。そして、Materialを新規作成し、BaseMapのカラーを赤色を設定して、Sphereに適用するとこのような画面になります。
久々のブログですが、今日は以下の本を読みつつ、PBRについて調べたので、それをまとめたいと思います。
3DCGにおける質感を表す関数、Bidirectional Scattering Distribution Function(BSDF)について著名なものを取り上げ、レイトレーシングにおける実装法について解説している本です 「Lambert BRDF」「Phong」「Blinn-Phong」「完全鏡面、完全屈折」「Torrance-Sparrow」「Cook-Torrance」「GGX」「Disney BRDF」について取り上げています。
Direct3Dでプログラムを書くといつも気になるのが左手系であること。 私は最初に3DCGを学んだのがOpenGLであったこともあり、右手系に慣れていたし、学生の頃に学んだ数学も右手系であったはず。 あと、ゲーム機のGLライクなAPIも右手系が多かったと思います。 なのに、Direct3Dが左手系を採用したことで、複雑な3DCGがさらに複雑になったと思います。
シンプルなシェーダーでも正しく動いているのかデバッグするのは難しいです。 最初はPIXを使ってデバッグをしようと思い試してみたのですが、コンスタントバッファの中身は見えても、VertexShaderの頂点データが見えなくて、 設定が悪いのだろうかと思いつつ、ChatGPT先生に聞いてみると、困ったときはRenderDocを使え、という回答だったので、半信半疑でRenderDocを使うことにしました。
Direct3D12で任意のメッシュを描画してみようと思い、まず、メッシュデータを作りました。
仕事ではMayaを使っていますが、今回は、Blenderでデータを作ってみます。 初めてなので、Kindle Unlimitedでこちらの書籍を読みながらロケットのメッシュを作りました。
前回、HDRのディスプレイで、R10G10B10A2のフォーマットを描画することを試して、 とりあえず、R8G8B8A8よりも明るく表示されることは確認しました。
では、どのように調整することで、SDRとHDRの見た目を近づけることができるのか、試したいと思います。
前回に続いて、ディスプレイ関連です。
前回も書きましたが、最近買ったこのディスプレイは、HDR600に対応しています。
Dell AW2724DM 27インチ Alienware ゲーミングモニター
HDR600の説明は以下の記事などが分かりやすいです。
前回までに、フルスクリーンモードで自由にリフレッシュレートを変更できるようになりましたので、 今回は、可変リフレッシュレートの動作を確認したいと思います。
私が使っているディスプレイは2台ありまして、1台は最近買ったこのディスプレイです。