ThingOrigin.js
    Preparing search index...

    Class TMaterial

    材质、贴图

    Index

    Methods - 方法

    • 清理所有缓存

      Returns void

    • 清理材质缓存

      Returns void

    • 清理纹理缓存

      Returns void

    • 获取缓存统计信息

      Returns { materials: number; textures: number }

    Methods - Other

    • 创建基础材质

      Parameters

      • Optionalparams: Partial<MeshBasicMaterialParameters> = {}

        材质参数配置

      Returns MeshBasicMaterial

    • 加载立方体环境贴图

      Parameters

      Returns CubeTexture

    • 从原始数据创建一个纹理贴图

      Parameters

      Returns DataTexture

    • 创建深度材质(基于距离相机的深度渲染的材质)

      Parameters

      • Optionalparams: Partial<MeshDepthMaterialParameters> = {}

        材质参数配置

      Returns MeshDepthMaterial

    • 创建距离材质(基于到参考点的距离渲染的材质)

      Parameters

      • Optionalparams: Partial<MeshDistanceMaterialParameters> = {}

        材质参数配置

      Returns MeshDistanceMaterial

    • 创建图片材质(带缓存优化)

      Parameters

      Returns Promise<MeshPhongMaterial>

    • 创建漫反射材质

      Parameters

      • Optionalparams: Partial<MeshLambertMaterialParameters> = {}

        材质参数配置

      Returns MeshLambertMaterial

      受光照影响

    • 创建虚线材质

      Parameters

      • Optionalparams: Partial<LineDashedMaterialParameters> = {}

        材质参数配置

      Returns LineDashedMaterial

    • 创建线框材质

      Parameters

      • Optionalparams: Partial<LineBasicMaterialParameters> = {}

        材质参数配置

      Returns LineBasicMaterial

    • 创建 NodeMaterial 自定义材质(WebGPU / TSL)

      Parameters

      • nodesOrParams: Partial<Record<string, any>> | ((api: __module) => Partial<Record<string, any>>)

        TSL 回调 (tsl) => ({ colorNode, positionNode, ... }),或直接传参对象(高级用法)

      • Optionalopts: Partial<Record<string, any>> = {}

        通用材质属性(仅回调模式)

      Returns NodeMaterial

      仅支持 WebGPU 渲染器;通过 TSL 节点构建自定义着色。 推荐回调写法:库内注入 tsl,调用方无需 import 'three/tsl'。 通用属性(transparent/opacity/side/depthWrite/depthTest/blending/toneMapped/visible/alphaTest/colorWrite) 在第二参数 opts 中传入;以 "Node" 结尾的键作为 TSL 节点槽位在回调返回值中传入。

      const mat = TO.material.initNodeMaterial(({ Fn, vec3, time, sin }) => ({
      colorNode: Fn(() => vec3(sin(time).add(1).mul(0.5), 0, 0))()
      }), { transparent: true })
    • 创建法线网格材质

      Parameters

      • Optionalparams: Partial<MeshNormalMaterialParameters> = {}

        材质参数配置

      Returns MeshNormalMaterial

    • 创建高光材质(支持高光反射)

      Parameters

      • Optionalparams: Partial<MeshPhongMaterialParameters> = {}

        材质参数配置

      Returns MeshPhongMaterial

    • 物理网格材质(PBR标准材质基于物理的渲染)

      Parameters

      • Optionalparams: Partial<MeshPhysicalMaterialParameters> = {}

        材质参数配置

      Returns MeshPhysicalMaterial

    • 创建点云材质

      Parameters

      • Optionalparams: Partial<PointsMaterialParameters> = {}

        材质参数配置

      Returns PointsMaterial

    • 创建自定义着色器材质

      Parameters

      • Optionalparams: Partial<ShaderMaterialParameters> = {}

        材质参数配置

      Returns RawShaderMaterial

      仅支持WebGL渲染器

    • 创建Shader材质

      Parameters

      • Optionalparams: Partial<ShaderMaterialParameters> = {}

        材质参数配置

      Returns ShaderMaterial

      仅支持WebGL渲染器

    • 创建阴影材质(用于投射和接收阴影的特殊材质)

      Parameters

      • Optionalparams: Partial<ShadowMaterialParameters> = {}

        材质参数配置

      Returns ShadowMaterial

    • 创建Sprite材质

      Parameters

      • Optionalparams: Partial<SpriteMaterialParameters> = {}

        材质参数配置

      Returns SpriteMaterial

    • 标准网格材质(PBR标准材质基于物理的渲染)

      Parameters

      • Optionalparams: Partial<MeshStandardMaterialParameters> = {}

        材质参数配置

      Returns MeshStandardMaterial

    • 创建并配置纹理贴图

      Parameters

      Returns Promise<Texture<unknown, TextureEventMap>>

    • 批量创建材质贴图

      Parameters

      Returns Promise<
          {
              alphaMap?: Texture<unknown, TextureEventMap>;
              aoMap?: Texture<unknown, TextureEventMap>;
              bumpMap?: Texture<unknown, TextureEventMap>;
              displacementMap?: Texture<unknown, TextureEventMap>;
              emissiveMap?: Texture<unknown, TextureEventMap>;
              map?: Texture<unknown, TextureEventMap>;
              metalnessMap?: Texture<unknown, TextureEventMap>;
              normalMap?: Texture<unknown, TextureEventMap>;
              roughnessMap?: Texture<unknown, TextureEventMap>;
          },
      >

    • 创建卡通渲染材质(Toon)

      Parameters

      • Optionalparams: Partial<MeshToonMaterialParameters> = {}

        材质参数配置

      Returns MeshToonMaterial

    • 设置渲染器引用(用于获取设备能力)

      Parameters

      • renderer: WebGLRenderer

      Returns void

    • 给模型设置水波纹材质

      Parameters

      • geometry: PlaneGeometry

        模型

      • width: number

        反射纹理宽度(仅 WebGL 后端生效,WebGPU 用 resolutionScale)

      • height: number

        反射纹理高度(仅 WebGL 后端生效,WebGPU 用 resolutionScale)

      • url: string

        法线贴图地址

      • OptionalwaterColor: string | number | Color

        水颜色

      • OptionalsunDirection: Vector3

        太阳方向

      • OptionalsunColor: string | number | Color

        太阳颜色

        Note

        WebGL 后端用 three 的 Water,WebGPU 后端用 three/webgpu 的 WaterMesh; 需要将色调映射 设置为 NoToneMapping

      Returns Mesh

    Properties

    textureLoader: TextureLoader = ...