一个 Call of Duty 级别的 FPS 在 Three.js 中构建,仅需一条提示。
请点击 这里 查看更新。
在浏览器中使用 Three.js r180 和 WebGL2 构建的第一人称射击游戏。
11 个子系统中有 55 千行代码,由一群在编排下工作的 AI 代理编写。
**没有艺术资产。**所有纹理、网格、动画和声音都是通过生成获得的
在加载时从代码中进行程序性加载。没有模型、没有 HDRI、没有图像文件、没有音频
文件。唯一的运行时依赖项是 three。
npm install
npm run dev # http://127.0.0.1:5173点击画布可锁定 Cursor。 WASD 移动、鼠标瞄准、左键射击、右键 ADS, R 键重新加载, Shift 键冲刺, Ctrl 键蹲下, 空格键跳跃, Q/E 键倾斜, Esc 键放开。
| 子系统 | 其作用 |
|---|---|
render |
HDR 管线, 以 sampler2DArray 形式嵌套的阴影贴图, 具有像素捕捉和 PCSS 接触硬化, MRT 深度/法线/速度预处理, GTAO, TAA 与 YCoCg 方差剪切, 瓦片扩散运动模糊, Karis 弹光金字塔, GPU EV100 计量, 程序性 33³ 级 LUT, AgX 合成 |
materials |
GPU 纹理锻造: 19 个程序性表面 (混凝土, 砖, 石膏, 沥青, 沙子, 锈蚀/涂漆/刷漆的金属, 木材, 织物, 麻布, 玻璃…), 所有内容无缝拼接的周期性噪声, Sobel 高度 → 法线, 平行光遮蔽映射, 三平面投影, 曲率驱动的边缘磨损 |
sky |
大气散射, 日照时间, PMREM 环境生成, 体积雾和光轴 |
world |
~120×120 米的市场街道: 具有真实墙厚的模块化建筑套件, 可进入的内部空间, 数百个实例化道具 |
physics |
从头开始编写, 没有库。分组 SAH BVH (29 万三角形 → 14 个节点, 22 毫秒, 0.25 微秒/光线投射), 扫描圆柱形角色控制器, 具有 CCD 的冲击刚体, PBD 玩偶, 多层子弹穿透 |
player |
运动状态机, 滑动/护甲/倾斜, 摄像机感受 |
weapons |
程序性武器几何图形, 视图模型架构, ADS, 弹簧回弹, 程序性重新装弹, 子弹飞行时间和落地 |
fx |
GPU 粒子, 贴图, 追踪器, 枪口闪光, 爆炸 |
ai |
着色士兵, 导航网格路径, 感知, 遮蔽行为, 玩偶 |
暂无开放 Issues,或尚未同步最近议题。