Daz Studioスレッド Part23

■ このスレッドは過去ログ倉庫に格納されています
421名無しさん@お腹いっぱい。2018/05/17(木) 00:38:14.98ID:EvwbZcVa
>>418のつづき
「Custom MDL」Brickを、mdlファイル内の関数を呼び出す方法

「Custom MDL」BrickのSettings/MDL Callableに文字列を入力する欄がある
(初期値では"state::position()"となっている)
文字列入力欄の右に「...」を押す
開いた「MDL Callable」ダイアログにある文字列を編集する

先ほどのnormal_combiner.mdlをテキストエディタで開くと
MDLによる関数が4つ定義されている
・float3 transform_internal_to_tangent(float3 n)
・float3 transform_tangent_to_internal(float3 n)
・export float3 add_detail_normal(float3 nd = state::normal(), float3 n = state::normal())
・export float3 combine_normals( float w1 = 1.0, float3 n1 = state::normal(), float w2 = 1.0, float3 n2 = state::normal())

そのうち、関数内の定義をみるに機能として法線ベクトルの合成を満たす関数は
上記の4つ目、 combine_normalsとなる(ほかの3つの関数は呼び出さる子関数)

先ほどのMyShaderファオルダにnormal_combiner.mdlを入れたとすれば、
「MDL Callable」ダイアログで入力すべき文字列は
MyShader/normal_combiner.mdl#combine_normals
となる。
Acceptを押して「MDL Callable」ダイアログを閉じる
すると、「Custom MDL」BrickのSettings/MDL Callableに文字列欄が
MyShader/normal_combiner.mdl#combine_normals(float,float3,float,float3)に変わる

MyShaderが先のフォルダ名
normal_combiner.mdlがMDL定義ファイル名
#の後にcombine_normals関数の名前
関数の後に続く(float,float3,float,float3)が関数を呼び出すための引数というもので自動入力されている
引数を手動で入力する必要も出てくる場合もあるが説明を割愛する

■ このスレッドは過去ログ倉庫に格納されています