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

BufferGeometry.toNonIndexed()

BufferGeometry.toNonIndexed() 是三维图形库 Three.js 中 BufferGeometry 类的一个方法,用于将包含索引的三角网格转换成非索引的三角网格。这个方法返回的 BufferGeometry 对象将包含更多的顶点属性,可以用于渲染更复杂的材质和效果。

语法

BufferGeometry.toNonIndexed()

参数

此方法不接受任何参数。

返回值

将包含索引的三角网格转换为非索引的三角网格的 BufferGeometry 对象。

示例

//创建包含索引的三角网格
var geometryWithIndex = new THREE.BufferGeometry();

var vertices = new Float32Array([
   0, 0, 0,
   1, 0, 0,
   1, 1, 0,
   0, 1, 0
]);

var indices = new Uint16Array([
   0, 1, 2,
   2, 3, 0
]);

geometryWithIndex.setAttribute('position', new THREE.BufferAttribute(vertices, 3));
geometryWithIndex.setIndex(new THREE.BufferAttribute(indices, 1));

//转换为非索引的三角网格
var nonIndexedGeometry = geometryWithIndex.toNonIndexed();

注意事项

  • 此方法会导致返回的 BufferGeometry 对象中的顶点数量增加,可能会对内存和性能产生影响,因此在应用中需要谨慎使用。

  • 在使用 BufferGeometry.toNonIndexed() 方法转换三角网格之前,应该确保已经将需要的顶点属性(如颜色、法向量、UV 等)添加到 BufferGeometry 对象中,以便在转换后能够正确地渲染。