タイトル | : DiffuseRGBとDiffuseFactorに関して |
投稿日 | : 2013/09/07(Sat) 01:03:10 |
投稿者 | : sygh |
koi様
いつもお世話になっております。
標題の件ですが、MQOをFBXエクスポートする際に、どうも
FbxDiffuseRGB = MqoDiffuseLevelF * MqoMaterialColorRGB;
FbxDiffuseFactor = 1;
として出力されてしまっているように思われます。
本来であれば、
FbxDiffuseRGB = MqoMaterialColorRGB;
FbxDiffuseFactor = MqoDiffuseLevelF;
としなければならないのではないでしょうか?
当方FBXローダーを書いているのですが、エクスポーターで出力する際にMqoDiffuseLevelFとMqoMaterialColorRGBを乗算してしまうと、
読み込むときに各々の情報が失われてしまいます(不可逆変換)。
Metasequoia公式のLightWave Object用LWOエクスポーターはマテリアルカラーと拡散レベル(拡散光成分)を正しく可逆変換できるように出力してくれているので、
この動作に合わせていただけると助かるのですが……
他の成分に関しても、
FbxAmbRGB = {MqoAmbLevelF, MqoAmbLevelF, MqoAmbLevelF};
FbxSpecularRGB = {MqoSpecularLevelF, MqoSpecularLevelF, MqoSpecularLevelF};
FbxEmissiveRGB = {MqoEmissiveLevelF, MqoEmissiveLevelF, MqoEmissiveLevelF};
ではなく、
FbxAmbFactor = MqoAmbLevelF;
FbxSpecularFactor = MqoSpecularLevelF;
FbxEmissiveFactor = MqoEmissiveLevelF;
とするのが妥当かと思われます。
検証に使用したエクスポーターのバージョンは1.2.8、
読み込みに使用したFBX SDKバージョンはVC 2012用の2014.1です。
それでは、よろしくお願いいたします。
P.S. エクスポーターの開発は停止になったのかと思っていましたが、再開されて嬉しく思います。お忙しいとは存じますが、これからもがんばってください。
ちなみに英単語の「アンビエント」がどうもBBSの禁止ワードに引っかかるようなのですが……