切换深色模式
ThingJS UE与ThingJS的区别
前言
Unreal Engine与T3D采用不同的图形接口与设计架构,在各项功能的实现上会有不同的差异,出于性能、效果等各个方面的考量,ThingJS UE在部分功能底层实现和ThingJS T3D会有一些差异。
本篇的内容主要展示目前常用方案的底层实现上差异,解释ThingJS UE为什么会出现和ThingJS T3D不一样的结果
架构差异
UE | T3D | |
---|---|---|
图形接口 | DirectX11 / DirectX12 (SM6) / Vulkan | WebGL / WebGL 2 / WebGPU |
跨平台 | 全平台(兼容成本高) | 全平台 |
应用架构 | CS(依靠串流实现BS) | BS |
硬件平台 | x86_64/arm64(兼容arm64成本高) | 全平台 |
拾取功能
- UE 同时使用RayCast和GPU Picker,兼具拾取性能与拾取效率
- T3D 默认使用GPU Picker
UE | T3D |
---|---|
可以拾取到Mesh的三角面片、对象位置、拾取点坐标、面法向量、碰撞点法向量、拾取的组件、骨骼(骨骼模型)、距离等 | 可以拾取到Mesh、对象位置、拾取面的法线 |
可以实现穿透拾取,并且在大型复杂场景下不会有较大的性能消耗 | 不支持穿透拾取 |
使用射线检测的情况下使用较为简单,无需额外渲染开销 | 充分利用GPU运算 |
开启Raycast的情况下需要对模型添加碰撞盒(做场景需要对staicmesh组件进行相关设置,其他资源无需手动添加) | 无需添加碰撞盒 |
运行模式
UE | T3D |
---|---|
UE运行在服务端,通过云渲染方式将视频流推送到前端页面 | T3D三维场景的运行和渲染在客户端浏览器完成 |
渲染、运行压力在服务器端,对服务器机器配置网络有要求 | 渲染、运行压力在客户端浏览器,对客户端机器有要求,有性能瓶颈 |
TODO: 待补充