グラフィックス

スポンサーリンク
プログラミング

IBLによる間接光を考慮したレンダリングの流れ (未完

前回に続き、単純なランバート+フォンシェーディングからステップアップして、PBR のレンダリング方法を勉強しています。直接光を対象とした計算については、所定の数式や各種テクスチャマップを使えば比較的スムーズに正しいとされる描画が実現できます...
プログラミング

今時のレンダリングに近づけるために

そろそろグラフィックスAPIのレイヤーだけでなく、今時の見た目が描画できるように「レンダリング」をやっていかないと思っていました。昔々は、DirectX や OpenGLを使って、簡単なシェーダーを用意して、ランバートライティングやフォンシ...
プログラミング

シェーダーの要素アライメントの謎

シェーダーコードの作成で、よく躓きがちなのはバッファの要素のアライメントがずれる、という点でしょう。たとえばユニフォームバッファで要素を追加して、C++側とGLSL側、他方でその修正を忘れるとすぐにおかしな状態に突入します。これはまだ気付け...
プログラミング

RenderDocでシェーダーデバッグ (Vulkan)

シェーダーのデバッグはなかなか大変です。色情報を出力して目視確認というのは基本ですが、ソースコードレベルでステップ実行したいこともあります。 今回 RenderDoc で Vulkan 向けのシェーダーをデバッグできそうだったので紹介します...
プログラミング

RaspberryPiで新しいMesa3Dを使う

先日 Raspberry Pi にも VK_KHR_dynamic_rendering が使えるようになるというニュースがありました。みたところ、Mesa 24.1 に含まれる V3DV ドライバで対応とのことです。しかし、早く試してみたい...
プログラミング

RenderDoc GPUカウンター

RenderDoc で GPU カウンター(ハードウェアカウンタ-) の値を見ることができます。NVIDIA GPUを使用する場合では、準備が必要なので、その手順を説明します。準備NVIDIA GPUを使う場合、GPUカウンタ-へのアクセス...
プログラミング

リモートで RenderDoc を使う

RenderDoc はグラフィックスのデバッグ支援ツールです。オープンソースとして開発されており、多くのグラフィックスAPIに対応しています。OpenGL や DirectX11、DirectX12 や Vulkan などを対象として使える...
プログラミング

VK_EXT_full_screen_exclusiveを使う

はじめにVulkanにはVK_EXT_full_screen_exclusive拡張機能というものがあり、これを使うとコンポジタを迂回しての描画が可能となります。この拡張機能が提案されたのが 2019年くらいだったので、今更ではありますが、...
プログラミング

DirectXのリソース解放忘れを調査するには

はじめにDirectXのデバッグ機能には、生成したリソースの解放漏れをチェックするというものが含まれています。有効にするとデバッグ実行後に、Visual Studio の出力ウィンドウによくわからないテキストが出てくるのを見たことがある人も...
プログラミング

Android Studio + Emulator で OpenGL ES アプリを動かす方法

2022年現在において、 Android Studio に付属する Android Emulator で OpenGL ES 2.0を使用したものであっても動作するようになっています。昔はエミュレーター上で、そのようなアプリを動かすことがで...
プログラミング

GetCopyableFootprints が返すメモリサイズについて

DirectX12 の GetCopyableFootprints メソッドが返すトータルメモリサイズについて、気になったことがあったのでメモとして記載しています。不具合の話ではなく、しっかりしている点で感心した話です。GetCopyabl...
プログラミング

assimp を使って PMX ファイルを読み込む

assimp を使って、自作のプログラムで PMX ファイルを読み込み描画をしてみたいと思います。PMX ファイルの仕様は公開されているので、全てを自力で読むのも可能ですが、assimp を使うと楽に読み込みが出来るのではないか、と期待して...
プログラミング

DirectX12 描画フレーム構築、実行、レイテンシ

DirectX12 では描画コマンドを作成して画面表示までの様々な処理を自前で実装することになり、とても大変です。その中でも描画コマンドを構築した後、画面に表示されるまで、という箇所の理解は大変だと私は感じました。私自身とても不思議に思って...
プログラミング

視差マッピング (Parallax Mapping) の実装

DirectX で視差マッピング (Parallax Mapping) の実装をしました。自分の理解の内容を記録しておくと共に、Parallax Occlusion Mapping (POM) の情報は多くあるのに Parallax Map...
プログラミング

VK_EXT_inline_uniform_block を使ってみる

Vulkan 1.3 のコア機能に格上げされた VK_EXT_inline_uniform_block 機能拡張ですが、これってどのようなもの?と個人的に気になったので、少し調べて&試してみました。結論として、これは便利に使えそうな場面ある...
スポンサーリンク