mcpField
M
materials

materials

github.com/drawcall-ai创意与媒体125 次安装
代码仓库

关于 materials

Materials & Textures 是一项为 Three.js 材质分配 PBR 纹理贴图的技能,涵盖色彩空间设置与纹理平铺。它还指导按表面选择合适的素材,或标出素材缺口,而非使用纯色代替。

主要功能

  1. 01成套分配 PBR 纹理贴图
  2. 02正确设置贴图色彩空间
  3. 03在大面积表面平铺纹理
  4. 04为场景表面匹配纹理

适用场景

  1. 01为地形和地面添加纹理
  2. 02为悬崖应用石材纹理
  3. 03为地板和墙面添加纹理
  4. 04查找缺少适配素材的表面

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/drawcall-ai/skills --skill materials

安装后在 Claude Code 中输入/materials确认已加载。

详细介绍

材质与纹理

只设置 color 的 MeshStandardMaterial 看起来会平平无奇,像塑料一样,呈现「未贴纹理的灰色」——这是场景尚未完成的最明显标志。完整的表面应带有纹理贴图。将表面保留为纯色,是适配缺口,而不是材质。

应用一组纹理

市场上的 texture 资源会提供一组 PBR 贴图(基础颜色 + 法线 + 粗糙度/金属度/环境光遮蔽)。加载并一起指定这些贴图:

const loader = new TextureLoader()
const base = loader.load('/texture/grass/basecolor.jpg')
base.colorSpace = SRGBColorSpace                          // base color is sRGB
const normal = loader.load('/texture/grass/normal.jpg')  // every other map is linear (leave default)
const rough = loader.load('/texture/grass/roughness.jpg')

const material = new MeshStandardMaterial({ map: base, normalMap: normal, roughnessMap: rough })

色彩空间——最常见的错误

  • 基础颜色和自发光贴图 → SRGBColorSpace。 忘记设置会让所有内容看起来褪色、发灰。
  • 法线/粗糙度/金属度/环境光遮蔽贴图保持线性(默认值——不要将它们标记为 sRGB)。

在当前版本的 Three.js 中,aoMap 默认与主 uv 集共用——无需创建第二个 uv2 属性(这是旧版本的要求)。

大面积表面的平铺

地面和墙壁必须重复平铺纹理,而不是将单张纹理拉伸到整个网格上:

for (const t of [base, normal, rough]) {
  t.wrapS = t.wrapT = RepeatWrapping
  t.repeat.set(surfaceMeters / tileMeters, surfaceMeters / tileMeters) // ~1 tile per few meters
}

为每个表面匹配合适的纹理——地形用草地/地面纹理,悬崖用石材纹理,地板和墙壁用木板/金属纹理。从资源调查中挑选纹理;如果没有适合某个表面的纹理,请指出这一缺口,不要用纯色凑数。

评论

支持 Markdown