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

MathUtils.smootherstep()

概述

MathUtils.smootherstep() 是 Three.js 中的一个工具函数,用于将一个标量值映射到 0 到 1 的范围内。该函数的计算可以通过使用 Smoothstep 函数和其二次导数来获得更平滑的过渡效果。

语法

THREE.MathUtils.smootherstep(x, min, max)
  • x:要映射的值。
  • min:范围的最小值。
  • max:范围的最大值。

返回值

MathUtils.smootherstep() 的返回值是一个介于 0 和 1 之间的标量值,表示输入值在给定范围内的相对位置。

示例

以下示例演示如何使用 MathUtils.smootherstep() 函数来创建一个颜色渐变效果,用于表示一个数值在给定范围内的相对位置。

// 创建一个立方体模型
const geometry = new THREE.BoxGeometry(1, 1, 1);

// 创建一个材质
const material = new THREE.MeshPhongMaterial();

// 创建一个网格对象
const cube = new THREE.Mesh(geometry, material);

// 在场景中添加模型
scene.add(cube);

// 更新材质的颜色属性
cube.material.color.setRGB(
  THREE.MathUtils.smootherstep(x, min, max), // 红色通道
  0.5,                                      // 绿色通道
  1 - THREE.MathUtils.smootherstep(x, min, max) // 蓝色通道
);

以上代码片段中,使用 MathUtils.smootherstep() 函数计算出输入值 x 在给定范围 [min, max] 内的相对位置,用于设置材质的红色和蓝色通道的值,从而创建了一个渐变的颜色效果。

参考文献