Commit Graph
36 Commits
Author SHA1 Message Date
fukunee dddf622d95 标记便签在地平线附近渐变淡出,修复拖拽闪烁 2026-09-19 13:27:59 +08:00
fukunee b33ffd3b2d 清理 CAMERA_POSES 里无效的 globe 相机配置 2026-09-19 13:25:54 +08:00
fukunee 83de329750 Add stress test generator for 1000 synthetic entries
Adds scripts/gen_entries_stress.py to produce a large synthetic
dataset for performance testing, and notes the texture lazy-loading
plan in the README.
2026-09-19 04:26:55 +08:00
fukunee f4ef046c9a README 增加 TODO:活页本分册、时间轴时期划分、词条结构与排版优化 2026-09-19 04:23:44 +08:00
fukunee e05143ad73 性能优化:精灵降采样、像素比降低、麂皮法线降分辨率
- 时间轴文字精灵超采样 SS 4→2,显存省 75%
- Three.js 像素比上限 2→1.5,Cesium resolutionScale 1.5→1.0
- 麂皮法线贴图 1024×1280→512×640,启动逐像素计算省 75%
2026-09-19 04:12:43 +08:00
fukunee 39d4c728b0 修复翻页闪烁与渲染时序,恢复翻页弯曲
- 恢复翻页弯曲(双几何:顶层高分段/栈内极简),关闭纸张自然弧度
- 翻页开始即预切露出页的几何/亮度/投影,消除完成瞬间跳变
- 纹理懒加载窗口 ±1 扩到 ±2,覆盖向后翻页露出的下一层页
- isSettling 纳入按需渲染判断,修复页面 z 过渡期间不渲染
- 顶层页抬高 TOP_LIFT、翻页 z 起伏 FLIP_LIFT,拉开深度避免穿模
2026-09-19 04:05:24 +08:00
fukunee e10dfed93d binder 几何降级:栈内页用极简几何、封面/环/铆钉降低分段(三角形 357K→24K) 2026-09-19 03:38:50 +08:00
fukunee 6204b17db3 loading 界面展示时长调整为 6 秒 2026-09-19 03:28:01 +08:00
fukunee 4eb61b7aa5 README 补充部署方法 2026-09-19 03:23:25 +08:00
fukunee f701862e5a 性能优化:Cesium 懒加载+后台预载、按需渲染、射线检测节流、城市标签 primitive 化、时间轴纹理跟随可视区域
- Cesium 改为动态加载(vite 插件不再注入 6MB 脚本),首屏零 Cesium 请求
- 首帧渲染后后台预载地理视图,loading 展示 8 秒期间并行,就绪前地理按钮置灰
- Three.js 按需渲染:静止停止重绘,动画/交互/状态变化时渲染
- 射线检测合帧节流,binder 只测当前页±1、时间轴只测可视窗口
- 移除 vignette 的 mix-blend-mode 全屏合成
- 7342 个城市从 entity 改为 PointPrimitiveCollection + LabelCollection
- 时间轴懒加载窗口跟随可视区域(拖拽/缩放实时跟随)
2026-09-19 03:21:27 +08:00
fukunee 0c7990a9a8 标记便签字体和尺寸调小 2026-09-19 03:00:27 +08:00
fukunee dac7aefeb4 标记便签可见距离改为 8000km 2026-09-19 02:56:49 +08:00
fukunee eb165d03c5 Lazy-load page textures with LRU cache and double-sided materials
Replace eager texture generation with a reference-counted pool
that loads only the visible window and evicts unused pages, and
swap front/back mesh pairs for single meshes using a two-sided
material to halve draw calls. The timeline now drives its texture
window from the camera's visible world range each frame, and the
binder tracks a current-page window. Flip animations also finalize
immediately so rapid flips chain smoothly.
2026-09-19 02:44:15 +08:00
fukunee 2a173833d0 行政区划数据换回 50m 2026-09-19 02:34:58 +08:00
fukunee 213b2fe7a1 导航栏等 HUD 元素置顶(z-index 40) 2026-09-19 02:33:42 +08:00
fukunee 159b98d232 信息卡片置顶(z-index 30) 2026-09-19 02:29:25 +08:00
fukunee 2687e5fd95 标记便签:加缩放距离限制并修复背面可见问题 2026-09-19 02:28:21 +08:00
fukunee fade9eedc2 标记便签改为 DOM 覆盖层,修复近距离缩放漂移 2026-09-19 02:25:05 +08:00
fukunee 41d68e087a 行政区划线加粗、中华民国改为中国台湾 2026-09-19 02:17:34 +08:00
fukunee 91d82d27bf 标记便签改为金色(与 logo 同色)、缩小 padding 2026-09-19 02:16:46 +08:00
fukunee 18a2077369 点击标记平移居中,不再重置缩放 2026-09-19 02:16:14 +08:00
fukunee ed7d377eb6 标记便签抬至高空,确保深度排序盖在城市/国家名上层 2026-09-19 02:15:12 +08:00
fukunee 52111b6cce 调整实体渲染顺序:标记便签始终在城市/国家名上层 2026-09-19 02:04:22 +08:00
fukunee 14162ba7d0 标记去掉圆点,改为带左箭头的便签指向坐标 2026-09-19 01:52:13 +08:00
fukunee d4f27f3857 标记改为整张便签图(黄底黑字合成为一张 Billboard) 2026-09-19 01:47:50 +08:00
fukunee b63fc980f9 标记便签改用纸张黄、黑字加粗 2026-09-19 01:42:45 +08:00
fukunee e3a55bfc01 地球词条标记改为黄色便签样式(黄底黑字) 2026-09-19 01:39:41 +08:00
fukunee 32bb48cc0b Add loading overlay while scenes initialize
- Show a spinner overlay that fades out once Cesium globe
  data is ready, with a 1s minimum and 8s timeout
