three.js BufferGeometryUtils

2023-02-16 17:51 更新

一个包含 BufferGeometry 实例的实用方法的类。

方法

.computeMikkTSpaceTangents ( geometry : BufferGeometry, MikkTSpace : Object, negateSign : Boolean = true ) : Object

  • geometry -- BufferGeometry 的实例。
  • MikkTSpace -- examples/jsm/libs/mikktspace.module.js 或 mikktspace npm 包的实例。在使用前等待 MikkTSpace.ready。
  • negateSign -- 是否取反每条切线的符号分量 (.w)。某些格式的法线贴图约定是必需的,包括 glTF。

使用 MikkTSpace 算法计算顶点切线。 MikkTSpace 始终生成相同的切线,并用于大多数建模工具和法线贴图面包师。将 MikkTSpace 用于具有法线贴图的材质,因为不一致的切线可能会导致法线贴图中出现细微的视觉问题,尤其是在镜像 UV 接缝周围。

与此方法相比,BufferGeometry.computeTangents(一种自定义算法)生成的切线可能与其他软件中的切线不匹配。自定义算法足以用于 ShaderMaterial 的一般使用,并且可能比 MikkTSpace 更快。

返回原始 BufferGeometry。索引几何将被取消索引。需要位置、法线和 uv 属性。

.computeMorphedAttributes ( [param:Mesh | Line | Points object] ) : Object

object -- 网格实例 |线 |积分。

返回几何为 BufferGeometry 的变形/蒙皮 Object3D 的当前属性(Position 和 Normal)以及原始属性:具有 4 个属性的对象:positionAttribute、normalAttribute、morphedPositionAttribute 和 morphedNormalAttribute。有助于光线追踪或贴花(即,应用到具有 BufferGeometry 的变形对象的 DecalGeometry 将使用原始 BufferGeometry,而不是变形/蒙皮的 BufferGeometry,从而生成不正确的结果。使用此函数创建阴影 Object3D 可以正确生成 DecalGeometry) .

.estimateBytesUsed ( geometry : BufferGeometry ) : Number

geometry -- 通过 BufferGeometry 的实例来估计内存使用情况。

返回所有用于表示几何体的属性所占用的字节数。

.interleaveAttributes ( attributes : Array ) : InterleavedBufferAttribute

attributes -- 由 BufferAttribute 实例组成的数组。

交叉存储一组属性并返回一个新的对应属性数组,这些属性共享一个 InterleavedBuffer 实例。所有属性都必须兼容的该类型。如果合并不成功,则该方法返回 null 。

.mergeBufferAttributes ( attributes : Array ) : BufferAttribute

attributes -- 由 BufferAttribute 实例组成的数组。

将一组属性合并为一个单一的实例。所有几何体都必须兼容该属性,不支持 InterleavedBufferAttributes 。 如果合并不成功,则该方法返回 null 。

.mergeBufferGeometries ( geometries : Array, useGroups : Boolean ) : BufferGeometry

geometries -- 由 BufferGeometry 实例的数组。
useGroups -- 是否要为了合并几何体而产生组。

将一组几何体合并到一个实例中。所有几何体都必须兼容该属性。 如果合并不成功,则该方法返回 null。

.mergeGroups ( geometry : BufferGeometry ) : BufferGeometry

geometry -- 要合并组的 BufferGeometry 实例。

合并给定几何体的组。

.mergeVertices ( geometry : BufferGeometry, tolerance : Number ) : BufferGeometry

geometry -- 用于合并顶点的 BufferGeometry 实例。
tolerance -- 要合并的顶点属性之间允许的最大差异。 默认为 1e-4。

返回一个新的 BufferGeometry ,其中包含将所有(在容差范围内的)具有相似属性的顶点合并而成的顶点。

.toCreasedNormals ( geometry : BufferGeometry, creaseAngle : Number ) : BufferGeometry

geometry -- 输入几何。

creaseAngle -- 折痕角度。

创建一个新的非索引几何体,除了以大于折痕角度的角度相交的面外,所有地方都具有平滑的法线。

.toTrianglesDrawMode ( geometry : BufferGeometry, drawMode : TrianglesDrawMode ) : BufferGeometry

geometry -- BufferGeometry 的实例。

drawMode -- 给定几何图形的绘制模式。有效输入为 THREE.TriangleStripDrawMode 和 THREE.TriangleFanDrawMode。

返回基于 THREE.TrianglesDrawMode 绘制模式的新索引几何。此模式对应于 gl.TRIANGLES WebGL 原语。

源码

examples/jsm/utils/BufferGeometryUtils.js


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号