Skip to content

About

Sakura Vale - an interactive voxel Japanese cherry-blossom valley built with Three.js.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

Repository files navigation

樱谷 · Sakura Vale

本作品使用 Deepseek-V4.1-Flash-1017 vibe coding 生成。

原始提示词来源:dotey on X

一片可直接在浏览器中漫游的日式樱花山谷。场景完全由程序化体素与低多边形几何构成:连续起伏的地形、蜿蜒河道、真实平面反射、红桥、村落、茶屋、神社、五重塔、山间森林与远处雪峰,不依赖外部图片或 3D 模型文件。

在线预览:https://eric-thy.github.io/sakura-valley/

画面

暮色 · 山谷全景 手机竖屏
樱谷桌面预览 樱谷手机预览

寺庙小径

功能

  • 四组独立镜头:山谷全景、河边低机位、寺庙小径、山坡俯瞰,带平滑电影式过渡。
  • 三种氛围:暮色、清晨、雨中,同步改变天空、日月光、雾、水面、湿地反光、雨丝和萤火。
  • 水面使用实际场景平面反射,叠加波纹、菲涅尔、岸线过渡与流动高光。
  • 鼠标拖动环绕、滚轮缩放,触屏单指拖动、双指缩放。
  • 重置视角、隐藏界面、保存当前画面 PNG。
  • 可选的镜头巡游与程序化环境音;环境音默认关闭,仅在主动点击后播放。
  • 高画质 / 轻量模式;手机默认轻量模式,并在竖屏下使用单独的构图。
  • 遵循 prefers-reduced-motion;包含 WebGL 2 检测、加载进度和错误提示。
  • 单文件实现:Three.js r160 已内联,无外部字体、贴图、图片或模型依赖。

运行

直接打开 index.html 即可离线运行。建议使用支持 WebGL 2 的现代浏览器并开启硬件加速(Chrome / Edge / Safari / Firefox)。

也可以在当前目录启动任意静态文件服务器:

python -m http.server 8000

然后访问 http://localhost:8000/。

操作

操作 方式
环视 / 俯仰 鼠标左键拖动;触屏单指拖动
缩放 / 前进 鼠标滚轮;触屏双指缩放
切换镜头 底部 01–04,或键盘 1 2 3 4
重置视角 工具条圆形箭头,或 R
切换氛围 右上「暮色 / 清晨 / 雨中」,或 M
镜头巡游 工具条播放键,或 T
环境音 工具条声波按钮(默认关闭)
保存画面 工具条下载按钮,或 S
隐藏 / 显示界面 工具条眼睛按钮,或 H / Esc
切换画质 工具条 HD / LT 按钮

技术

  • Three.js r160,WebGL 2,线性色彩工作流。
  • HDR 场景 → 双尺度泛光 → ACES 色调映射。
  • MSAA 抗锯齿、方向光软阴影、平面反射、程序化天空与环境光照。
  • 重复对象使用 InstancedMesh;阴影按需更新,轻量模式下降采样反射并隔帧更新。
  • 除 Three.js 外无第三方运行时依赖;无外部素材。

原始提示词(原文照录)

请直接制作一个可以在浏览器中实时交互的高完成度 3D 景观网页。

主题:日式樱花山谷。
使用 HTML、CSS、JavaScript 实现。不要生成图片,不要只给设计方案,
不要用一张背景图加视差效果冒充 3D。我要的是实际可运行、可游览的成品。

【一、作品定位】

这是一片完整、连续、有远近层次的山谷景观,
不是孤立的小摆件、悬浮岛、带底座的沙盘,也不是单纯的技术演示。

风格是现代精细体素 / voxel art:
保留立方体几何的造型语言,但画面应高分辨率、抗锯齿、光影细腻。
不要复古低分辨率像素化,不要粗大积木堆砌,不要给画面套像素滤镜。

视觉质量优先。宁可少几个功能,也不要牺牲构图、材质和光照。

【二、参考图的使用方式】

如果附有参考图,请先理解它的构图层次、尺度、光线和色彩关系。
仅借鉴氛围与视觉语言,重新设计场景,
不要照搬建筑、树木、山体和道路的位置,不要 1:1 复刻。

参考图不是网页里的背景素材。场景本身必须由真实 3D 几何构成。

【三、场景构图】

默认打开时就应呈现一幅完整、有吸引力的画面,
不需要用户先旋转镜头才能找到好看的角度。

采用透视相机,而不是沙盘式等距俯视相机。
画面有明确的前景、中景、远景:

前景:
一株有存在感的古老樱花树,配合岩石、草木、石灯笼和少量落花,
形成画面边缘的自然框景,但不能挡住河流、桥和主要建筑。

