UniVRM icon indicating copy to clipboard operation
UniVRM copied to clipboard

UniGLTF, UniVRM 導入時の ColorSpace 強制の度合いを緩和する

Open Santarh opened this issue 3 years ago • 1 comments

現状、UniGLTF の IO 実装は、実装複雑性を下げるために Linear ColorSpace でのみ正しく動くように実装している。 したがって glTF / VRM として正しいモデルを Export するためには、ProjectSettings の ColorSpace を Linear にしなければならない。

ここで UniGLTF / UniVRM の使用想定ユーザは現状 2 種類ある。 ひとつはモデル製作者、もうひとつはアプリ開発者である。

一般にモデル製作者に対しては、実装由来の色空間に関する深い知識を求めるのは酷である。 ColorSpace の強制がない場合、手順に従って Export したら、色合いがおかしなモデルが出来上がってしまうことになる。 これは避けたい。 したがって、少なくともモデル製作者向けには Linear ColorSpace の使用を強制したい。

一方で、アプリ開発者向けにも基本的には Linear ColorSpace での使用が推奨される。 しかし強制するとよくない場合がある。 組み込み先のアプリがもともと Gamma ColorSpace である場合、そして Linear ColorSpace が使用できない場合である。 これは Unity が対象とするプラットフォームが多岐にわたるため、そもそも Linear ColorSpace をサポートしない場合があるからである。

したがって基本的には Linear ColorSpace の使用を推奨したい。 またモデル Export に関しては必ず Linear ColorSpace を使用するように強制したい。 しかし一部のアプリ開発者向けには、デメリットに関して説明した上で、Linear ColorSpace を使用しなくても良い抜け道を提供したい。

具体的には以下の2点を実装したい。

  • glTF Exporter で Validation を行い Linear ColorSpace でなければ出力できないようにする
  • 既存の起動時 Dialog に対して、設定を適用しない抜け道を用意する

Santarh avatar May 09 '22 04:05 Santarh

Dialog に C# symbol を追加するボタンがあればいいかも #1561

ousttrue avatar May 09 '22 05:05 ousttrue

Document に記述して close するべし

ousttrue avatar Oct 16 '23 12:10 ousttrue

https://vrm-c.github.io/UniVRM/en/api/0_96_1_use_gamma_colorspace.html

ousttrue avatar Oct 20 '23 07:10 ousttrue