krpano 场景切换 通知_一个基于Vulkan的异步场景加载设计

异步场景加载基本流程验证完成。

此方法理论上只需要使用3个Vulkan的指令队列。

对于移动平台上的Vulkan,指令队列数量极少,比如Adreno640只有3个指令队列可用。所以理论上这一设计也适合目前的移动平台使用。

(1) graphic_queue:用于完成当前场景的渲染。

(2) load_queue:用于在当前场景异步加载结点,或更新结点资源,比如ui贴图,文本。

(3) back_load_queue:用于在独立的线程中异步加载完整场景。

加载场景分别使用load_queue和back_load_queue两个队列的原因是,在back_load_queue加载场景时,当前场景可能需要load_queue来异步更新ui之类的资源。

graphic_queue只进行渲染相关或耗时较短的工作,对于耗时可能跨越多帧的操作,比如ui贴图更新,文本更新,通过异步任务队列,交由load_queue处理,load_queue处理完成后,通过同步任务通知graphic_queue,完成资源切换。

graphic_queue使用线程池中的多个用于执行单帧任务(Frame Graph)的线程并行记录渲染指令。

视频解释:

(1)
对于异步加载一个完整的场景
通过按钮广播点击消息给脚本管线对象
脚本管线对象调用脚本,通过viewer对象创建新线程加载场景。
新线程加载场景完成后,通过无锁队列添加同步任务到同步任务队列。
在同步任务中反转场景(反转场景实际上只是管线对象内部很少几个变量的交换,耗时极小),进入刚刚加载的场景。(同步任务,确保线程安全,并且如果没有需要执行的同步任务,几乎不存在计算代价)
(2)
对于同一场景添加单个或少量结点,载入量较小,没必要单独开一个线程,将加载任务放入viewer对象初始化时创建的用于执行跨越多帧的小任务的异步任务队列,加载结点完成后,通过无锁队列添加同步任务到同步任务队列 ,在同步任务(只是简单的几个变量交换,耗时极小)中将结点安全地放入当前场景。

对于类似UI贴图或文本的更新,通过方法2进行。

0d74843635d563720f29487315d01fd9.png
https://www.zhihu.com/video/1174439628005359616

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

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

相关文章

如何查询linux服务器的网卡,Linux服务器如何查看有没有无线网卡

还是实验室那台服务器,连不上网。有没有界面,所以想着如何用一些命令来链接上热点。当然,在Linux下链接wifi没有win下那么一点就好了!首先我们需要的基本条件就是: 服务器上有无线网卡。[roottomato2 ~]# iwconfiglo n…

python的多行语句可以使用反斜杠_python 为什么不用分号作终止符?