中景:
一条蜿蜒河流引导视线进入画面,红色木桥横跨河面;
村落、茶屋、神社和小径顺着地势分布,建筑之间有真实的通行关系。
地面有起伏、岸线和自然过渡,不是平面上均匀摆放模型。

远景:
山坡上的多层塔、不同距离的森林和山脊,以及远处的雪山。
用尺度变化、遮挡、冷暖变化和空气透视表现距离,
而不是仅仅把远处物体缩小。

不要把所有元素均匀铺满。需要主次、疏密、留白和清楚的视觉焦点。

【四、造型与画面质量】

樱花树:
树干有转折、分叉和根部,树冠由不规则花簇组成,
有间隙、厚薄变化和可见枝条。不要做成几个规则球体或方块团。

建筑:
屋顶有层叠瓦片、挑檐、梁柱和窗格;
不同建筑有用途、体量和高度差异,不要复制同一栋房子铺满山谷。

地形:
岸边有湿润石块、草丛和植被过渡。
避免过于规律的台阶、重复条纹、棋盘格和明显的程序生成网格。

水面:
必须能够反映周围景物,具有适度的波纹、深浅变化和岸边过渡。
尽量使用实际场景反射;需要性能降级时也应保持视觉可信。
不要用闪烁噪声、强烈扭曲或一整块蓝色平面代替水。

细节:
可以有少量锦鲤、落花、萤火虫、瀑布和远处飞鸟,
但都应服务于氛围,不能让画面显得嘈杂。
不要为了宣称模型数量而堆砌细节。

【五、色彩与氛围】

默认是蓝调时刻:
偏冷的山谷与远山,柔和的粉色樱花,温暖但不过曝的灯笼和窗光。
暖光集中在有人活动的地方,不要把整个环境染成橙色。

需要柔和阴影、物体接触处的明暗、合理的曝光、
克制的泛光、抗锯齿和有距离层次的薄雾。

避免发白、灰蒙、过度饱和、满屏浓雾、过曝灯光和明显锯齿。
方块几何可以清晰,但渲染本身不能粗糙。

另提供“清晨”和“雨中”两种氛围;
切换时应同步改变天空、环境光、雾和局部效果,
不是仅仅修改背景颜色。

【六、交互与界面】

提供四个经过设计的镜头:
山谷全景、河边低机位、寺庙小径、山坡俯瞰。
切换应平滑,每个镜头都需要有独立的构图价值。

基础交互:
鼠标拖动观察、滚轮缩放或前进,触屏支持拖动和双指缩放。
提供重置视角、隐藏界面和保存当前画面的功能。

可选增强:
自由探索、缓慢镜头巡游、环境音。
环境音默认关闭,只在用户主动点击后播放。
额外功能不能影响默认画面的完成度。

界面要克制、有设计感,以景观为主。
标题和控制条放在边缘,不遮挡视觉焦点。
桌面和手机都不能出现按钮越界、文字重叠或无法操作的问题。

【七、工程与性能】

允许使用 Three.js / WebGL,以及版本固定、互相兼容的 CDN 依赖。
优先使用成熟渲染能力,不要为了“零依赖”重写整套引擎。

自写的 HTML、CSS、JavaScript 尽量整理在一个 HTML 文件中。
景物由程序化几何和材质生成,不依赖外部图片或 3D 模型资源。

重复物体采用适合的批量或实例化绘制方式;
合理控制细分、阴影、反射和渲染分辨率。
提供高画质和轻量模式,手机默认使用较轻设置。
不要靠无限增加体素数量换取细节。

加入加载提示、WebGL 不支持时的提示和必要的错误处理。
没有开启声音时不要自动播放;尊重减少动态效果的系统偏好。

【八、交付前验收】

不要写完代码就立即交付。

如果当前环境支持浏览器运行和截图,请先实际打开页面,
检查默认镜头、四个视角、氛围切换、桌面和手机布局,
再根据截图修正明显的构图、曝光、遮挡和渲染问题。

重点检查:
是否存在空白画面、加载失败、控制台错误;
是否有穿模、闪烁、阴影条纹、过曝、水面异常;
默认画面是否真正像完整景观,而不是小型沙盘;
功能按钮是否实际可用,移动端是否越界。

可以使用浏览器截图验收,但不要调用图像生成工具。
没有完成的测试要如实说明,不要声称已经验证。

最终交付:
1. 实际存在、可以打开的 HTML 文件,或当前环境支持的交互预览。
2. 如能截图,附一张真实浏览器渲染截图。
3. 简短说明操作方式和必要的运行条件。

请直接完成制作;非关键细节自行作出一致的设计选择,
不要把可以自行解决的实现问题反复交给我决定。

原始提示词链接:https://x.com/dotey/status/2102565403109085669


Third-party: Three.js r160, MIT License.

About

Sakura Vale - an interactive voxel Japanese cherry-blossom valley built with Three.js.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages