プログラミング

プログラミング

Windows コンテナで VC++ プロジェクトのビルド環境を作る

Windows コンテナ(Windows Container) で Visual C++ プロジェクトのビルド環境を構成してみました。Windows コンテナはデスクトップ環境を持つわけではないので、 Visual Studio をインストールして IDE ありで使うことはできません。しかし、 VS Build Tools をインストールして、 .sln や...
プログラミング

.Net Core3.1(WPF) + ネイティブDLL でデバッグできない

.Net Core でもバージョン 3.0 以降で WPF を使用した GUI アプリケーションを作ることが出来るようになりました。これと C/C++ で作成したネイティブの DLL を組み合わせてアプリケーションを作ろうとしたのですが、今回のタイトルにある課題に出遭いました。 実行は出来る C# 部分のデバッグ実行は問題なく出来ます。また、 DLL 部分の...
サーバー構築

VSCode – Remote Containers によるFlask 開発環境

Visual Studio Code (VSCode) の Remote Containers 機能を使って、 Python の Flask を利用した開発環境を構築してみたときの記録です。Windows 環境でも Flask は動作しますが、デプロイ先が Linux サーバーやコンテナ内だったりするので、それらの影響も考慮すると開発時から Linux 環境...
Hyper-V

Windows コンテナを動かしてみる

Windows10 で Docker コンテナ(Windowsコンテナ) で GPU が使えるようになったという話をみて、試してみようと思いつつなかなか実行できていなかったのですが、今回動作させるまでやれたので、その記録です。 使用している環境は Windows10 2004 バージョン、 WDDM 2.7 対応のグラフィックスドライバです。また以前の記事で...
プログラミング

RayTracing In One Weekend をやってみる(2)

ディフューズマテリアル シンプルなディフューズマテリアル 光を放出しないオブジェクトは、単に周囲の色を受け、固有の色でそれを変調します。表面で反射した光はランダムな方向になります。たとえば2つのディフューズマテリアルの間に光を送り込むと、反射した光は全く別の方向に向くことになります。 ある曲面のヒットポイント p に接する単位半径の球体がある。ヒットポイント...
プログラミング

RayTracing in One Weekend をやってみる(1)

ここ最近、DXR (DirectX RayTracing) を触っていましたが、原点に返って勉強してみることにしました。そこで Ray Tracing In One Weekend の内容をやってみることにしました。本家の内容を自分なりの意訳しつつやってみて、その内容をここに記載します。記載のコードは本家のものとは少し違っている部分がありますが、多くの部分で...
Vulkan

Raspberry Pi 4 で Vulkan を試す

Raspberry Pi 4 で Vulkan API を用いた描画が出来るようになったと聞いたので早速試してみました。試すまでの手順を説明します。 Raspberry Pi の準備 Raspberry Pi OS (32bit)をダウンロードして書き込みます。これについては手順は各所で語られているので割愛します。 まずはパッケージリスト更新します。更新でき...
DirectX

定数バッファはバッファリングしよう in DirectX12

当たり前の話ではあるのですが、たまに「バッファリング気にせずにコードが書かれているのでは?」と感じることがあったので本記事を書くことにしました。 バッファリングしないとどうなるか バックバッファ分の定数バッファを用意して、描画用と更新用のデータがかぶらないようにする必要があります。と、よく説明されているのですが、実際にどうなるかの撮影に成功したので貼っておき...
DirectX

DirectXShaderCompiler 使用時のシェーダーリフレクション

シェーダーコードのリフレクションを皆さんは使用していますか?DirectXで長らく使われてきた D3DCompiler (fxc) を用いて作られたシェーダーバイナリについては、 D3DReflect 関数を用いてシェーダーリフレクションにアクセス出来ます。 近年は徐々に fxc から dxc へ、DirectX Shader Compiler を使用する場...
DirectX

Vulkan でも IDXGISwapChain を使う

今回の記事は実験的なネタです。 DirectX では描画結果を画面に反映するのに IDXGISwapChain を使用します。一方 Vulkan では VkSwapchainKHR を生成して描画結果を画面に反映します。それぞれのAPIがそれぞれの SwapChain を使うように出来ているのですが、ここで敢えて Vulkan の描画結果を DirectXの...