プログラミング

ゼロからのOS自作入門をやってみる (1)

ゼロからのOS自作入門を実際に手元で試してみました。ステップが多いので何回かに分けてやってみようと思っています。 環境の準備 普段使いの環境が Windows でなるべく環境をクリーンに保ちたかったため、 Docker を活用した DevContainer 環境で始めることにしました。既にこのコンテナを用意してくれている方がいらっしゃるので、ありがたく使わせ...
プログラミング

ImGui での文字滲みで確認すること

ImGui を使おうと組み込んで、以下の図に示すような文字の滲み・ぼけの症状に出遭ったときに確認するべきことを記載しておきます。なお、ImGuiを通常の組込をした場合には、このような状態になりません。 確認すべきこと 描画対象の解像度が正しく合っているか、これを確認しましょう。 上記の画像は、 DirectX のレンダーターゲットのサイズとウィンドウのクライ...
日記

ドッキングウィンドウ (Visual Studio) でのクラッシュ

Visual Studio 2019 でウィンドウを再ドッキングしようとしてクラッシュする事案に出遭いました。 以下の記事を見て、自分の Windows バージョンが 2004 だったため大丈夫だろうと考えていたのですが、クラッシュに出遭いました。クラッシュしている Visual Studio は 2019 バージョン 16.8.3 です。ちょっと古いですね...
DirectX

32ビットアプリでは DXR は使えない?

DirectX Raytracing (DXR) のコードをゼロから書き始めて、気付いた点になります。 32bit アプリ (x86 ビルド設定) で以下のコードを実行したら、DXR をサポートしていないと返ってきました。 hr = D3D12CreateDevice(nullptr, D3D_FEATURE_LEVEL_11_0, IID_PPV_ARGS...
DirectX

DXR でスキニング対応をする (2)

前回は DXR におけるスキニングの実装の流れ(コンピュートシェーダー版) を軽く紹介しました。今回はその実装について踏み込んでいきます。 バッファの準備 コンピュートシェーダーによるスキニングによる頂点変形では、変形処理前の頂点列と変形後の頂点列の2つのバッファが必要になります。従来のレンダリングパイプラインの場合では変形前のバッファのみで済みましたが、今...
DirectX

DXR でスキニングを対応する (1)

DirectX Raytracing でモデル(3D形状)を描画できるようになると、次にキャラクターを出したくなります。このキャラクターというのが多くの場合スキニングモデル(エンベロープモデル)で作られているので、これに対応する必要が出てきます。 スキニングについて 各関節に見立てたボーンが動くことで、それによる頂点変形を施して描画する、という処理は、従来の...
プログラミング

現代版の「OS自作入門」本が出るらしい

まだ買うことができる「30日でできる!OS自作入門」という本があります。自分もちょっと昔にこの本を読んで、「あぁこうやってOSの無い世界で動くコードを作っていくのか」と勉強になりました。そして、普段は気にしないOSの裏側を見せてくれるような気がして、面白かったと思います。また自作入門とあるだけあって、簡単にできるんだなと感じることができました。実際に使えるも...
プログラミング

Azure Container Instances で簡単デプロイ (2)

前回 Azure Container Instances にデプロイするまでをトライしました。ステートレスなコンテナならば十分だったりしたのですが、やはりデータを保持したいのでデータベースをコンテナで用意してみることにしました。 Azure のマネージドなデータベースのサービスを使う方法も当然あります。むしろ自身のメンテナンスコストを下げていくには積極的に使...
サーバー構築

Azure Container Instances で簡単デプロイ

最近はコンテナを動かす基盤として、 AWS Fargate や ECS, GCP の GCE などありますが、一番簡単にコンテナをデプロイして動かすまでが出来ると思った Azure Container Instances を使ってみることにしました。 今回の前提条件として、動作させるサービス群は docker-compose.yml を用いて複数のコンテナが...
プログラミング

CPPRESTSDK について

C++ で REST API を触るときに簡単にできるものがないかな、と探してたどり着いたのが CPPRESTSDK でした。これは Microsoft が GitHub で公開しています。 この記事を書いている時点ではバージョンは 2.10.17 で、2021年に入ってとりあえず更新もあり、まだ活きてはいるプロダクトと考えています。 対応プラットフォーム ...