AX 爱鲜报

Folio 2025 个人 3D 作品集

Bruno Simon 2025 年个人作品集,基于 Three.js 与自研物理引擎打造的开放世界 3D 网页体验,可驾驶载具在昼夜、四季与天气循环中自由探索。

爱鲜报评分

0.0

0 人评分

1.9k

星数

否

中文

JavaScript

主语言

是

活跃

1

贡献者

人工分析

EDITORIAL

推荐理由

这是 Web 3D 领域极具代表性的作品集项目,作者把游戏化的开放世界塞进了浏览器:自研物理、昼夜与四季循环、天气系统、植被与地形交互一应俱全。代码结构清晰,游戏循环按阶段编号拆分,非常适合学习大型 Three.js 项目的架构组织方式。想进阶 WebGL/3D 前端或做创意作品集的人值得精读源码。

适用场景

  • Web 3D 作品集与创意展示
  • Three.js / WebGL 学习与源码研究
  • 浏览器端小游戏与交互体验开发
  • 游戏循环与物理系统架构参考
  • Blender 模型导出与 GLB 压缩流程参考

优点

  • 完整的开放世界 3D 体验,涵盖物理、天气、昼夜四季等系统
  • 游戏循环按阶段编号组织,模块职责清晰,便于拆解学习
  • 包含 Blender 导出与 GLB/纹理压缩脚本,资产管线完整
  • MIT 协议开源,可直接作为个人作品集模板参考
  • 作者为知名创意开发者,代码与视觉效果质量高

缺点

  • 无官方中文文档,注释与说明以英文为主
  • 依赖 Three.js 与自研物理,缺少系统化教程,上手门槛偏高
  • npm install 需加 --force,依赖版本兼容性需自行处理
  • 需自行配置 .env 文件,首次运行有一定环境成本
上手难度 较难

Folio 2025 是什么

Folio 2025 是创意开发者 Bruno Simon 的 2025 年个人作品集,一个完全运行在浏览器里的开放世界 3D 体验。访问 bruno-simon.com 即可驾驶载具在场景中自由探索,感受昼夜交替、四季变化与实时天气。

项目使用 JavaScript 编写,核心基于 Three.js 渲染,并配有作者自研的物理系统,整体更接近一款小型 3D 游戏而非传统网页。

核心特性

  • 开放世界探索:可驾驶的物理载具,配合地形、赛道与碰撞交互
  • 时间系统:昼夜循环与年度季节循环,驱动光照、天气与场景状态
  • 天气系统:风、雨、雪、闪电、龙卷风等动态效果
  • 环境细节:植被、落叶、雾气、水面、灯笼、木箱等大量可交互对象
  • 音频与通知:随场景状态触发的音效与提示系统

游戏循环设计

项目最值得学习的是它的游戏循环(Game Loop)组织方式。作者把每一帧的处理拆成编号阶段,每个阶段只负责一类更新,依赖关系一目了然:

0  时间与输入
1  Player:pre-physics
2  PhysicalVehicle:pre-physics
3  Physics(物理步进)
4  物理可视化与场景对象
5  PhysicalVehicle:post-physics
6  Player:post-physics
7  View(相机)
8  Intro / 昼夜 / 季节 / 天气 / 区域 / 载具视觉
9  风 / 光照 / 龙卷风 / 交互点 / 轨迹
10 地形、植被、雨雪、水面等大量视觉元素
998 渲染
999 性能监控

这种「按阶段编号 + 显式依赖」的写法,在大型 Three.js 项目中非常实用,能有效避免更新顺序混乱。

本地运行

先根据 .env.example 创建 .env 文件,安装 Node.js 后执行:

# 安装依赖
npm install --force

# 本地开发,默认 localhost:1234
npm run dev

# 生产构建,输出到 dist/
npm run build

资产管线

项目包含一套 Blender 到 Web 的资产处理流程:

  • 导出时需静音调色板纹理节点,使用对应导出预设,暂不压缩
  • 执行 npm run compress 后,脚本会遍历 static/ 目录,对 GLB 内嵌纹理与图片做 ETC1S 有损压缩(对 GPU 友好),UI 图片则转为 WebP
  • 原始文件会被保留,方便对比与回退

适合谁

如果你正在学习 Three.js、想了解大型 3D 网页项目的架构,或希望打造一个足够惊艳的个人作品集,这个项目是很好的参考样本。不过它没有中文文档,且涉及物理、着色、资产压缩等多方面知识,建议具备一定 WebGL 基础后再深入阅读源码。

评论

登录后才可评论与评分

0 条评论

  • 暂无评论,来写第一条吧。