从零开始学习3D可视化之摄像机自由飞行

ThingJS开发使用感受 出于为了实现有关厂区的数字孪生项目,断断续续使用ThingJS平台开发一年左右,做一个使用感受的总结。在编码方面,笔者的编码方式和博客中的描述基本一致:“由于平台提供的代码编码端体验不佳,我们不得不先在本地进行开发,再将相关代码复制到在线平台,而调试修改代码也是如此繁琐”。个人感觉至少现阶段的ThingJS还是比较适合去做一些简单的业务场景、数据交互简单的项目,类似于大屏展示,这种纯数据展示;如果要实现一个较为庞大复杂的业务场景时,就不太方便,开发难度也会随之增加。 阅读详情

我学习数字孪生可视化有一小段时间了,第一个制作目标就是在数字孪生可视化场景中实现一个自由飞行的摄像机。使用WSAD键控制摄像机的前后左右移动,使用QE控制摄像机的升降。

这个功能比较简单,代码也一目了然,不做过多解释了,直接上代码吧。

var app = new THING.App({
    url: 'https://www.thingjs.com/static/models/storehouse'
});

// 加载场景后执行
app.on('load', function () {
    // 创建按钮
    new THING.widget.Button('添加控件', add_control);
    new THING.widget.Button('删除控件', remove_control);
});

/**
 * 添加控件
 */
var ctrl = null;
function add_control() {
    if (!ctrl) {
        ctrl = app.addControl(new THING.FlyControl());

        initThingJsTip("控件添加成功!<br>键盘 W A S D 控制飞行, Q E 控制升降");
    }
}

/**
 * 删除控件
 */
function remove_control() {
    if (ctrl) {
        app.removeControl(ctrl);
        ctrl = null;
        initThingJsTip("本例程展示了平台内置的键盘控制摄影机交互的控件,添加控件后可以通过键盘 W A S D 控制飞行, Q E 控制升降,点击左侧按钮进行体验");
    }
}

不只可以用在摄像机上,也可以应用在数字孪生可视化场景中。

我采用的方法是使用平台内置的键盘控制摄影机交互的控件,添加控件后可以通过键盘 W A S D 控制飞行, Q E 控制升降,点击左侧按钮将触发THING.FlyControl 事件,使用键盘来控制相机角度。只需要简单的添加控件就能实现摄像机

