数字孪生场景渲染能力中的WebGL技术路线

使用三维建模技术构建出的虚拟现实场景后,需要通过渲染引擎实现场景的高精度、高保真和实时渲染。同时,需要将现实场景中的数据信息融合到虚拟场景中,实现对现实情况的监测和控制。

目前大多数数字孪生城市项目在三维渲染引擎的技术选型上通常是2种方案,一种是基于C/S架构的主流游戏引擎技术路线(Unreal Engine、Unity3D等),另外一种是基于B/S架构的WebGL技术路线。

数字孪生场景渲染能力是当下数字孪生项目实际交付过程中的核心关注能力之一,本节将基于B/S和C/S两种技术架构以及云渲染技术架构分别介绍。

1、WebGL技术路线
1)基于WebGL的三大数字孪生技术路线
A. 基于WebGL纯代码开发

使用基于WebGL封装的渲染库直接进行开发,例如three.js、babylon.js。适用于体量较小、开发周期短而效果相求不高的项目

优势:

灵活性高:根据业务需求进行深度定制,且易于其他业务系统通信或集成;代码冗余少:代码体量小,易于问题排查;建设成本低;

劣势:

复用性低:由于根据业务需求进行深度定制可复用的代码少,难以模块化以至于无法通过该路线批量化交付项目;

效果较差:能支撑的三维场景体量小,能达到的渲染效果比较有限,难以实现中大型场景或较为写实的场景风格;

B. 支持H5的游戏引擎打包WebGL

使用C/S的游戏引擎开发场景后打包成WebGL,例如Cocos、Egret、Unity3D。适用于业务特点上偏向于游戏,且无需于其他业务系统集成、通信的项目。

优势:

建设成本较低:C/S的游戏引擎提供了较为成熟完善的编辑器和工具,能够低成本实现高质量效果和高性能;复用性高;三维渲染效果好;

劣势:

灵活性低:难以嵌入其他业务系统或通信;实现专业领域下的特有业务成本高或不可实现; 难以基于场景进行二次开发;学习成本高;

代码冗余多:游戏场景中场景和逻辑同等重要,逻辑上多为事件驱动。且游戏场景对动画、特效、性能、包体和UI要求都很高。而数字孪生重场景、轻逻辑、以数据驱动为主,由于业务差异导致打包的WebGL代码冗余过多;

维护成本高:封装度过高,做后期优化空间小,bug难排查;每次场景修改都需要重新打包WebGL;

C. 自研B/S低代码融合渲染引擎

基于WebGL封装的渲染库开发适用于数字孪生项目的融合渲染引擎,再基于自研的引擎的进行开发,例如EasyTwin数字孪生融合渲染引擎。适用于有大量中大型数字孪生需求,项目间具有一定的可复制性且有与别的业务系统耦合的需求。

优势:

灵活性高:可根据通用业务自由定制;

学习成本较低:低代码化开发过程,开发人员无需熟知WebGL等技术栈;

代码体量合适:完全根据业务确定引擎功能;可深入到引擎底层做性能以及渲染效果的优化;排查bug高效、解决问题彻底;

复用性高:业务的可复用点可得到引擎层的支持;

维护成本低:低代码化、配置化实现孪生场景,业务的修改以及场景上的修改不需要修改代码;

效果较好:可开发各种通用或定制的编辑器,实现技术与美术的结合;

劣势

渲染引擎的研发成本高:需要较强的技术能力通用化、组态化引擎的场景编辑能力、渲染效果、以及业务逻辑开发能力;

2)基于WebGL的数字孪生场景实践

以自然场景中的植被为例进行介绍,基于WebGL在地形模型上刷出符合自然环境的植被,并控制性能消耗。

准备工作:
在这里插入图片描述

① 根据地形网格生成地形高度图(中间图),白色表示最高点,黑色表示最低点,通过山的高度校对植被的垂直方向坐标;

② 在现有地形模型的基础上,把相机放到模型正上方,范围覆盖整个地形,渲染一帧导出深度缓存;

③ 在PS中处理成一个黑白图片,白色表示”种树”,黑色表示“不种树”(左图);

④ 计算生成植被点位的世界坐标;

生成植被示例:

① 生成噪声图,用于给定植被的XY坐标、种类、色调、大小一个有规律的随机(右图);

② 为了生成的植被具备上下的空间层次,植被会包括以下表现方式:土壤纹理、草地纹理、草、灌木、树木;

