一个使用Three.js完全通过程序化代码构建、不包含任何二进制美术资源的《宝可梦 叶绿》开场第一人称现代3D卡通重制版。

Stars

25

7 天增长

暂无数据

Fork 数

4

开放 Issue

0

开源协议

MIT

最近更新

2026-07-30

AI 仓库情报摘要
FR-AI / ANALYSIS

为什么值得关注

该项目仅依靠程序化生成纹理(基于噪声的烘焙)、模型(有符号距离场+移动立方体)和音频,配合确定性种子、HDR渲染管线(GTAO、泛光、ACES色调映射)以及集成截图回归测试工具,实现了一个完整的类游戏场景。

适合谁使用

  • 对程序化生成感兴趣的网络游戏开发者
  • Three.js / WebGL 爱好者
  • 宝可梦粉丝开发者
  • 探索程序化美术管线的独立游戏美术师

典型使用场景

  • 作为程序化纹理烘焙与资源生成的参考实现
  • 学习Three.js的后处理与HDR管线
  • 原型设计确定性游戏世界
  • 研究用于生物建模的移动立方体算法

项目优势

  • 零二进制资源,全部程序化,减少资产管线依赖
  • 确定性种子确保截图的可复现性,便于视觉回归测试
  • 定义良好的渲染链:单独色调映射、泛光处理真实超范围值
  • 集成的捕获工具与镜头列表合约,保证视觉审查的一致性

使用前须知

  • 首次加载约需20秒,程序化世界构建位于玩家关键路径上
  • 需要WebGL2及足够硬件支持(1600×900下60fps、≤260次绘制调用、≤220万个三角形)
  • 在捕获过程中编辑源文件会导致Vite热重载重启,可能使捕获超时

README 快速开始

Pallet Town

A first-person, modern-3D-cartoon reimagining of the opening of Pokémon LeafGreen — the town, and the choice of a first partner Pokémon — built in Three.js.

Everything you see is generated in code. The project ships no binary art assets: every texture is baked procedurally at load time, every model is sculpted from signed-distance fields and marching cubes, and every sound is synthesised in WebAudio.

npm install
npm run dev          # http://127.0.0.1:5173
npm run check        # typecheck
npm test             # unit tests

First load builds the whole world procedurally and currently takes around 20 seconds. That is on the player's critical path and is the largest outstanding defect in the project; World.build() logs a per-step breakdown to the console so the expensive step is always visible.

Click to lock the pointer. WASD move · Shift run · Space jump · Mouse look · E interact · Esc release cursor.


Layout

src/
  core/          engine, render pipeline, input, procedural texture bakery, noise
  world/         terrain, sky, water, buildings, vegetation, props, lab interior
  player/        first-person controller
  gameplay/      the starter Pokémon and the choice sequence
  ui/            HUD, dialogue, menus
  audio/         procedural soundscape
  fx/            shared materials and the sculpting toolkit
tools/           headless capture harnesses used for visual review

ART_DIRECTION.md is the art bible. It is the reason a scene assembled by many hands still reads as one place, and it takes precedence over individual taste. PROMPT.md is the single message the whole project was built from.

How it renders

The whole chain runs in HDR half-float targets, with exactly one tone-map at the end:

scene (MSAA) → GTAO → bloom → grade (DOF · ACES · split-tone · vignette · grain) → SMAA

Tone mapping is deliberately disabled on the renderer itself. Bloom has to see true over-range values or sunlight blooms into a grey halo instead of a soft falloff, so the single ACES conversion lives at the end of the post chain in PostFX.ts — never in both places.

Lighting is a small rig, owned entirely by world/Atmosphere.ts: one shadow-casting key light, a hemisphere fill whose ground colour is what makes shadows read blue-green rather than grey, a dim warm bounce, and a PMREM envir

项目描述

Pallet Town — a first-person, modern 3D cartoon reimagining of the opening of Pokemon LeafGreen, built in Three.js with zero binary art assets

相关仓库与替代方案

根据分类、Topic 和编程语言匹配的相似项目。

TanStack
精选
TanStack GitHub avatar

router

TanStack Router is a type-safe, data-driven React router with built-in caching, prefetching, and nested layouts, while TanStack Start extends it into a full-stack SSR framework.

Web 开发前端框架
14,861
vercel-labs
精选
vercel-labs GitHub avatar

scriptc

scriptc compiles ordinary TypeScript into small, fast native executables without needing Node.js, V8, or any JavaScript runtime in the binary.

开发者工具代码质量与构建
1,985
Jakubantalik
精选
Jakubantalik GitHub avatar

thinking-orbs

A React component library that renders six hand-tuned animated thought orb loading indicators on a plain 2D canvas, with two purpose-tuned sizes and automatic theme detection for AI and agent UIs.

AI 与机器学习AI 智能体
1,191