关于 3d-graphics
面向使用 Three.js 构建 3D Web 应用的学习技能,按进阶路径提供图形开发参考,涵盖交互、渲染效果及高级主题。
主要功能
- 01渐进式 Three.js 学习路径
- 02加载 3D 资源与纹理
- 03相机、灯光与动画
- 04交互与后期处理
- 05性能优化与 WebGPU
适用场景
- 01构建交互式 3D Web 体验
- 02加载并播放 3D 模型动画
- 03添加渲染效果与着色器
- 04提升场景渲染性能
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ samhvw8/ dotfiles --skill 3d-graphics安装后在 Claude Code 中输入/3d-graphics确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/01-getting-started.md02-loaders.md03-textures.md04-cameras.md05-lights.md06-animations.md07-math.md08-interaction.md09-postprocessing.md10-controls.md11-materials-advanced.md12-performance.md13-node-materials.md14-physics-vr.md15-specialized-loaders.md16-webgpu.md详细介绍
Three.js 开发
使用 Three.js 构建高性能 3D Web 应用——这是一个跨浏览器的 WebGL/WebGPU 库。
何时使用此技能
适用于以下场景:
- 处理 3D 场景、模型、动画或可视化
- 进行 WebGL/WebGPU 渲染和图形编程
- 创建交互式 3D 体验(游戏、配置器、数据可视化)
- 使用摄像机控件、光照、材质或着色器
- 加载 3D 资源(GLTF、FBX、OBJ)或纹理
- 使用后期处理效果(泛光、景深、SSAO)
- 进行物理模拟、VR/XR 体验或空间音频
- 优化性能(实例化、LOD、视锥体剔除)
渐进式学习路径
第 1 级:入门
加载 references/01-getting-started.md — 场景设置、基础几何体、材质、光源、渲染循环
第 2 级:常见任务
- 资源加载:
references/02-loaders.md— GLTF、FBX、OBJ、纹理加载器 - 纹理:
references/03-textures.md— 类型、映射、环绕、过滤 - 摄像机:
references/04-cameras.md— 透视、正交、控件 - 光源:
references/05-lights.md— 类型、阴影、辅助对象 - 动画:
references/06-animations.md— 片段、混合器、关键帧 - 数学:
references/07-math.md— 向量、矩阵、四元数、曲线
第 3 级:交互与效果
- 交互:
references/08-interaction.md— 射线投射、拾取、变换 - 后期处理:
references/09-postprocessing.md— 通道、泛光、SSAO、SSR - 控件(插件):
references/10-controls.md— 轨道、变换、第一人称
第 4 级:高级渲染
- 高级材质:
references/11-materials-advanced.md— PBR、自定义着色器 - 性能:
references/12-performance.md— 实例化、LOD、批处理、剔除 - 节点材质(TSL):
references/13-node-materials.md— 着色器图、计算
第 5 级:专项主题
- 物理:
references/14-physics-vr.md— Ammo、Rapier、Jolt、VR/XR - 高级加载器:
references/15-specialized-loaders.md— SVG、VRML、领域专用格式 - WebGPU:
references/16-webgpu.md— 现代后端、计算着色器
快速入门模式
// 1. Scene, Camera, Renderer
const scene = new THREE.Scene();
const camera = new THREE.PerspectiveCamera(75, window.innerWidth/window.innerHeight, 0.1, 1000);
const renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
// 2. Add Objects
const geometry = new THREE.BoxGeometry();
const material = new THREE.MeshStandardMaterial({ color: 0x00ff00 });
const cube = new THREE.Mesh(geometry, material);
scene.add(cube);
// 3. Add Lights
const light = new THREE.DirectionalLight(0xffffff, 1);
light.position.set(5, 5, 5);
scene.add(light);
scene.add(new THREE.AmbientLight(0x404040));
// 4. Animation Loop
function animate() {
requestAnimationFrame(animate);
cube.rotation.x += 0.01;
cube.rotation.y += 0.01;
renderer.render(scene, camera);
}
animate();
外部资源
评论
支持 Markdown