- Expose a ready promise on CesiumGlobe resolved after country
  and city data load
- Remove temporary inspect script
2026-09-19 01:18:15 +08:00
fukunee 58bc998c6e Lazily create and toggle Cesium globe visibility
The globe container now uses a `visible` class instead of
`display`, allowing the Cesium viewer to be pre-created on page
load while remaining hidden until the geographic view is selected.
2026-09-19 01:12:45 +08:00
fukunee 71750e5dad Expand chronicle to 300 entries with world data
Add a generator script that produces the entries dataset, dedupe
entries sharing coordinates, and ship world city and country
GeoJSON assets for the globe view.

Make the timeline card spacing derive from entry count, move the
view switcher into the bottom bar, and align card and label fonts
with the timeline titles.
2026-09-19 01:07:41 +08:00
fukunee 9a1a3685ce Tune camera and timeline controls, add globe fly-to
- Clamp binder/timeline zoom ranges and disable OrbitControls zoom,
  using custom smooth zoom instead
- Disable middle/right mouse buttons; reduce rotate speed
- Fly camera to picked marker on globe click
- Rebuild leather surfaces with a regular grid for smooth curvature
- Refine suede and kraft paper textures, punch real page holes
- Reposition axis, time labels, and detail card; speed up iris fade
2026-09-18 22:46:26 +08:00
fukunee 94fde7942f Prevent text selection and restrict globe/camera controls
Disable copy, cut, and context menu site-wide, and limit Cesium
camera input to left-drag rotation and wheel zoom only. Also speed
up page flip animation from 1.3s to 0.6s with an ease-out curve for
a snappier feel.
2026-09-18 21:39:11 +08:00
fukunee 13d3ef180a Replace Three.js globe with Cesium
Migrate the globe view to a Cesium viewer with Esri satellite
imagery and terrain, dropping the custom blue-marble texture and
dot-bead rendering. Add vite-plugin-cesium and a container element
for the viewer.

Also rework the binder leather and suede materials with dedicated
normal maps, and refine timeline labels and page hole sizing.
2026-09-18 21:29:30 +08:00
fukunee ac12405bdf Make page curl lift across full width
Replace localized spine curl with whole-page arc so the
free edge rises highest, and float the topic label with the
selected card.
2026-09-18 19:30:34 +08:00
fukunee b79e6c9c03 地球点阵:贴合真实地形采样、加密缩小、海陆精准分类(含极地与西伯利亚) 2026-09-18 19:26:07 +08:00
fukunee 4e818d53e3 Add 3D loose-leaf chronicle of human civilisation
A Three.js site presenting 20 world history milestones as
double-sided loose-leaf pages, with three views: a leather
binder with page-flip animation, a golden timeline, and a
dotted globe with great-circle arcs.

All textures (paper, leather, registration cards, and 18
hand-drawn sketches) are generated procedurally via Canvas
2D, so no external image assets are needed beyond the Earth
map. Includes dev helper scripts for screenshots, ASCII
previews, and headless verification.
2026-09-18 19:19:53 +08:00