# 3d Games

> 3D游戏开发原则。渲染、着色器、物理、相机。当用户要求'3D游戏开发'时使用。

- Skill: `kscz0000/3d-games` (Agent Skill)
- Install (CLI): `npx skillmds@latest add kscz0000/3d-games`
- Raw SKILL.md: https://api.skillmd.com/api/skills/kscz0000/3d-games/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: kscz0000 (https://skillmd.com/u/kscz0000)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/kscz0000/3d-games

---


# 3D游戏开发

> 3D游戏系统原则。

---

## 1. 渲染管线

### 阶段

```
1. 顶点处理 → 变换几何体
2. 光栅化 → 转换为像素
3. 片段处理 → 着色像素
4. 输出 → 到屏幕
```

### 优化原则

| 技术 | 用途 |
|-----------|---------|
| **视锥剔除** | 不渲染屏幕外物体 |
| **遮挡剔除** | 不渲染被遮挡物体 |
| **LOD** | 远处细节更少 |
| **批处理** | 合并绘制调用 |

---

## 2. 着色器原则

### 着色器类型

| 类型 | 用途 |
|------|---------|
| **顶点** | 位置、法线 |
| **片段/像素** | 颜色、光照 |
| **计算** | 通用计算 |

### 何时编写自定义着色器

- 特效（水、火、传送门）
- 风格化渲染（卡通、素描）
- 性能优化
- 独特视觉标识

---

## 3. 3D物理

### 碰撞形状

| 形状 | 使用场景 |
|-------|----------|
| **盒子** | 建筑、箱子 |
| **球体** | 球、快速检测 |
| **胶囊** | 角色 |
| **网格** | 地形（昂贵） |

### 原则

- 简单碰撞体，复杂视觉
- 基于图层的过滤
- 射线检测用于视线

---

## 4. 相机系统

### 相机类型

| 类型 | 用途 |
|------|-----|
| **第三人称** | 动作、冒险 |
| **第一人称** | 沉浸、FPS |
| **等距** | 策略、RPG |
| **轨道** | 检视、编辑器 |

### 相机手感

- 平滑跟随（lerp）
- 碰撞避让
- 移动前瞻
- 速度变化时FOV改变

---

## 5. 光照

### 光源类型

| 类型 | 用途 |
|------|-----|
| **方向光** | 太阳、月亮 |
| **点光源** | 灯、火把 |
| **聚光灯** | 手电筒、舞台 |
| **环境光** | 基础照明 |

### 性能考虑

- 实时阴影昂贵
- 尽可能烘焙
- 大世界使用阴影级联

---

## 6. 细节层次（LOD）

### LOD策略

| 距离 | 模型 |
|----------|-------|
| 近 | 完整细节 |
| 中 | 50%三角形 |
| 远 | 25%或广告牌 |

---

## 7. 反模式

| ❌ 不要 | ✅ 要 |
|----------|-------|
| 到处使用网格碰撞体 | 简单形状 |
| 移动端使用实时阴影 | 烘焙或斑点阴影 |
| 所有距离使用一个LOD | 基于距离的LOD |
| 未优化的着色器 | 分析并简化 |

---

> **记住：** 3D关乎幻觉。创造细节的印象，而非细节本身。

## 何时使用
此技能适用于执行概述中描述的工作流程或操作。

## 限制
- 仅当任务明确匹配上述范围时使用此技能。
- 不要将输出替代特定环境的验证、测试或专家审查。
- 如果缺少必要的输入、权限、安全边界或成功标准，请停止并请求澄清。

