Round glTF2.0 materials[].emissiveFactor value to its maximum limit #102
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
glTF2.0の仕様によると、
jsonのmaterials[].emissiveFactor
の最大値は1
になっていますが、UnityエディタのマテリアルのInspectorからEmissionを有効にしColorのIntensityを増やすと、glbのエクスポート時に当該の値が1
を超えてエラーになってしまうことがあります。そのような場合に
1
を超えないようにcolorの値を調整するようにしました。当該の値はglbフォールバック用の値として設定されるもので、VRMのエクステンション側にオリジナルの値が残っているとのことなので、値を勝手に調整してしまっても安全であるという判断です。materials[].emissiveFactor
の最大値を増加させる提案はこちらのIssue KhronosGroup/glTF#1083 でkhronosの方に出ていますが、すぐには採用されなそうな雰囲気です。変更前、変更後でそれぞれで glbのサンプルファイル をインポート、マテリアルの Emission Color を
#00BF00
に、Intensityを1
に設定しエクスポートしたものをglTF Validatorにかけた結果が下記になります変更前、変更後共に下記の設定でエクスポートしています