C++にはHLSLコードと同じような構文でベクトルや行列演算を行えるオープンソースライブラリのhlslppというものがあります。
今回はhlslppのセットアップ方法を紹介します。
プロジェクトの作成などの説明は省き、あらかじめC++のプロジェクトがあるものとします。
環境
- VisualStudio2022
- C++11以降のコンパイラ
手順1:ダウンロード
以下のリンクから、クローンかzipのダウンロードを行ってください。
zipのダウンロードを行った場合は解凍も行っておいてください。
手順2:プロジェクトのディレクトリに入れる
先程ダウンロードしたディレクトリの配下にあるhlslpp-masterディレクトリを、プロジェクトに追加します。
今回私はソリューションと同じ階層に入れました。

手順3:パスを追加する
VisualStudioを開いて、プロジェクト->プロパティをクリックします。

プロパティページが開くので、ページ左の構成プロパティからC/C++をクリック。
ページ右側の追加のインクルードディレクトリの∨-><編集...>をクリックします。

hlslppのincludeディレクトリを相対パスで入力してOKをクリックします。
私の手順では$(SolutionDir)hlslpp-master\includeが相対パスとなります。
ソリューション(.sln)からの相対パスの場合は$(SolutionDir)を、プロジェクト(.vcxproj)からの相対パスを指定する場合は$(ProjectDir)でパスを指定してください。
使用できるか確認
上記の操作によってセットアップが完了しました。
正しく動くか確認をしてみましょう。
#include <iostream>
#include "hlsl++.h" // 全機能をインクルード
int main() {
hlslpp::float3 vector = hlslpp::float3(1.0f, 2.0f, 3.0f); // float3型のベクトルを作成
printf_s("x:%f\n",static_cast<float>(vector.x)); //確認出力
system("pause");
return 0;
}
x:1.000000
続行するには何かキーを押してください . . .
コンパイルエラーが出なければ正しくセットアップが完了しています。
総括
-
hlslppを使用することで、HLSLコードと同じような構文でベクトルや行列演算を扱うことが出来る。 - パスを指定して
includeを行うだけで簡単にセットアップを行うことが可能。