作者:豌豆花下猫 来源:Python猫一般而言,编程语言中使用分号“;”来实现两种目的:作为语句分隔符:使用分号来分隔语句(statement),这样就能在一行代码中书写多条语句(一行…

linux svn 备份脚本,SVN热备份脚本

SVN热备份脚本2011-08-03 徐磊#!/bin/sh########################################################## Script to do incremental rsync backups# modidfy: wanjie.info# date: 2010/06/04# 这个脚本不是xulei写的,我只是拿来主义,当然如果大家看不明白…

linux 关闭scp服务器,Linux系统如何关闭scp和sftp命令

Linux系统如何关闭scp和sftp命令。sftp介绍sftp是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的加密方法。sftp 与 ftp 有着几乎一样的语法和功能scp介绍两台主机之间传输文件一般使用scp命令,通常用scp命令通过ssh获取对方…

linux db2 归档,DB2的归档模式设置方法

当做在线备份,即加上online参数后,可以看到如下告警:[db2inst1localhost backup]$ db2 backup db sample online to /dev/nullSQL2413N Online backup is not allowed because the database is not recoverableor a backup pending condition…

css提取页面元素唯一性_下面这个函数,能够获取一个元素的任意 CSS 属性值。...

在对网页进行调试的过程中,经常会用到js来获取元素的CSS样式,方法有很多很多,现在仅把我经常用的方法总结如下:1. obj.style:这个方法只能JS只能获取写在html标签中的写在style属性中的值(style”…”),而无…

linux+cp+-rdf,简单构建基于RDF和SPARQL的KBQA(知识图谱问答系统)

本文主要通过python实例讲解基于RDF和SPARQL的KBQA系统的构建。该项目可在python2和python3上运行通过。注:KBQA即是我们通常所说的基于知识图谱的问答系统。这里简单构建的EasyKBQA,数据来源于网络,源码地址看下面补充说明。目录&#xff1a…

变形监测期末复习_寒假即将来临,中小学期末考试时间是什么时候?

2019年下学期也快结束,各个区的中小学考试时间安排已经公布了。今年,初二将首次进行全市统考,统考的意义重大,希望家长们可以督促孩子们重视起来,考出好成绩!下面,让我们来看一下2019下学期深圳各区中小学期…

为什叫c语言,为什么c语言叫c语言?

1972年,美国贝尔实验室的 D.M.Ritchie 在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。1973年初,C语言的主体完成。Thompson和Ritchie用它完全重写了UNIX。随着UNIX的发展&…

gddr6速率_Rambus展示18GT/s的GDDR6内存子系统:高频信号纯净度仍然非常好

Rambus最近展示了他们最新的GDDR6内存子系统,把传输速率提升到了18GT/s,而目前的市场上的GDDR6显存多为14GT/s,少数为16GT/s,18GT/s对于Rambus和GDDR6来说都是一个新的记录。在18GT/s的传输速率下,单颗位宽为32-bit的G…

株洲c语言培训机构,株洲好就业的学c语言程序设计,计算机专业地址

株洲好就业的学c语言程序设计衡阳市潇湘职业中等专业学校是由衡阳市教育主管,在衡阳校区的基础上设置的一所综合性全日制中等职业学校。坐落在国内优秀旅游城市、国内高新技术产业基地、名人辈出的全国历史文化名城-----衡阳市。我校依托长沙医校院,实现…

er图外键怎么表示_本周话题:取消考研复试最能实现相对公平?你怎么看?

2020取消研究生复试的呼声越来越高?考研er们:压力太大!近日,红网作者李诗元的一篇《取消考研复试最能实现相对公平》引起热议国家线的出台和调剂系统5月20日的才开的通知让大家直接炸开了郭就山西大学来说 往年都是调剂生和一志愿…

append 后如何删除_如何在STATA中合并数据文件呢?

❝作者:江小白邮箱:jieresearch163.com❞我们在使用stata进行数据分析时,可能涉及多个数据文档的合并操作或者同时使用不同数据集中的多个变量,这都需要我们进行文档间不同变量的归并。例如,我们需要使用CFPS(中国家庭…

linux 内网怎么安装git环境_linux 安装go环境

官网下载安装包The Go Programming Language​golang.google.cngo1.4.linux-amd64.tar.gz解压:tar -C /usr/local -zxvf go1.4.linux-amd64.tar.gz添加环境变量:export PATH$PATH:/usr/local/go/bin安装完成输入go测试安装成功,写个简单的代码…

cups支持的打印机列表_Win10“Microsoft Print to PDF”虚拟打印机不见了,如何找回?...

MS酋长很早以前在介绍Windows10的新功能时,就提到过《Win10原生支持把文件转换成PDF格式》,该功能实际上是基于“Microsoft Print to PDF”虚拟打印机来实现的。当你点击打印时,在打印机列表中就可以看到“Microsoft Print to PDF”虚拟打印机…

循环队列的进队算法c语言,循环队列的定义,入队算法,出队算法,遍历算法,及其代码实现-Go语言中文社区...

队列 的定义:一种可以是实现“先进先出”的存储结构。数据的进出类似于排队购票。队只允许队尾一端(rear)添加,在另一端队头(front)删除。队有队头(front)和队尾(rear)两个指针。队头front指向第一个元素,队尾rear指向无实际意义的元素&#…

java office文件加水印_文档预览加水印——或可一用的防泄密方式

给文件加水印是常见的一种宣示版权的方式。像Office、WPS都自带加水印功能,能够给文档加上"保密"、"严禁复制"这样的水印。在多可系统中,也有这么一个添加水印的功能。启用该功能后,在使用HTML5预览时,多可系…

android 获取apk资源,android-apk-parser

APK解析库用于读取/解析 packageName。versionName。versionCode信息的简单类,以及已经编译的androidsdk文件中的更多内容。通过解压 AndroidManifest.xml 文件并解码编译好的XML二进制文件来收集这里信息,就可以实现。我一直在用它来实现各种android工件…

apache license 2.0如何使用防止法律纠纷_go语言使用Swaggo详细教程

相信很多程序猿和我一样不喜欢写API文档。写代码多舒服,写文档不仅要花费大量的时间,有时候还不能做到面面具全。但API文档是必不可少的,相信其重要性就不用我说了,一份含糊的文档甚至能让前后端人员打起来。 而今天这篇博客介绍的…

android执行main函数,AndroidStudio执行main方法报错

问题:有时在开发中想直接写一个java文件来测试一些东西,但是AndroidStudio执行的时候会报错。代码信息:public class HelloWorld {public static void main(String[] args) {System.out.println("HelloWorld");}}报错信息12:04:41:…