从零开始学习3D可视化之数据对接(3) MQTT是ThingJS平台支持的四种数据对接方式之一,MQTT又称Message Queuing Telemetry Transport,消息队列遥测传输,是 ISO 标准(ISO/IEC PRF 20922)下基于发布 (Publish)或订阅 (Subscribe)范式的消息协议,可视为“资料传递的桥梁”。MQTT是一个轻量级协议,使用MQTT协议的中心是broker(服务器/代理),客户端通过订阅消息和发布消息进行数据交互。 使用MQTT方式的步骤如下: 1.直接连接MQTT服务器(需支持w 阅读详情

相关推荐

手把手教你实现聚光灯效果

聚光灯是一种特殊的点光源,它能够朝着一个方向投射光线。聚光灯投射出的是类似圆锥形的光线,这与我们现实中看到的聚光灯是一致的。其灯光从一点发出,沿着某一个方向照射出一个锥形光照范围。聚光灯近似于一个有夹角范围限定的点光源。聚光灯可用于数字孪生可视化场景中模拟舞台、汽车车头灯,手电筒,台灯等光源效果,可添加至3D容器、摄像机等对象下方,对其中所有对应的数字孪生可视化对象生效。 在数字孪生可视化场景中因为项目需要聚光灯是最常使用的光源之一,特别是如果我们想要使用阴影的话也需要用到聚光灯。ThingJS内的聚光灯

ThingJS的博客 3256

从零开始学习3D可视化之摄像机

数字孪生可视化场景中的摄像机,与大家拍照时使用相机的功能相似,数字孪生可视化场景中用摄像机来确定观察 3D 场景的视角。摄像机包含两个重要的位置参数:镜头位置 position 和被拍摄物体的位置 target (又叫目标点)。 1、设置摄像机位置 将下面的代码输入到项目文件中,获取当前摄像机 camera 的 position 和 target 属性,就可以得到数字孪生可视化场景中摄像机的位置信息,也可以将其打印在控制台中。 // 加载场景代码 var app = new THING.App({

ThingJS的博客 1839

Web 3D音乐可视化:用Three.js与Web Audio API打造解压神器

你是否有过这样的时刻:下班后,身心俱疲,只想戴上耳机,让音乐把自己包裹起来,暂时逃离现实?但仅仅听音乐,似乎还少了点什么。如果音乐不仅能被听见,还能被“看见”,变成一幅动态的、与你情绪共振的视觉画卷,那会是怎样的体验? 今天要聊的,就是一个能实现这种体验的“解压神器”——一个开源的 Web 3D 音乐可视化项目。它不是什么复杂的 AI 大模型,也不是需要高深编程知识的框架,而是一个开发者用三天时间,结合 Web 3D 场景、音频处理和数学公式,创造出的一个极具体验感的工具。你只需要一个浏览器,上传一首本地

weixin_30756499的博客 434

基于Godot引擎构建开源3D城市实时视图:从GIS数据到交互式数字孪生

3D可视化与数字孪生技术正成为城市规划、仿真模拟和交互式应用的核心。其原理在于将真实世界的地理信息数据通过计算机图形学技术转化为可实时渲染与交互的虚拟环境,从而在数字空间中构建物理实体的动态映射。这项技术的核心价值在于提供了一个低成本、高沉浸感的分析与展示平台,广泛应用于智慧城市、建筑设计、教育演示及游戏开发等领域。本文聚焦于利用轻量级开源游戏引擎Godot,实现从开源GIS数据到高性能3D城市实时视图的完整技术路径。通过解析数据管道构建、场景实例化渲染、动态环境系统等关键模块,深入探讨了如何将海量城市数据

ithome 442

Unity从零构建开源飞行引擎:模块化架构与空气动力学实现

飞行模拟是游戏开发与工程仿真领域的核心技术,其核心原理在于通过物理模型模拟飞行器在空气中的受力与运动。在技术实现上,模块化架构设计是关键,它将复杂的飞行系统拆分为输入、飞控、物理、环境与表示等独立模块,通过高内聚低耦合的原则确保系统的可维护性与扩展性。这种架构的价值在于能够灵活适应从游戏娱乐到无人机算法测试等多种应用场景。本文以Unity引擎为实践平台,详细阐述了如何基于刚体物理与空气动力学系数模型,构建一个包含飞控系统与仪表显示的开源飞行引擎原型,其中PID控制器用于实现飞行稳定性,而Scriptable

weixin_30875157的博客 334

UE5 3D场景搭建实战:从零到一构建可交互虚拟世界

实时全局光照与虚拟化几何体是构建高质量3D场景的核心技术。实时全局光照通过模拟光线在场景中的多次反弹,实现动态、真实的光影效果,摆脱了传统预计算光照的局限。虚拟化几何体技术则允许引擎高效处理包含数亿多边形的超高清模型,无需开发者手动进行复杂的模型优化。这两项技术的结合,极大地降低了创建电影级视觉效果的工程门槛,使得实时渲染的3D场景在游戏开发、建筑可视化、影视动画等领域的应用成为可能。本文以虚幻引擎5(UE5)为平台,通过Lumen全动态全局光照和Nanite虚拟化微多边形几何体两大核心特性,手把手演示如何

weixin_29534421的博客 291

Godot引擎TPS游戏开发入门:从官方Demo到实战原型

游戏开发中,第三人称射击(TPS)是一种广受欢迎的游戏类型,其核心在于角色控制、摄像机跟随和实时战斗系统。通过理解游戏引擎的基本原理,开发者可以高效构建交互体验。Godot作为一款开源轻量级游戏引擎,凭借其节点化架构和GDScript脚本语言,为快速原型开发提供了强大支持。在工程实践中,掌握摄像机控制、动画状态机和物理碰撞检测等关键技术,能够显著提升游戏手感和性能。本文以Godot官方tps-demo项目为例,深入解析TPS游戏的核心模块实现,涵盖角色移动、射击机制和敌人AI等热词内容,帮助开发者从零构建可

weixin_30265103的博客 649

Unity集成Cesium数字地球:从零配置到加载全球地形与卫星影像

3D地理空间数据可视化是数字孪生、智慧城市和仿真训练等领域的核心技术,其核心原理在于将真实世界的地理坐标与虚拟三维场景进行高精度映射。通过流式传输技术和瓦片化数据组织,能够实现大规模地形与影像数据的实时加载与渲染。Cesium作为业界领先的开放平台,提供了标准化的3D Tiles数据格式与全球地形服务。在Unity引擎中集成Cesium for Unity插件,开发者可以便捷地调用Cesium ion云服务,将高精度地形、卫星影像等真实地理数据直接流式加载到游戏或应用场景中。这极大地简化了传统GIS数据处理

weixin_33970449的博客 536

UE新手入门:从核心概念到实践路径的完整认知地图

实时3D引擎是现代数字内容创作的核心工具,它通过实时渲染技术,实现了所见即所得的创作流程,从根本上提升了内容迭代效率与交互体验。其核心价值在于将复杂的图形学原理封装为可视化的工作流,赋能游戏开发、虚拟制片、建筑可视化及模拟训练等多个领域。以Unreal Engine为例,其组件化架构与蓝图可视化脚本系统,极大地降低了开发门槛,而Lumen动态全局光照与Nanite虚拟几何体等前沿技术,则代表了实时渲染的未来方向。对于初学者而言,理解引擎的定位、核心模块与协作生态,建立清晰的认知框架,远比盲目模仿案例更为重要

weixin_33700350的博客 403

Unity渲染管线选型指南:URP与HDRP核心对比与实战选择

渲染管线是实时图形渲染的核心框架,它定义了3D场景数据如何经过一系列处理阶段,最终生成屏幕像素的完整流程。其原理在于通过可编程的着色器与固定功能管线结合,高效管理几何变换、光照计算、纹理采样与像素输出。这项技术的价值在于平衡视觉质量与运行性能,是决定应用流畅度与画面表现力的基石,广泛应用于游戏开发、虚拟现实、建筑可视化及影视动画等领域。对于Unity开发者而言,理解通用渲染管线(URP)与高清渲染管线(HDRP)的特性差异至关重要。URP作为高度优化的跨平台解决方案,凭借其卓越的移动端支持与Shader G

weixin_30652491的博客 458

Unity第三人称射击游戏源码深度解析与应用

Unity引擎是目前全球最受欢迎的游戏开发平台之一。它以其跨平台特性、强大性能和丰富的工具集而闻名,在游戏开发领域具有举足轻重的地位。通过Unity,开发者能够创建出2D和3D游戏、虚拟现实(VR)和增强现实(AR)体验以及其它交互式内容。其应用领域横跨娱乐、建筑可视化、教育、电影制作和广告等多个行业。使用Unity引擎可以快速地开发、测试并部署游戏或应用,从而缩短产品上市时间,降低开发成本。第三人称射击游戏(TPS)是以玩家操控的角色处于游戏世界第三人的视角来进行游戏的类型。

weixin_42593549的博客 1187

同济土木非0基础三个月跨考复旦计算机攻略

跨考cs攻略前言我cs专业课如何复习How to start from zero简历其他复试 前言 建议多去工地/化工厂涡轮增压一下 我 同济土木gpa 3.2/5 挂科 * n 辣鸡项目 * n (padding 简历) 21考复旦计算机专硕 10月-12月 学习+复习 总分392 政治 68;背肖4即可 英语二 78 裸考,(高考英语140+);做点真题,建议据自己情况准备 数学二 142 ;(高考数学接近满分);做真题+模拟题,每天写一张试卷 专业课 104 ,考试生病了,下文展开。 cs专业课

piglake的博客 7238

IEEE LaTeX模板中algorithm排版避坑指南:如何优雅地嵌入算法描述?

本文详细解析了在IEEE LaTeX模板中优雅排版algorithm的实用技巧,包括基础配置、高级自定义及常见问题解决方案。通过嵌套环境与[H]参数的应用,帮助研究者克服IEEEtran模板对算法排版的限制,实现专业且美观的算法呈现。

weixin_28340315的博客 410

手势控制 Python !Leap Motion Python 开发教程 (二)

手势控制 Python !Leap Motion Python 开发教程 (二) 现在进入正题,我来给大家总结一下我在使用 Leap Motion 开发过程中的经验以及学到的东西,其中我会概括以及翻译官方给出的注释,为了让这些注释更加通俗易懂,让大家更好理解。 回顾 在上一篇文章中我们讲了如何配置 Leap Motion 的 Python 2.7 的开发环境,如果您还没有配置好您的开发环境,可以参...

成畅的博客 3195

基于深度学习的UWB门禁检测

针对基于UWB技术智能门禁管理系统,由于测距误差或非视距原因导致门禁产生不合理动作的现象。分析如何采用基于深度学习的方法,通过对TWR测距数据、TWR监听数据、到达角度差(PDOA)、信道脉冲响应(CIR)等数据维度进行深度学习,利用 TensorFlow建立相应的推导模型,对卡片姿态进行更加精准可靠的检测,从而更好完成闸机开合控制。

tenth_quadrant的博客 2028

HyperMesh实战:用Field工具搞定复杂载荷映射(附TCL脚本示例)

本文深入探讨了HyperMesh中Field工具在复杂载荷映射中的高级应用,包括从CSV到有限元网格的温度场映射全流程、稀疏数据处理技巧及TCL自动化脚本示例。通过Field工具,工程师可以高效实现CFD温度场到结构网格的精准映射,显著提升有限元分析的精度与效率。

white的博客 266

宽压 DC⇌DC 也能“随心所欲”——全桥 LLC 混合控制硬核拆解

硬件派 vs. 软件派:多电平是“器件堆砌”,混合控制是“算法魔改”。预算紧 → 先搞软件。仿真别嫌烦:PLECS 把两条曲线扫透,切换点、死区、φ 都调到波形平滑再上板。温升留 20 ℃ 余量:车规≥125 ℃,实验室测 105 ℃ 就算危险,别玩极限。

weixin_43199439的博客 930

PCL 贪婪投影三角剖分算法【2025最新版】

本博客在学习PCL中的贪婪投影三角算法的基础上,实现了使用彩色点云重建彩色模型的应用案例。博客长期更新,最近一次更新时间为:2025年7月6日。

点云侠的博客 37万+

uniapp - 解决真机调试报错 request:fail abort statusCode:-1 java.security.cert.CertPathValidatorException: Tr

uni-app,真机调试报错,app端平台,安卓Android,安卓App发布线上报错,打包后接口请求失效了,api接口报错,真机运行安卓app时接口不通且报错,request:failabortstatusCode:-1java.security.cert.CertPathValidatorException:Trustanchorforcertificationpathnotfound.,真机调试,苹果ios真机报错,Uniapp打包到app后报错,uni-app真机调试报错,服务器

🏆 前端领域优质创作者 1万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

上一篇: 从零开始学习3D可视化之摄像机投影方式
下一篇: 从零开始学习3D可视化之摄像机“最佳看点”
ThingJS_小锘
码龄6年 0粉丝 254原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值