基于头部追踪的实时3D演示,通过摄像头创建逼真的"虚拟世界窗口"效果。使用 Three.js 和 MediaPipe FaceMesh 构建。

离轴投影效果创造了逼真的"虚拟世界窗口" - 移动头部即可在2D屏幕上体验真实的3D深度!
在线演示:[您的演示 URL]
本地运行:
# 克隆仓库
git clone https://github.com/MindDock/off-axis-demo.git
cd off-axis-demo
# 启动本地服务器(Python 3)
python3 server.py
# 在浏览器中打开 http://localhost:8000
演示运行后,您可以使用以下控制:
下载模型:访问 Sketchfab 下载 GLTF 格式模型
添加到项目:
models/ ├── default/ # 默认模型(已包含) │ └── scene.gltf └── your-model-name/ # 您的自定义模型 ├── scene.gltf └── textures/ # 如果适用
在代码中注册:编辑 index.html 并将您的模型添加到 models 对象:
const models = {
'Original': './models/default/scene.gltf',
'Your Model': './models/your-model-name/scene.gltf',
// ... 其他模型
};
makePerspective() 重新计算相机的投影矩阵,使用非对称视锥参数index.html 中的关键参数:
const SCREEN_WIDTH_CM = 30.0; // 虚拟屏幕宽度
const SCREEN_HEIGHT_CM = 20.0; // 虚拟屏幕高度
const BOX_DEPTH_CM = 80.0; // 空间深度
const SENSITIVITY = 2.5; // 头部追踪灵敏度
可以通过修改 createEnvironment() 函数自定义赛博朋克网格环境:
stepX 和 numZLinesgridUniforms.color(默认:0x00ffff 青色)distFade 计算三个可配置的光源:
要求:
本项目采用 MIT 许可证 - 详见 license.txt 文件
欢迎贡献!请随时提交 Pull Request。
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)项目链接:https://github.com/MindDock/off-axis-demo
提示:该演示在距离屏幕 40-80cm 时效果最佳。移动头部以体验3D效果!