超雑訳 Weighted Blended Order-Independent Transparency

どうも、こんちにわ。Pocolです。新年最初の投稿です。
今日は,
[McGuire 2013] Morgan McGuire, Louis Bavoil, “Weighted Blended Order-Independent Transparency”, Journal of Computer Graphics Techniques, Vol.2, No.2, 2013
を読んでみようと思います。
いつもながら、誤字・誤訳があるかと思いますので,ご指摘頂ける場合は正しい翻訳例と共に指摘して頂けるとありがたいです。

(さらに…)

premake5覚書

こんねね~。Pocolです。
premake5の覚書をしておこうと思います。

XBox系のプラットフォームの場合は,Billzard社がpremake-consolesというGithubリポジトリを公開しているので,これを使えばよさそうです。
https://github.com/Blizzard/premake-consoles

で,青いプラットフォームの場合は,これまたBillzard社がソースコードをフォーラムにて公開しているので,それを使えばいいです。

問題はこれらが使えない場合です。既にpremake作っちゃっているやつとか,これから出てくる新規プラットフォームの場合とかですね。
自力で実装する必要があります。ほとんどの場合はSDKがC++だと思われるので,C++のコンパイルは問題なく対応できるでしょう。
じゃ、何が問題か?
そうです。前回やったシェーダ設定ですね。恐らく問題になるでしょう。
SDKでVS拡張が提供されている場合は,プロジェクトファイルに記述すればいいので,premakeを拡張していけばいいです。

やり方としては,
https://github.com/premake/premake-core/blob/master/modules/vstudio/vs2010_vcxproj.lua
のFxCompileおよびfxCompileで記載されている箇所を参考にします。

premake用に公開するAPIは,
https://github.com/premake/premake-core/blob/master/modules/vstudio/_preload.lua
のshadertypeとか,shadermodel,shaderincludedirsあたりを参考にLuaに実装を付け足します。

先ほど言った、VS拡張が提供されている場合はこんな感じでいいのですが,じゃ、提供されていない場合はどうすればいいでしょうか?
残念ながら,自分で作るしかないですね。

作り方については,以前に書いた「カスタムビルドルール!」「Visual Studioと格闘中…。」の記事で紹介しているので,これを参考に実装すれば良いでしょう。

…ということでコンソールプラットフォーム用のpremakeのシェーダビルド対応について,覚書を書いてみました。
殆どの人には,全く役に立たないんですが,自分だけには役立つというしょうもない記事でした。

premake5でシェーダ設定する

こんこよー。Pocolです。

ちと分け合って,premake5でプロジェクトを作成する際に,シェーダのコンパイル設定を含めてしまいたいな~と思いました。
premake5からHLSLがサポートされているようなので,実際に書いてみました。
リポジトリは下記です。
https://github.com/ProjectAsura/premake_test

プロジェクトを生成するluaは下記のような感じで書きます。

local project_dir="project"
location(project_dir)

-- ソリューション名.
workspace "SampleSolution"
    -- 構成名.
    configurations { "Debug", "Develop", "Release" }

-- プロジェクト名.
project "SampleProject"

    kind "ConsoleApp"
    language "C++"

    -- 出力ディレクトリ.
    targetdir "bin/%{cfg.buildcfg}"

    -- インクルードディレクトリ.
    includedirs { "include/**" }
    shaderincludedirs { "$(ProjectDir)../res/shader" }

    -- 対称ファイル
    files { "**.h", "**.cpp", "**.hlsl", "**.hlsli" }

    -- シェーダモデルとエントリー名設定.
    shadermodel "6.5"
    shaderentry "main"

    -- ヘッダ変数名とヘッダーファイル名設定.
    shadervariablename "%%(Filename)"
    shaderheaderfileoutput "$(ProjectDir)../res/shader/Compiled/%%(Filename).inc"

    -- シェーダヘッダファイル設定.
    filter { "files:**.hlsli" }
        flags "ExcludeFromBuild"

    -- 頂点シェーダ設定.
    filter { "files:**_vs.hlsl" }
        shadertype "Vertex"

    -- ピクセルシェーダ設定.
    filter { "files:**_ps.hlsl" }
        shadertype "Pixel"

    -- コンピュートシェーダ設定.
    filter { "files:**_cs.hlsl" }
        shadertype "Compute"

    -- ジオメトリシェーダ設定.
    filter { "files:**_gs.hlsl" }
        shadertype "Geometry"

    -- ドメインシェーダ設定.
    filter { "files:**_ds.hlsl" }
        shadertype "Domain"

    -- ハルシェーダ設定.
    filter { "files:**_hs.hlsl" }
        shadertype "Hull"

    -- 増幅シェーダ設定.
    filter { "files:**_as.hlsl" }
        shadertype "Amplification"

    -- メッシュシェーダ設定.
    filter { "files:**_ms.hlsl" }
        shadertype "Mesh"

    -- 構成設定.
    filter { "configurations:Debug" }
        defines {"DEBUG"}
        shaderdefines {"DEBUG=1"}
        symbols "On"
    filter { "configurations:Develop" }
        defines {"NDEBUG"}
        shaderdefines {"NDEBUG=1"}
        optimize "On"
        symbols "On"
    filter { "configurations:Release" }
        defines {"NDEBUG"}
        shaderdefines {"NDEBUG=1"}
        optimize "On"