③ 为了生成的植被具备远近的空间层次,会有以下实现植被的方式:模型、广告牌、ViewBillboard;

性能优化:

① 视锥体剔除;

② 遮挡剔除;

③ 实例化渲染;

④ LOD;

⑤ GPU Drvien;

生成效果:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/3699.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

测试工程师首chatGPT,编写python读取xmind测试用例chatgtp+python+xmind

背景 有用xmind写测试用例的吧,统计一个xmind的条,需要花大量的时间,还有要统计有多少条冒烟的,多少条不通过的,还有通过的条数。 需求 快速使用python,写一个简单的脚本,统计所有xmind节点&…

c++ 内存管理一:初识内存分配工具

文章目录 前言1 new 和 delete2 new[]和delete[]3 operator new4 placement new5 malloc和free6 allocator 前言 侯捷 c内存管理学习总结笔记。 在C中,有几种常用的内存分配工具可以帮助进行动态内存管理。 从c应用程序自上而下,通常会有这样的几种分配…

算法分析基础题目

第一章-算法概述 递归算法必须具备的两个条件是边界条件或停止条件和递推方程或递归方程冒泡排序时间复杂度是___,堆排序时间复杂度是___。 O ( n 2 ) O(n^2) O(n2), O ( n l o g n ) O(nlogn) O(nlogn)斐波那契数列的第1项为1,第2项为2,以…

[RocketMQ] Producer发送消息的总体流程 (七)

单向发送: 把消息发向Broker服务器, 不管Broker是否接收, 只管发, 不管结果。同步发送: 把消息发向Broker服务器, 如果Broker成功接收, 可以得到Broker的响应。异步发送: 把消息发向Broker服务器, 如果Broker成功接收, 可以得到Broker的响应。异步所以发送消息后, 不用等待, 等…

LLaMA模型微调版本:斯坦福 Alpaca 详解

项目代码:https://github.com/tatsu-lab/stanford_alpaca 博客介绍:https://crfm.stanford.edu/2023/03/13/alpaca.html Alpaca 总览 Alpaca 是 LLaMA-7B 的微调版本,使用Self-instruct[2]方式借用text-davinct-003构建了52K的数据&#x…

vue3框架开发uniapp高仿度小满金融App项目

vue3框架开发uniapp高仿度小满金融App项目 心血来潮写了度小满前端项目使用vue3开发地址:度小满金融 下面是实现效果

第一次安装cocoapods经历

先是执行&#xff1a;sudo gem install cocoapods 报错&#xff1a; ERROR: Error installing cocoapods: The last version of activesupport (> 5.0, < 8) to support your Ruby & RubyGems was 6.1.7.3. Try installing it with gem install activesupport -v…

CSS 备忘录2-动画、渐变、颜色、选择器等

1、背景 background属性是八个属性的简写形式&#xff1a; background-image 指定一个文件或生成的颜色渐变作为背景图片background-position 设置图片的初始位置background-size 指定背景图片的渲染尺寸background-repeat 是否平铺图片ba…

智能相机的功能介绍

智能视觉检测相机主要是应用在工业检测领域图像分析识别、视觉检测判断。相机具有颜色有无判别、颜色面积计算、轮廓查找定位、物体特征灰度匹配、颜色或灰度浓淡检测、物体计数、尺寸测量、条码二维码识别读取、尺寸测量、机械收引导定位、字符识别等功能。相机带有HDMI高清视…

Java版企业电子招投标系统源码 Spring Cloud+Spring Boot 电子招标采购系统功能清单

一、立项管理 1、招标立项申请 功能点&#xff1a;招标类项目立项申请入口&#xff0c;用户可以保存为草稿&#xff0c;提交。 2、非招标立项申请 功能点&#xff1a;非招标立项申请入口、用户可以保存为草稿、提交。 3、采购立项列表 功能点&#xff1a;对草稿进行编辑&#x…

电脑键盘点击记录

这里写自定义目录标题 通过敲击键盘&#xff0c;记录键盘按键&#xff0c;并记录下来&#xff0c;保存在电脑一个路径下&#xff0c;txt文档格式记录 通过敲击键盘&#xff0c;记录键盘按键&#xff0c;并记录下来&#xff0c;保存在电脑一个路径下&#xff0c;txt文档格式记录…

English Learning - L3 纠音 W8 Lesson7 Ted Living Beyond Limits 2023.06.27 周二

朗读内容&#xff1a; Lesson 7 Day 47 - 51 句子 Ted Living Beyond Limits 3-22