MikuMikuDayo
エフェクトリファレンス
読み取り中…
検索中…
一致する文字列を見つけられません
YRZFxモジュール

よろず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
 ★★★エフェクト全体の定義★★★ [詳解]

列挙型

enum class  FXConv {
  one = 0 , x = 1 , y = 2 , z = 4 ,
  xy = 3 , yz = 6 , xz = 5 , xyz = 7
}
enum class  FXRound { trunc = 0 , round = 1 , ceil = 2 }
enum class  FXShared { none = 0 , source = 1 , ref = 2 }
enum class  FXPassType {
  none = 0 , raytracing = 1 , postprocess = 2 , rasterizer = 3 ,
  compute = 4 , copy = 256 , clearUAV = 257 , clearRTV = 258 ,
  mipmapgen = 259
}
 パスの分類
enum class  FXRasterModelTarget { all =0 , self =1 , other =2 , buffer =3 }
enum class  FXCategory { none = -1 , postprocess = 0 , deform = 1 , render = 2 }

関数

template<typename 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< FXInputElementDescConvert (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< FXHitGrouphitGroup
 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< FXRTVRTV
 RTVでアクセスされるテクスチャ群
std::vector< FXUAVUAV
 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< FXInputElementDesclayout
 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< FXControllercontrollers
 コントローラ
std::vector< FXSamplersamplers
 サンプラー
std::vector< FXTexturetextures
 テクスチャ
std::vector< FXTexture3Dtextures3D
 3Dテクスチャ
std::vector< FXBufferbuffers
 バッファ
std::vector< FXPasspasses
 パス 定義された順で実行される
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のためのエフェクトフレームワーク

著者
SANDMAN(github:pennennennennennenem, X:@NenemSdmn)

ファイル

ファイル  YRZFx.ixx