BufferGeometry
Object3D
Raycaster
Camera
CubeCamera
PerspectiveCamera
OrthographicCamera
StereoCamera
Clock
Curve
CurvePath
Path
Shape
ShapePath
ArrowHelper
AxesHelper
BoxHelper
Box3Helper
CameraHelper
DirectionalLightHelper
GridHelper
PolarGridHelper
HemisphereLightHelper
PlaneHelper
PointLightHelper
SkeletonHelper
SpotLightHelper
Light
PointLight
RectAreaLight
SpotLight
DirectionalLight
HemisphereLight
LightShadow
PointLightShadow
AnimationLoader
AudioLoader
BufferGeometryLoader
CompressedTextureLoader
CubeTextureLoader
DataTextureLoader
FileLoader
ImageBitmapLoader
ImageLoader
Loader
LoaderUtils
MaterialLoader
ObjectLoader
TextureLoader
LoadingManager
Material
Box2
Box3
Color
Cylindrical
Euler
Frustum
Interpolant
Line3
MathUtils
Matrix3
Matrix4
Plane
Quaternion
AnimationAction
AnimationClip
AnimationMixer
AnimationObjectGroup
AnimationUtils
keyframeTrack
PropertyBinding
PropertyMixer
BooleanKeyframeTrack
QuaternionKeyframeTrack
StringKeyframeTrack
Audio
AudioAnalyser
AudioContext
AudioListener
PositionalAudio

Color.convertSRGBToLinear()

Color.convertSRGBToLinear() 是在 Three.js 库中用于将 sRGB 颜色转换为线性颜色的函数。

语法

THREE.Color.convertSRGBToLinear( color: THREE.Color, gammaFactor: number ): THREE.Color

参数

color

颜色值,以 THREE.Color 对象的形式传递。

gammaFactor

伽马因子,一个数字类型,表示当前 gamma 校正的级别。

返回值

一个 THREE.Color 对象,表示转换后的线性颜色。

用法

const sRGBColor = new THREE.Color( 1, 1, 1 );
const gammaFactor = 2.2;
const linearColor = THREE.Color.convertSRGBToLinear( sRGBColor, gammaFactor );

描述

在计算机图形学中,颜色的值通常显示为 sRGB 格式。然而,在进行计算机图形学渲染时,需要将 sRGB 格式转换为线性颜色值,这是因为 sRGB 颜色空间非线性。将 sRGB 颜色转换为线性颜色可以减少计算机图形学中的错误和伽马校正。

sRGB 是国际电工委员会(IEC)制定的标准,它描述了现代电子设备和显示器显示颜色的方式。该标准可以确保显示器显示出在所有设备上颜色一致。尽管 sRGB 的非线性颜色空间是适合于人眼的亮度感知,但这在计算机图形学中处理时显得比较麻烦。为了克服这个问题,需要将 sRGB 颜色转换为线性颜色,使得渲染器更方便地执行计算。

Color.convertSRGBToLinear() 函数是 Three.js 库中用于将 sRGB 颜色转换为线性颜色的函数。该函数接受两个参数:颜色值和当前 gamma 校正级别。它返回一个 THREE.Color 对象,表示转换后的线性颜色。

示例

请参考下面的示例,展示了如何使用 Color.convertSRGBToLinear() 函数将 sRGB 颜色转换为线性颜色:

const sRGBColor = new THREE.Color( 1, 1, 1 );
const gammaFactor = 2.2;
const linearColor = THREE.Color.convertSRGBToLinear( sRGBColor, gammaFactor );

console.log( linearColor );

当上面的代码运行时,它将输出转换后的线性颜色值。

参考资料