AcademySoftwareFoundation / AcademySoftwareFoundation/OpenColorIO

Make certain color space names reserved

オープン
#2,000 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る
Feature Request
主要言語
C++
スター
2.1k
フォーク
503
PR マージ指標
30日以内にマージされた PR はありません

説明

One of the agreed upon requirements for the nanoColor project is that there be a set of color space names which are guaranteed to always mean the same thing. Applications must be able to rely on these as fixed and which have not been redefined by the config author.

One of the core tenets of OCIO is to give config authors complete control over the color processing, so the names must be carefully chosen so that they are unlikely to overlap with names already in use in typical configs. This was one of the considerations that was used when choosing the names below.

One question is whether this will apply only to the nanoColor version of the library or to both nanoColor and full OCIO. The proposal here is that it will apply to all versions.

Another question is what it means for a color space to be constant. Given that the reference space may be changed, any color spaces built against an original reference space would need to be updated accordingly. Thus it's not as simply as just checking the cacheID or serialized version of the color space transform components. One solution would be to convert a color space to use a specific reference space and then evaluate certain RGB values and check that they are within a tolerance.

The proposal for how the rule would be enforced is similar to how version consistency checks are already done as part of validation. Namely, if a color space uses one of the reserved names, as either the main name or an alias, it would be evaluated as described in the preceding paragraph to ensure that it is a valid implementation. If not, the config would fail validation. The reserved names would not be allowed as role names or Named Transforms.

This check would only apply to config versions greater than or equal to the current version number when this feature is implemented.

Note that for applications that care about this feature, they will need to call validate() on the config before using it. However, that is always the recommended practice regardless of this feature, so should not be a burden.

Here are the list of reserved names, these are from the ASWF Color Interop Forum recommendation for ["Color Space Encodings for Texture Assets and CG Rendering"](https://docs.google.com/document/d/1IV3e_9gpTOS_EFYRv2YGDuhExa4wTaPYHW1HyV36qUU/edit?usp=sharing):
- lin_ap1_scene
- lin_ap0_scene
- lin_rec709_scene
- lin_displayp3_scene
- lin_rec2020_scene
- lin_adobergb_scene
- lin_ciexyzd65_scene
- srgb_rec709_scene
- g22_rec709_scene
- g18_rec709_scene
- srgb_ap1_scene
- g22_ap1_scene
- srgb_displayp3_scene
- g22_adobergb_scene

In addition, if "data" exists as a color space, its isdata property must be "true". If it exists as a role, it must point to a color space that meets the same requirement. It may not be used as a NamedTransform.

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

まず、設定の検証中および validate() パスで使用されている既存のバージョン整合性チェックを確認します。予約済みの色空間名、エイリアス、ロール、Named Transforms、参照空間の変更、およびデータ色空間を、サポート対象の設定バージョンに対してどのようにチェックすべきかを判断します。提案の検証ルールが定義され、nanoColor とフル OCIO の両方について網羅されていれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
cpp
領域
computer-graphics
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
30/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。