MikuMikuDayo
エフェクトリファレンス
|
よろずFX [詳解]
クラス | |
struct | YRZ::FXRendertargetBlendDesc |
D3D12_RENDER_TARGET_BLEND_DESCを参照 [詳解] | |
struct | YRZ::FXBlendDesc |
D3D12_BLEND_DESCを参照 [詳解] | |
struct | YRZ::FXRasterizerDesc |
D3D12_RASTERIZER_DESCを参照 [詳解] | |
struct | YRZ::FXDepthStencilOpDesc |
D3D12_DEPTH_STENCILOP_DESCを参照 [詳解] | |
struct | YRZ::FXDepthStencilDesc |
D3D12_DEPTH_STENCIL_DESCを参照 [詳解] | |
struct | YRZ::FXSlider |
入力ウィジェットについての設定 [詳解] | |
struct | YRZ::FXController |
コントローラの定義 HLSL側からどんな値をホストアプリケーションに要求するか? [詳解] | |
struct | YRZ::FXSize |
リソースや出力先のサイズを表す構造体 [詳解] | |
struct | YRZ::FXRes |
リソース [詳解] | |
struct | YRZ::FXTexture |
2Dテクスチャ。typeを省略すると型はformatから自動的に設定される [詳解] | |
struct | YRZ::FXTexture3D |
3Dテクスチャ。typeを省略すると型はformatから自動的に設定される [詳解] | |
struct | YRZ::FXBuffer |
1次元のバッファ。構造体の配列として用いることが出来る [詳解] | |
struct | YRZ::FXSampler |
D3D12_STATIC_SAMPLER_DESCを参照 [詳解] | |
struct | YRZ::FXRTV |
RTV[]に指定する要素 [詳解] | |
struct | YRZ::FXUAV |
UAV[]に指定する要素 [詳解] | |
struct | YRZ::FXDSV |
DSVに指定する要素 [詳解] | |
struct | YRZ::FXHitGroup |
ヒットグループの定義 [詳解] | |
struct | YRZ::FXInputElementDesc |
D3D12_INPUT_ELEMENT_DESCを参照 [詳解] | |
struct | YRZ::FXFunctionalPass |
struct | YRZ::FXPass |
パスを定義するための構造体 [詳解] | |
struct | YRZ::FXMatDescController |
struct | YRZ::FXExpr |
struct | YRZ::FXMatDesc |
struct | YRZ::FXMatDescStorage |
材質注釈についての設定 [詳解] | |
struct | YRZ::FXMatDescBackup |
struct | YRZ::FXMatDescVar |
struct | YRZ::FXMatDescParser |
struct | YRZ::FXTech |
★★★エフェクト全体の定義★★★ [詳解] | |
struct | YRZ::FXShaderCacheItem |
class | YRZ::FXShaderCache |
struct | YRZ::FXTexCache< T > |
struct | YRZ::FXLoadConfig |
struct | YRZ::FXSharedItem |
struct | YRZ::FXShareTag |
struct | YRZ::FXPassCond |
class | YRZ::FX |
struct | YRZ::FXWatchedItem |
class | YRZ::FXWatcher |
struct | YRZ::FXTech |
★★★エフェクト全体の定義★★★ [詳解] |
関数 | |
template<typename T> | |
T | YRZ::StringToEnumX (const std::unordered_map< std::string, T > &map, const std::string &str, T def) |
DXGI_FORMAT | YRZ::StringToDXGIFormat (const std::string &str) |
std::string | YRZ::DXGIFormatToU8 (DXGI_FORMAT fmt) |
std::string | YRZ::DXGIFormatToHLSLType (DXGI_FORMAT format) |
D3D12_FILTER | YRZ::StringToD3D12Filter (const std::string &filter) |
D3D12_TEXTURE_ADDRESS_MODE | YRZ::StringToD3D12TextureAddressMode (const std::string &modeName) |
D3D12_COMPARISON_FUNC | YRZ::StringToD3D12ComparisonFunc (const std::string &funcName) |
D3D12_BLEND | YRZ::StringToD3D12Blend (const std::string &blendName) |
D3D12_BLEND_OP | YRZ::StringToD3D12BlendOp (const std::string &blendOpName) |
D3D12_LOGIC_OP | YRZ::StringToD3D12LogicOp (const std::string &logicOpName) |
D3D12_STATIC_BORDER_COLOR | YRZ::StringToD3D12StaticBorderColor (const std::string &colorName) |
D3D12_SHADER_VISIBILITY | YRZ::StringToD3D12ShaderVisibility (const std::string &visibilityName) |
D3D12_COLOR_WRITE_ENABLE | YRZ::StringToD3D12ColorWriteEnable (const std::string &colorWriteEnableName) |
D3D12_FILL_MODE | YRZ::StringToD3D12FillMode (const std::string &fillModeName) |
D3D12_CULL_MODE | YRZ::StringToD3D12CullMode (const std::string &cullModeName) |
D3D12_CONSERVATIVE_RASTERIZATION_MODE | YRZ::StringToD3D12ConservativeRasterizationMode (const std::string &modeName) |
D3D12_DEPTH_WRITE_MASK | YRZ::StringToD3D12DepthWriteMask (const std::string &maskName) |
D3D12_STENCIL_OP | YRZ::StringToD3D12StencilOp (const std::string &stencilOpName) |
D3D12_PRIMITIVE_TOPOLOGY_TYPE | YRZ::StringToD3D12PrimitiveTopologyType (const std::string &topologyTypeName) |
D3D12_INPUT_CLASSIFICATION | YRZ::StringToD3D12InputClassification (const std::string &classificationName) |
std::string | YRZ::D3D12InputClassificationToString (D3D12_INPUT_CLASSIFICATION c) |
D3D12_HIT_GROUP_TYPE | YRZ::StringToD3D12HitGroupType (const std::string &s) |
D3D12_RENDER_TARGET_BLEND_DESC | Convert () |
template<class Archive> | |
void | serialize (Archive &A) |
D3D12_BLEND_DESC | Convert () |
template<class Archive> | |
void | serialize (Archive &A) |
D3D12_RASTERIZER_DESC | Convert () |
template<class Archive> | |
void | serialize (Archive &A) |
D3D12_DEPTH_STENCILOP_DESC | Convert () |
template<class Archive> | |
void | serialize (Archive &A) |
D3D12_DEPTH_STENCIL_DESC | Convert () |
template<class Archive> | |
void | serialize (Archive &A) |
template<class Archive> | |
void | serialize (Archive &A) |
bool | operator== (const FXSlider &rhs) const |
bool | operator!= (const FXSlider &rhs) const |
template<class Archive> | |
void | serialize (Archive &A) |
FXConv | YRZ::operator| (FXConv L, FXConv R) |
FXConv | YRZ::operator& (FXConv L, FXConv R) |
FXConv | YRZ::StringToFXConv (const std::string &modeName) |
FXRound | YRZ::StringToFXRound (const std::string &modeName) |
std::string | String () |
FXSize (size_t w, size_t h, size_t d, int dim) | |
FXSize (const XMUINT3 &s, int dim) | |
FXSize (const Res *r) | |
template<class Archive> | |
void | serialize (Archive &A) |
static FXSize | convert (const FXSize &src, const FXSize &rel) |
FXShared | YRZ::StringToFXShared (const std::string &modeName) |
template<class Archive> | |
void | serialize (Archive &A) |
bool | rtv () const |
bool | dsv () const |
template<class Archive> | |
void | serialize (Archive &A) |
template<class Archive> | |
void | serialize (Archive &A) |
template<class Archive> | |
void | serialize (Archive &A) |
template<class Archive> | |
void | serialize (Archive &A) |
template<class Archive> | |
void | serialize (Archive &A) |
template<class Archive> | |
void | serialize (Archive &A) |
template<class Archive> | |
void | serialize (Archive &A) |
template<class Archive> | |
void | serialize (Archive &A) |
FXInputElementDesc (D3D12_INPUT_ELEMENT_DESC desc) | |
D3D12_INPUT_ELEMENT_DESC | D3D () const |
static std::vector< FXInputElementDesc > | Convert (const std::vector< D3D12_INPUT_ELEMENT_DESC > &d3d) |
static std::vector< D3D12_INPUT_ELEMENT_DESC > | Convert (const std::vector< FXInputElementDesc > &fx) |
FXPassType | YRZ::StringToFXPassType (const std::string &passtype) |
FXRasterModelTarget | YRZ::StringToFXRasterModelTarget (const std::string &ramo) |
bool | IsFunctional () const |
template<class Archive> | |
void | serialize (Archive &A) |
template<class Archive> | |
void | serialize (Archive &A) |
FXCategory | YRZ::StringToFXCategory (const std::string &category) |
template<class Archive> | |
void | serialize (Archive &A, std::uint32_t const version) |
変数 | |
bool | blendEnable = false |
bool | logicOpEnable = false |
std::string | srcBlend = "ONE" |
std::string | destBlend = "ZERO" |
std::string | blendOp = "ADD" |
std::string | srcBlendAlpha = "ONE" |
std::string | destBlendAlpha = "ZERO" |
std::string | blendOpAlpha = "ADD" |
std::string | logicOp = "NOOP" |
std::string | renderTargetWriteMask = "ALL" |
bool | alphaToCoverageEnable = false |
bool | independentBlendEnable = false |
FXRendertargetBlendDesc | renderTarget [8] |
std::string | fillMode = "SOLID" |
std::string | cullMode = "BACK" |
bool | frontCounterClockwise = false |
INT | depthBias = D3D12_DEFAULT_DEPTH_BIAS |
float | depthBiasClamp = D3D12_DEFAULT_DEPTH_BIAS_CLAMP |
float | slopeScaledDepthBias = D3D12_DEFAULT_SLOPE_SCALED_DEPTH_BIAS |
bool | depthClipEnable = true |
bool | multisampleEnable = false |
bool | antialiasedLineEnable = false |
UINT | forcedSampleCount = 0 |
std::string | conservativeRaster = "OFF" |
std::string | stencilFailOp = "KEEP" |
std::string | stencilDepthFailOp = "KEEP" |
std::string | stencilPassOp = "KEEP" |
std::string | stencilFunc = "ALWAYS" |
bool | depthEnable = true |
std::string | depthWriteMask = "ALL" |
std::string | depthFunc = "LESS" |
bool | stencilEnable = false |
UINT8 | stencilReadMask = D3D12_DEFAULT_STENCIL_READ_MASK |
UINT8 | stencilWriteMask = D3D12_DEFAULT_STENCIL_WRITE_MASK |
FXDepthStencilOpDesc | frontFace |
FXDepthStencilOpDesc | backFace |
float | minValue = 0.0f |
最小値 jsonには"min"で記述する | |
float | maxValue = 1.0f |
最大値 jsonには"max"で記述する | |
float | defValue = 0.0f |
デフォルト値 jsonには"def"で記述する | |
bool | logValue = false |
対数スケールでスライダーを作る jsonには"log"で記述する | |
bool | intValue = false |
整数入力用スライダーにする jsonには"int"で記述する | |
std::string | name |
hlslからアクセスするための変数名 | |
std::string | controllerName = "(self)" |
ホストアプリケーション側からコントローラを検索するための名前(MikuMikuDayoの実装ではpmxファイル名) | |
std::string | item |
項目名、モーフ名・ボーン名など、空文字の場合はモデル全体の状態 | |
std::string | type = "float" |
返り値の型 | |
FXSlider | slider |
入力ウィジェットについての設定 | |
std::vector< std::string > | desc |
説明文。多言語対応のためvector。MikuMikuDayoの実装では第一要素に英語、第二要素に日本語 | |
bool | absolute = false |
true:絶対的なサイズを示す false:baseに対する相対的なサイズを示す | |
int32_t | dimension = 0 |
リソースの次元。deminsionが0でabsoluteがfalseならばbaseと同じ次元数になる | |
uint64_t | width = 1 |
バッファの要素数、テクスチャの幅 | |
uint64_t | height = 1 |
テクスチャの高さ | |
uint64_t | depth = 1 |
3Dテクスチャの奥行き | |
std::string | base |
absolute = falseだった場合のサイズの基準になるリソース MikuMikuDayoの実装では、空文字だった場合はエフェクトのカテゴリにより以下のように決まる デフォーマの場合、対象モデルの頂点数(1次元) それ以外の場合、出力画面の画素数(2次元) | |
XMFLOAT3 | ratio = { 1,1,1 } |
absolute = falseだった時に使用されるbaseのサイズに対する割合 | |
std::string | convX = "x" |
各次元の要素数はbaseのどの次元の要素数同士の積で求まるか?以下のいずれかが有効 "x" : base.width "y" : base.height "z" : base:depth "xy" : base.width * base.height "yz" : base.height * base.depth "xz" : base.width * base.depth "xyz" : base.width * base.height * base.depth "one" : 1 | |
std::string | convY = "y" |
std::string | convZ = "z" |
std::string | rounding = "trunc" |
小数の丸め規則。"trunc":切捨て, "ceil":切り上げ, "round":四捨五入 | |
std::string | name |
リソース名(シェーダからもこの名前でアクセスできる) | |
std::string | type = "" |
型名 "float4"とか | |
std::string | shared = "none" |
共有フラグ "none":共有しない, "source":共有源, "ref":共有参照 | |
std::string | view |
くっつけられるビューの種類。空文字でもSRVによるアクセスは可能。空文字以外では"rtv", "uav", "dsv", "rtv,uav"のどれか | |
FXSize | size = {} |
テクスチャのサイズ。filenameが空文字でない場合はサイズ・フォーマットは無視され、ファイルの内容から決定される | |
std::string | format = "unknown" |
DXGI_FORMATを参照 | |
std::string | filename |
読み込み元画像ファイル。空文字の場合はサイズ・フォーマットの指定に従って空のテクスチャが出来る | |
bool | mipmap = false |
mipチェーンを持つか? trueの場合はサイズに合わせて一番細かいレベルまでのmipチェーンが作られる。falseの場合mipチェーンは作られない | |
std::string | name |
uint64_t | elemSize = 0 |
要素ごとのバイト数、重要!省略した場合は型名から推定される | |
FXSize | size = {} |
size.width = 要素数 | |
std::string | filename |
要素を埋めるためのバイナリデータの入ったファイル名。指定が無い場合は空 | |
std::string | name |
HLSL側から参照する際のシンボル名 | |
std::string | filter = "ANISOTROPIC" |
std::string | addressU = "WRAP" |
std::string | addressV = "WRAP" |
std::string | addressW = "WRAP" |
float | mipLODBias = D3D12_DEFAULT_MIP_LOD_BIAS |
UINT | maxAnisotropy = D3D12_DEFAULT_MAX_ANISOTROPY |
std::string | comparisonFunc = "LESS_EQUAL" |
std::string | borderColor = "OPAQUE_WHITE" |
float | minLOD = 0 |
float | maxLOD = D3D12_FLOAT32_MAX |
std::string | shaderVisibility = "ALL" |
std::string | name |
テクスチャ名 | |
int32_t | mipSlice = 0 |
mipチェーン付きテクスチャの場合、書き込むmipレベル | |
bool | clear = true |
クリアする? | |
XMFLOAT4 | value = { 0,0,0,1 } |
クリアする場合の値 | |
std::string | name |
リソース名 | |
int32_t | mipSlice = 0 |
mipチェーン付きテクスチャの場合、書き込むmipレベル | |
std::string | name |
リソース名 | |
int | mipSlice = 0 |
mipチェーン付きテクスチャの場合、書き込むmipレベル | |
bool | clear = true |
クリアする? | |
float | depth = 1.0f |
クリアする場合の深度値 | |
int | stencil = 0 |
クリアする場合のステンシル値 | |
std::string | type = "triangles" |
ヒットグループの種類。"triangles":三角ポリゴン, "procedural_primitive":プロシージャル定義図形 | |
std::string | closestHit |
closestHitシェーダのエントリポイント。空文字の場合はシェーダの割り当てなし | |
std::string | anyHit |
anyHitシェーダのエントリポイント。空文字の場合はシェーダの割り当てなし | |
std::string | intersection |
intersectionシェーダのエントリポイント。空文字の場合はシェーダの割り当てなし | |
std::string | semanticName |
UINT | semanticIndex = 0 |
std::string | format = "UNKNOWN" |
UINT | inputSlot = 0 |
UINT | alignedByteOffset = D3D12_APPEND_ALIGNED_ELEMENT |
std::string | inputSlotClass = "PER_VERTEX_DATA" |
UINT | instanceDataStepRate = 0 |
const char | YRZ::MipmapCS [] |
const char | YRZ::MipmapPS [] |
std::string | name |
パス名。マクロYRZ_PASS_nameを定義してコンパイラを起動する | |
std::string | type = "postprocess" |
パスの種類。"postprocess", "compute", "raytracing", "rasterizer", "copy", "clearRTV", "clearUAV", "mipmapgen"のいずれか | |
std::string | vertexShader |
vertexShaderのエントリポイント名(postprocess, rasterizerパス用) | |
std::string | pixelShader |
pixelShaderのエントリポイント名(postprocess, rasterizerパス用) | |
std::string | computeShader |
computeShaderのエントリポイント名(computeパス用) | |
XMUINT3 | numthreads = { 0,0,0 } |
1スレッドグループあたりのスレッド数 YRZ_NUMTHREADSマクロの内容を定義する | |
std::string | raygenShader |
raytracingShaderのエントリポイント名 | |
std::vector< std::string > | missShader |
raytracingShaderのエントリポイント名 | |
std::vector< FXHitGroup > | hitGroup |
raytracingShaderのヒットグループの定義 | |
std::vector< std::string > | callableShader |
raytracingShaderのエントリポイント名 | |
UINT | maxPayloadSize = 64 |
raytracingShaderのペイロードの最大サイズ[byte] | |
UINT | maxAttributeSize = 8 |
raytracingShaderの交差判定用構造体の最大サイズ[byte] | |
UINT | maxRecursionDepth = 4 |
raytracingShaderの最大再帰段数 | |
std::string | vsTarget = "vs_6_1" |
vertexShaderのシェーダーモデル | |
std::string | psTarget = "ps_6_1" |
pixelShaderのシェーダーモデル | |
std::string | csTarget = "cs_6_1" |
computeShaderのシェーダーモデル | |
std::string | libTarget = "lib_6_3" |
raytracingShaderのシェーダーモデル | |
std::vector< std::string > | macros |
パスのコンパイル時に定義されるマクロ, MACRO=value の形式で=区切りでマクロを指定する | |
FXSize | outputSize = {} |
シェーダの出力サイズの指定 | |
std::vector< FXRTV > | RTV |
RTVでアクセスされるテクスチャ群 | |
std::vector< FXUAV > | UAV |
UAVでアクセスされるリソース群 | |
FXDSV | DSV |
DSVでアクセスされるテクスチャ(最大1つ) | |
std::vector< std::string > | conditions |
実行時の条件式。要素数が1以上の時、式がすべて真ならばパスが実行される | |
FXBlendDesc | blendDesc |
αブレンディングについての設定(rasterizerパス・postprocessパス用) | |
FXRasterizerDesc | rasterizerDesc |
プリミティブの描画方法についての設定(rasterizerパス用) | |
FXDepthStencilDesc | depthStencilDesc |
デプスステンシルバッファの使用法についての設定(rasterizerパス用) | |
std::string | primitiveTopologyType = "triangle" |
プリミティブの種類についての設定(rasterizerパス用) D3D12_PRIMITIVE_TOPOLOGY_TYPEを参照 | |
UINT | sampleMask = D3D12_DEFAULT_SAMPLE_MASK |
rasterizerパス用(現在のMikuMikuDayoの実装では未対応) | |
std::string | rasterModelTarget = "all" |
ラスタライザのターゲットになるモデル(デフォーマ・ポストプロセス用) "all":シーン内のモデルとエフェクト起動元に割り当てられたモデル "other":シーン内のモデル "self":エフェクト起動元に割り当てられたモデルのみ "buffer":rasterVB、rasterIBで指定されるリソースによって定義されるモデル | |
std::string | rasterVB |
rasterModelTarget=="buffer"の場合に使われるVertexBufferとなるリソース名 | |
std::string | rasterIB |
rasterModelTarget=="buffer"の場合に使われるIndexBufferとなるリソース名 | |
std::vector< FXInputElementDesc > | layout |
rasterVB, rasterIBがセットされている時はこのレイアウトを使う。空の場合はraterIBのみ参照される | |
std::string | src |
コピー元リソース名 copyパス用 コピー元とコピー先のリソースのサイズ・フォーマット・mipレベル数は同一でなければならない | |
std::string | dest |
コピー先リソース名 copyパス用 コピー元とコピー先のリソースのサイズ・フォーマット・mipレベル数は同一でなければならない | |
std::string | target |
対象リソース名 clearRTV, clearUAV, mipmapgenパス用 | |
XMFLOAT4 | value = { 0,0,0,1 } |
クリアする場合に使用する値 clearRTV, clearUAVパス用 | |
std::string | name |
hlslから材質注釈へアクセスするための構造体名のプレフィクス MikuMikuDayoではMaterialウィンドウのタブに追加される名前 空文字の時は材質注釈のないエフェクトと見なされる | |
std::string | matDescTemplate |
材質注釈のテンプレートファイル。エフェクトファイルの存在するパスを基準とする相対パス | |
std::string | defaultFile |
デフォルトの材質注釈ファイル。エフェクトファイルの存在するパスを基準とする相対パス | |
std::string | category = "postprocess" |
エフェクトのカテゴリ。"postprocess", "deform", "render"のいずれか | |
std::vector< FXController > | controllers |
コントローラ | |
std::vector< FXSampler > | samplers |
サンプラー | |
std::vector< FXTexture > | textures |
テクスチャ | |
std::vector< FXTexture3D > | textures3D |
3Dテクスチャ | |
std::vector< FXBuffer > | buffers |
バッファ | |
std::vector< FXPass > | passes |
パス 定義された順で実行される | |
std::vector< std::string > | code |
HLSLのコードに直接出力される文字列群 | |
FXMatDescStorage | matDescs |
材質注釈 | |
UINT | globalVarSize = 1024 |
シェーダ内のグローバル変数を格納する「暗黙のコンスタントバッファ」のサイズ[byte] | |
std::vector< std::string > | memos |
ホストアプリケーションに伝える情報 MikuMikuDayoが対応しているのは以下の通り "skyboxsampler" skyboxが読み込まれた際にサンプリング用のskywalkerオブジェクトを用意する "skyboxprefilter" skyboxが読み込まれた際、下位mipレベルにprefiltered specular envmapを格納する | |
const char * | YRZ::JSONStartSign = "[YRZFX]" |
const char * | YRZ::JSONEndSign = "[HLSL]" |
よろずFX
よろずDXRのためのエフェクトフレームワーク
ファイル | |
ファイル | YRZFx.ixx |