[ PROMPT_NODE_23264 ]
3d-games
[ SKILL_DOCUMENTATION ]
# 3D 游戏开发
> 3D 游戏系统的设计原则。
---
## 1. 渲染管线
### 阶段
1. 顶点处理 → 变换几何体
2. 光栅化 → 转换为像素
3. 片元处理 → 像素着色
4. 输出 → 到屏幕
### 优化原则
| 技术 | 目的 |
|-----------|---------|
| **视锥体剔除** | 不渲染屏幕外物体 |
| **遮挡剔除** | 不渲染被遮挡物体 |
| **LOD** | 远距离降低细节 |
| **批处理** | 合并绘制调用 |
---
## 2. 着色器原则
### 着色器类型
| 类型 | 目的 |
|------|---------|
| **顶点** | 位置、法线 |
| **片元/像素** | 颜色、光照 |
| **计算** | 通用计算 |
### 何时编写自定义着色器
- 特殊效果(水、火、传送门)
- 风格化渲染(卡通、素描)
- 性能优化
- 独特的视觉标识
---
## 3. 3D 物理
### 碰撞形状
| 形状 | 使用场景 |
|-------|----------|
| **盒体** | 建筑物、箱子 |
| **球体** | 球体、快速检测 |
| **胶囊体** | 角色 |
| **网格** | 地形(性能开销大) |
### 原则
- 简单的碰撞体,复杂的视觉效果
- 基于层的过滤
- 用于视线检测的射线投射
---
## 4. 摄像机系统
### 摄像机类型
| 类型 | 用途 |
|------|-----|
| **第三人称** | 动作、冒险 |
| **第一人称** | 沉浸式、FPS |
| **等距视角** | 策略、RPG |
| **轨道视角** | 检查、编辑器 |
### 摄像机手感
- 平滑跟随 (lerp)
- 碰撞规避
- 移动预判
- 速度相关的 FOV 变化
---
## 5. 光照
### 光照类型
| 类型 | 用途 |
|------|-----|
| **方向光** | 太阳、月亮 |
| **点光源** | 灯泡、火把 |
| **聚光灯** | 手电筒、舞台 |
| **环境光** | 基础照明 |
### 性能考量
- 实时阴影开销大
- 尽可能使用烘焙
- 大场景使用级联阴影
---
## 6. 细节层次 (LOD)
### LOD 策略
| 距离 | 模型 |
|----------|-------|
| 近 | 全细节 |
| 中 | 50% 三角形 |
| 远 | 25% 或公告板 |
---
## 7. 反模式
| ❌ 错误做法 | ✅ 正确做法 |
|----------|-------|
| 到处使用网格碰撞体 | 使用简单形状 |
| 移动端实时阴影 | 烘焙或使用 blob 阴影 |
| 所有距离使用同一 LOD | 基于距离的 LOD |
| 未优化的着色器 | 分析并简化 |
---
> **记住:** 3D 是一场幻觉。创造细节的印象,而不是细节本身。