gpt4 book ai didi

colors - glTF - 设置颜色 - baseColorFactor

转载 作者:行者123 更新时间:2023-12-02 16:16:46 27 4
gpt4 key购买 nike

我正在尝试操作 gltf 3D 模型,但我不确定颜色是如何导出的。 baseColorFactor 中介于 0 到 1(或小于 1)之间的所有数字。

这肯定不是RGB也不是RGBA(我把这个页面作为引用:https://www.december.com/html/spec/colorrgbadec.html)

 "materials" : [
{
"doubleSided" : true,
"name" : "Material",
"pbrMetallicRoughness" : {
"baseColorFactor" : [
0.8000000715255737,
0.91026470959186554,
0.909551368653774261,
1
],
"metallicFactor" : 0,
"roughnessFactor" : 0.4000000059604645
}
},

如有任何指点,我们将不胜感激。

最佳答案

这确实是红色、绿色、蓝色和 Alpha,映射到 0.0 到 1.0 范围,但还有一个额外的转换:这些值已使用 sRGB transfer function 从 sRGB 色彩空间转换为线性。 . (这里的背景是,baseColorTexture 应该存储在 sRGB 色彩空间中并进行硬件 sRGB 解码,但是 baseColorFactor 没有硬件解码器,因此直接指定为线性值。)

如果您的值介于 0 和 255 之间,则其简单版本是除以 255.0 并将其提高到 2.2 次方。这是一个近似值,但效果很好。因此,例如,如果您的红色值为 200,您可以运行以下公式,此处显示为 JavaScript,但可以适用于任何语言:

Math.pow(200 / 255, 2.2)

这将给出大约 0.58597 的线性红色值。

请注意,alpha 值不受 sRGB 传递函数的影响,因此对于它们,您只需除以 255 即可。

有些包会自动进行这种转换。例如,在 Blender 中,如果您单击 Base Color 颜色选择器,您会看到它有一个显示典型 CSS 样式颜色的“十六进制”选项卡,以及一个具有数字线性值的“RGB”选项卡。

Blender color picker

这可用于将典型的 CSS 颜色快速转换为线性空间。

VSCode glTF Tools (我是其中的贡献者)也可以 show glTF color factors作为 CSS 值(反之亦然)。

关于colors - glTF - 设置颜色 - baseColorFactor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66469497/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com