名称: 3d-games
描述: 3D游戏开发原则。渲染、着色器、物理、相机。
允许工具: 读、写、编辑、全局搜索、grep
3D 游戏开发
3D 游戏系统的原则。
1. 渲染管线
阶段
1. 顶点处理 → 变换几何
2. 光栅化 → 转换为像素
3. 片段处理 → 着色像素
4. 输出 → 到屏幕
优化原则
| 技术 |
目的 |
| 视锥剔除 |
不渲染屏幕外对象 |
| 遮挡剔除 |
不渲染隐藏对象 |
| 细节级别 |
远处使用较少细节 |
| 批处理 |
合并绘制调用 |
2. 着色器原则
着色器类型
| 类型 |
目的 |
| 顶点着色器 |
位置、法线 |
| 片段/像素着色器 |
颜色、光照 |
| 计算着色器 |
通用计算 |
何时编写自定义着色器
- 特殊效果(水、火、传送门)
- 风格化渲染(卡通、素描)
- 性能优化
- 独特的视觉标识
3. 3D 物理
碰撞形状
| 形状 |
使用案例 |
| 长方体 |
建筑物、箱子 |
| 球体 |
球类、快速检测 |
| 胶囊体 |
角色 |
| 网格 |
地形(昂贵) |
原则
- 简单的碰撞器,复杂的视觉效果
- 基于层的过滤
- 射线投射用于视线检测
4. 相机系统
相机类型
| 类型 |
用途 |
| 第三人称 |
动作、冒险 |
| 第一人称 |
沉浸式、FPS |
| 等距 |
策略、RPG |
| 轨道 |
检查、编辑器 |
相机感觉
- 平滑跟随(线性插值)
- 碰撞避免
- 移动时的前视
- 速度变化时的视野变化
5. 光照
光照类型
| 类型 |
用途 |
| 定向光 |
太阳、月亮 |
| 点光源 |
灯具、火炬 |
| 聚光灯 |
手电筒、舞台 |
| 环境光 |
基础照明 |
性能考虑
- 实时阴影是昂贵的
- 尽可能预烘焙
- 大型世界的阴影级联
6. 细节级别
LOD 策略
| 距离 |
模型 |
| 近处 |
完整细节 |
| 中等 |
50% 三角形 |
| 远处 |
25% 或公告板 |
7. 反模式
| ❌ 不要 |
✅ 应该 |
| 到处使用网格碰撞器 |
使用简单形状 |
| 移动设备上的实时阴影 |
预烘焙或 blob 阴影 |
| 所有距离一个 LOD |
基于距离的 LOD |
| 未优化的着色器 |
性能分析和简化 |
记住: 3D 是关于幻象。创造细节的印象,而不是细节本身。