尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
根据实测的屏幕离轴光谱数据,在浏览器里用 WebGL 仿真手机屏幕从不同角度看过去的亮度衰减与色偏,并可对比防窥模式 / 防窥膜的效果。 打开网页默认是屏幕仿真(直观的对比画面)。三维的场景演示是做演示动画用的,收在右侧面板“画面 → 更多 → 三维场景演示”里(也可以在网址后加 #mode=3d 直接打开;进入后顶部有切换可以回到屏幕仿真)。三维场景的脚本只在第一次进入时才加载。檢視完整 README ↗
根据实测的屏幕离轴光谱数据,在浏览器里用 WebGL 仿真手机屏幕从不同角度看过去的亮度衰减与色偏,并可对比防窥模式 / 防窥膜的效果。
在线访问:https://smartlanny.github.io/phone-view-angle-sim/
打开网页默认是屏幕仿真(直观的对比画面),默认机型 iPhone Duo(展开看内屏)。三维的场景演示是做演示动画用的。电脑和 iPad 横屏时,左栏顶部的“屏幕仿真 | 场景演示”切换可以进入;其他布局在设置的“画面”页里,“演示”下面有“三维场景演示”按钮。也可以在网址后加 #mode=3d 直接打开。场景演示顶部的切换可以回到屏幕仿真。三维场景的脚本只在第一次进入时才加载。
scene3d/,说明见 scene3d/README.md。
+ / - 手动调整。scene3d/CREDITS.md)。| 机型 | 状态 |
|---|---|
| 华为 Mate 90 Pro Max 典藏版 | 普通 |
| 小米 18 Pro Max | 普通 / 开启防窥模式 |
| iPhone 18 Pro Max(GH3 屏) | 普通 / 贴防窥膜 |
| iPhone 17 Pro Max(GV3 屏) | 普通 |
| iPhone Duo | 内屏 / 外屏可视角数据;反射待测 |
华为 Mate 90 Pro Max 典藏版的可视角度数据来自本机实测;机身外观按用户提供的正反面参考图绘制,比例为参考图估算,不代表官方尺寸。
基础机型的每种状态测量 6 个方向:面内顺时针转 0°、30°、60°、90°、120°、150°,每个方向离轴角 −70° ~ 70°、步长 2°,记录白 / 红 / 绿 / 蓝 / 黑五个画面的 CIE XYZ(cd/m²)。正负扫描组成 12 条实测半径线,其间方向由插值得到。
数据已经打包进 web/data.js,网页打开即用,无需后端。原始测量文件(.ang2)也一并放在仓库里。
iPhone 17 Pro Max 的原始测量保存在 iPhone 17 Pro Max GV3/iPhone 17 ProMax.json(vam-result/1),包含 12 个方位、0°~70° 的五色 XYZ 数据。转换时按测试方向修正将方位角旋转 180°;原始文件与 XYZ 数值不变。
纯静态网页,任意静态服务器即可:
python3 -m http.server 8765 --directory web
然后打开 http://localhost:8765。
把新的 .ang2 测量文件放进仓库目录(可以放在以机型名开头的子文件夹里,多出的部分会作为屏幕供应商后缀,如 iphone18 Pro Max GH3/),然后重新生成 web/data.js:
python3 tools/convert_ang2.py
cp web/data.js scene3d/public/data/ang_data.js
cp web/duo-data.js scene3d/public/data/duo_data.js
vam-result/1 JSON 数据及其方向修正在转换脚本的 VAM_SOURCES 中登记,沿用同一个生成命令。
Duo 的数据入口为 web/duo-data.js(三维开发页使用相同的 scene3d/public/data/duo_data.js 副本),随上述转换命令生成。内屏使用 iPhone Duo 内屏/iPhone Duo 内屏低精度.json,覆盖 12 个方位、0–70°(步长 2°),沿用文件原方位,不套用 iPhone 17 的 180° 修正。原始 JSON 同时保留五档灰阶;当前仿真使用 W/R/G/B 实测通道,文件未测黑场,不合成 K 数据。
外屏目前使用 iPhone 18 Pro Max GH3 的未贴膜 p0 数据,后续以 Duo 外屏实测更新(界面不显示数据来源说明)。内外屏反射光谱 SCI / SCE 与角度散射继续独立留空。
开合定义为 0° 闭合、180° 展开。固定弯曲截面取自闭合模型的内屏网格,中间开合姿态为几何插值;没有折痕宽度调节项。来源与几何边界见 Duo 几何说明。
调整 Duo 设置画面前,请阅读 UI 设计审阅 Prompt 与对照截图,其中包含真实系统参考、原有 UI、当前候选和用户的账号展示要求。
展开后的残余折痕采用用户指定的代表工况:峰谷高度差 100 µm(0.1 mm)、中央跨轴坡角 1.1°。具体截面用平滑曲线近似,坡角按中央截面切线相对展开基准平面的角度定义;这两项数值并不唯一确定真实截面。屏幕位置与局部法线由同一截面计算,用于各处的离轴角和后续色偏计算。
方向优先按文件名识别;内部旧标签原样保留。当前 120° 文件内部仍有旧的 60° 标签,不能按内部标签覆盖文件名。防窥膜 与普通状态共用机型,原有 iPhone 18 Pro Max 数据标记 GH3。原始文件字节校验记录见 docs/measurement-sources.json。
机型外观参数(尺寸、圆角、开孔、配色)在 web/devices.js 中配置。
web/ 网页本体(GitHub Pages 发布这个目录)
scene3d.js 场景演示模式(由 scene3d/ 构建,npm run build:web)
scene3d-person.js 内嵌的人物模型(CC0)
index.html
app.js 界面与交互
model.js 可视角光学模型(插值、色偏、JNCD、ΔE2000)
phone3d.js 手机机身几何与渲染
devices.js 机型外观参数
patterns.js 程序化测试画面
viz.js 观看方向盘与随离轴角变化曲线
data.js 内置测量数据(由 tools/convert_ang2.py 生成)
tools/
convert_ang2.py .ang2 → web/data.js
embed_avatar.py 头像内嵌为 web/avatar.js
scene3d/ 场景演示的源码(Vite + TypeScript + three.js)
docs/ 文献调研笔记
*.ang2 原始测量数据