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
を行うだけで簡単にセットアップを行うことが可能。