このluaファイルを使って,サンプルのリポジトリで下記のコマンドで,プロジェクトを生成します。

.\premake5.exe vs2022 --file=my_premake.lua

プロジェクトを生成すると projectフォルダが出来上がり,そこにソリューションファイルが作成されます。ソリューションファイルを開くと次の画像のような感じになります。

シェーダファイルのプロパティを見ると次のように設定されているはずです。

これで,シェーダのビルドが出来るようになるはずです。
下記のPremakeドキュメントに設定できる項目が記載されているので,より細かい設定をしたい方はドキュメントを参照すると良いと思います。

…ということで,premake5でのシェーダ設定方法について紹介してみました!

超雑訳 Improved Alpha Testing Using Hashed Sampling

皆さん待ったかね~。こんにちわ、Pocolです。
今日は,以前に読んだHashed Alpha Testingの後発論文である…
[Wyman 2017] Chris Wyman, Morgan McGuire, “Improved Alpha Testing Using Hashed Sampling”, IEEE Transactions on Visualization and Computer Graphics, Vol.25, Issue 2, pp.1309-1320, 2017.
を読んでみようと思います。
いつもながら誤字・誤訳があるかと思いますので,ご指摘頂ける場合は正しい翻訳例と共に指摘して頂けるとありがたいです。
また,セクション1~5は”Hashed Alpha Testing”とほぼ内容が被りますので,和訳を省略してセクション6から始めることにします。

(さらに…)

超雑訳 Hashed Alpha Testing

こんばんきーつね。ども、Pocolです。
今日は…
[Wyman 2017] Chris Wyman, Morgan McGuire, “Hashed Alpha Testing”, I3D 2017, No.7, pp.1-9, 2017.
を読んでみようと思います。
いつもながら、誤字・誤訳があるかと思いますので,ご指摘いただける場合は正しい翻訳例と共に指摘していただけると大変助かります。
(さらに…)

超雑訳 HypeHype Mobile Rendering Architecture

こんねね~。Pocolです。
今日は…
[Aaltonen 2023] Sebastian Aaltonen, “HypeHype Mobile Rendering Architecture”, SIGGRAPH 2023 Advances in Real-Time Rendering in Games course.
を読んでみようと思います。
いつもながら誤字・誤訳があるかと思いますので,ご指摘頂ける場合は正しい翻訳例と共に指摘して頂けるとありがたいです。
特に断りが無い限り,図は[Aaltonen 2023]からの引用となります。予めご認識ください。

(さらに…)

超雑訳 Fitted Virtual Shadow Maps

こんこよ~。Pocolです。
今日は…
[Giegl 2007] Markus Giegl, Michael Wimmer, “Fitted Virtual Shadow Maps”, Proceeding of Graphics Interface 2007, pp.159-168.
いつもながら、誤字・誤訳があるかと思いますので,ご指摘頂ける場合は正しい翻訳例と共に指摘して頂けるとありがたいです。

(さらに…)

超雑訳 Resolution Estimation for Shadow Mapping

こんねね~。Pocolです。
今日は…
[Ferko 2013] Michal Ferko, “Resolution Estimation for Shadow Mapping”, EG UK Theory and Practice of Compute Graphics 2013.
を読んでみようと思います。
いつもながら、誤字・誤訳があるかと思いますので,ご指摘頂ける場合は正しい翻訳例と共に指摘して頂けるとありがたいです。
(さらに…)

超雑訳 Particle Transport and Image Synthesis

こんるる~。Pocolです。
今日は…
[Arvo 1990] James Arvo, David Kirk, “Particle Transport and Image Synthesis”, SIGGRAPH ’90: Proceedings of the 17th annual conference on Computer graphics and interactive techniques, Vol.24, No.4, pp.63-66, 1990.
を読んでみようと思います。
いつもながら誤字・誤訳があるかと思いますので,ご指摘頂ける場合は正しい翻訳例と共に指摘して頂けるとありがたいです。

(さらに…)