プログラミング シェーダーの要素アライメントの謎 シェーダーコードの作成で、よく躓きがちなのはバッファの要素のアライメントがずれる、という点でしょう。たとえばユニフォームバッファで要素を追加して、C++側とGLSL側、他方でその修正を忘れるとすぐにおかしな状態に突入します。これはまだ気付け... 2024.11.09 プログラミング
プログラミング RenderDocでシェーダーデバッグ (Vulkan) シェーダーのデバッグはなかなか大変です。色情報を出力して目視確認というのは基本ですが、ソースコードレベルでステップ実行したいこともあります。 今回 RenderDoc で Vulkan 向けのシェーダーをデバッグできそうだったので紹介します... 2024.10.14 プログラミング
プログラミング RaspberryPiで新しいMesa3Dを使う 先日 Raspberry Pi にも VK_KHR_dynamic_rendering が使えるようになるというニュースがありました。みたところ、Mesa 24.1 に含まれる V3DV ドライバで対応とのことです。しかし、早く試してみたい... 2024.03.30 プログラミング
プログラミング RenderDoc GPUカウンター RenderDoc で GPU カウンター(ハードウェアカウンタ-) の値を見ることができます。NVIDIA GPUを使用する場合では、準備が必要なので、その手順を説明します。準備NVIDIA GPUを使う場合、GPUカウンタ-へのアクセス... 2024.01.08 プログラミング
プログラミング リモートで RenderDoc を使う RenderDoc はグラフィックスのデバッグ支援ツールです。オープンソースとして開発されており、多くのグラフィックスAPIに対応しています。OpenGL や DirectX11、DirectX12 や Vulkan などを対象として使える... 2024.01.01 プログラミング
プログラミング VK_EXT_full_screen_exclusiveを使う はじめにVulkanにはVK_EXT_full_screen_exclusive拡張機能というものがあり、これを使うとコンポジタを迂回しての描画が可能となります。この拡張機能が提案されたのが 2019年くらいだったので、今更ではありますが、... 2023.10.04 プログラミング
プログラミング DirectXのリソース解放忘れを調査するには はじめにDirectXのデバッグ機能には、生成したリソースの解放漏れをチェックするというものが含まれています。有効にするとデバッグ実行後に、Visual Studio の出力ウィンドウによくわからないテキストが出てくるのを見たことがある人も... 2023.09.30 プログラミング
プログラミング Android Studio + Emulator で OpenGL ES アプリを動かす方法 2022年現在において、 Android Studio に付属する Android Emulator で OpenGL ES 2.0を使用したものであっても動作するようになっています。昔はエミュレーター上で、そのようなアプリを動かすことがで... 2022.11.05 プログラミング
プログラミング GetCopyableFootprints が返すメモリサイズについて DirectX12 の GetCopyableFootprints メソッドが返すトータルメモリサイズについて、気になったことがあったのでメモとして記載しています。不具合の話ではなく、しっかりしている点で感心した話です。GetCopyabl... 2022.10.01 プログラミング
プログラミング assimp を使って PMX ファイルを読み込む assimp を使って、自作のプログラムで PMX ファイルを読み込み描画をしてみたいと思います。PMX ファイルの仕様は公開されているので、全てを自力で読むのも可能ですが、assimp を使うと楽に読み込みが出来るのではないか、と期待して... 2022.08.20 プログラミング
プログラミング DirectX12 描画フレーム構築、実行、レイテンシ DirectX12 では描画コマンドを作成して画面表示までの様々な処理を自前で実装することになり、とても大変です。その中でも描画コマンドを構築した後、画面に表示されるまで、という箇所の理解は大変だと私は感じました。私自身とても不思議に思って... 2022.08.04 プログラミング
プログラミング 視差マッピング (Parallax Mapping) の実装 DirectX で視差マッピング (Parallax Mapping) の実装をしました。自分の理解の内容を記録しておくと共に、Parallax Occlusion Mapping (POM) の情報は多くあるのに Parallax Map... 2022.07.16 プログラミング
プログラミング VK_EXT_inline_uniform_block を使ってみる Vulkan 1.3 のコア機能に格上げされた VK_EXT_inline_uniform_block 機能拡張ですが、これってどのようなもの?と個人的に気になったので、少し調べて&試してみました。結論として、これは便利に使えそうな場面ある... 2022.05.28 プログラミング
プログラミング ReSTIR の実装 NVIDIA から公開されている ReSTIR アルゴリズムを実装してみました。限定的なところまでしかやっていないのですが、収束が速いことは確認できました。ReSTIRReSTIR アルゴリズムは 2020 年に NVIDIA から発表され... 2022.05.19 プログラミング
プログラミング Vulkan 1.3 でコアに昇格した拡張機能の紹介 Vulkan 1.3 が 2022/01 に発表され、各種グラフィックスドライバの対応も完了したので現在は利用可能な状況にあります。さて、今回コアに昇格した拡張機能は23個もあり、 Vulkan 1.3 対応の状況ならば使用可能となりました... 2022.04.07 プログラミング