Colors glTF-设置颜色-baseColorFactor

Colors glTF-设置颜色-baseColorFactor,colors,gltf,Colors,Gltf,我试图操纵一个gltf 3D模型,但是我不确定颜色是如何衍生出来的。baseColorFactor中0到1(或小于1)之间的所有数字 这肯定不是RGB或RGBA(我将此页作为参考:) 最好使用任何指针。这是RGBA格式,但数字介于0和1之间。如果要在格式中插入颜色,请执行以下操作: RGB(255,255,255)[=白色]将所有值除以255,并使用1(=最后一个值完全不透明 RGBA(255,0,0,255)[=完全不透明的红色]将所有组件除以255 可以找到文档 实际上,唯一的区别是,您

我试图操纵一个gltf 3D模型,但是我不确定颜色是如何衍生出来的。baseColorFactor中0到1(或小于1)之间的所有数字

这肯定不是RGB或RGBA(我将此页作为参考:)


最好使用任何指针。

这是RGBA格式,但数字介于0和1之间。如果要在格式中插入颜色,请执行以下操作:

  • RGB(255,255,255)[=白色]将所有值除以
    255
    ,并使用
    1
    (=最后一个值完全不透明
  • RGBA(255,0,0,255)[=完全不透明的红色]将所有组件除以
    255
可以找到文档


实际上,唯一的区别是,您可以插入更多的颜色细微差别,因为每个通道有超过255个可能值。

它是RGBA格式,但数字介于0和1之间。如果您想在格式中插入颜色:

  • RGB(255,255,255)[=白色]将所有值除以
    255
    ,并使用
    1
    (=最后一个值完全不透明
  • RGBA(255,0,0,255)[=完全不透明的红色]将所有组件除以
    255
可以找到文档


实际上,唯一的区别是,您可以插入更多的颜色细微差别,因为每个通道有超过255个可能的值。

这确实是红色、绿色、蓝色和Alpha,映射到0.0到1.0范围,但还需要额外的转换:这些值已从sRGB颜色空间转换为线性using。(这里的背景是,应该存储在sRGB颜色空间中,并接受硬件sRGB解码,但没有硬件解码器,因此直接指定为线性值。)

如果你的值在0到255之间,最简单的版本是除以255.0,然后将其提高到2.2的幂。这是一个近似值,但效果很好。例如,如果你的红色值是200,你可以运行以下公式,如JavaScript所示,但可以适用于任何语言:

Math.pow(200 / 255, 2.2)
这将给出大约
0.58597
的线性红色值

请注意,alpha值不受sRGB传递函数的约束,因此对于它们,只需除以255,然后停止

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

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


VSCode(我是其中的一个参与者)也可以作为CSS值(另一种方式)。

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

如果你的值在0到255之间,最简单的版本是除以255.0,然后将其提高到2.2的幂。这是一个近似值,但效果很好。例如,如果你的红色值是200,你可以运行以下公式,如JavaScript所示,但可以适用于任何语言:

Math.pow(200 / 255, 2.2)
这将给出大约
0.58597
的线性红色值

请注意,alpha值不受sRGB传递函数的约束,因此对于它们,只需除以255,然后停止

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

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


VSCode(我是其中的一个贡献者)也可以作为CSS值(另一种方式)。

谢谢@emackey;VSCode glTF工具是一个开源项目吗?是的,有,你可以下载main(也是免费和开源的)并从那里的扩展面板安装glTF。您好@emackey,谢谢您提供的信息。我对您参与的项目有更多问题,我将创建一个新线程,并在完成后通知您。该工具是否有Python版本?它是一个VSCode扩展,因此是用Typescript编写的。VSCode可用于Windows、Mac OS和Linux,并且它本身可以从自己的Typescript源代码编译。谢谢@emackey;VSCode glTF工具是一个开源项目吗?是的,有,您可以下载main(也是免费和开源的)并从那里的扩展面板安装glTF。您好@emackey,谢谢您提供的信息。我对您参与的项目有更多问题,我将创建一个新线程,并在完成后通知您。该工具是否有Python版本?它是一个VSCode扩展,因此是用Typescript编写的。VSCode可用于Windows、Mac OS和Linux,并且它本身可以从自己的Typescript源代码编译。