ViewerBase::renderingTraversals()的简易理解

2023-11-06

前两篇说到了camera用来剔除,context用来渲染,多线程渲染就是把cpu尽可能的分配给context,如果土豪的话,在剔除过程也分配cpu。
另外,也要注意到过期请求数据不处理。

当然,首先要获取场景,摄像机和上下文
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
现在看下摄像机剔除
在这里插入图片描述
可见,camera的剔除是根据renderer的graphicsThread或者camera的线程,或者直接renderer->cull()三种方式

上下文渲染是两步,一个是runOperation,一个是swapBuffers。
在这里插入图片描述
在这里插入图片描述

下一步看看过期的请求数据。如果过期了,那就不再处理了,所以,要先判断
在这里插入图片描述

这里可以看到有个signalBeginFrame(),那么有没有end呢?有的,但是函数为空,所以不考虑。

绘制时已经通过 makeCurrent()绑定了上下文,那么结束时要释放。
在这里插入图片描述

总结下,就是
获取场景、摄像机、上下文->判断是否过期->剔除->渲染->释放上下文。

如果是多线程,就稍微复杂些。放飞自我后还要收回来,再往下一步走,需要用到block()阻塞。用栅栏堵住你们,等你们都汇集全了就可以突破这个栅栏了。

在这里插入图片描述

添加后流程变为
获取场景、摄像机、上下文->判断是否过期->_endDynamicDrawBlock重置->_startRenderingBarrier开启->剔除->场景绘制->_endRenderingDispatchBarrier开启->双缓存反转>_endDynamicDrawBlock开启->释放上下文。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ViewerBase::renderingTraversals()的简易理解 的相关文章

随机推荐

  • XXE(外部实体注入)

    写在前面 这个系列开始写写XXE相关的东西 这里是第一部分 相关资料及使用靶场如下 XML学习 靶场链接 XXE是以XML为基础进行的一种攻击 所以你需要先学习XML 为了更方便你检索题目且由于是国外网站 会带有一定外语及翻译 最后 如果你
  • 监听pda扫描_android系统PDA扫描枪,扫描完成后自带回车,为什么回车监听第一次不起作用,手动提交一次后才能正常提交...

    如题 第一次扫描后 在条码后出现的是回车 而不是绑定的提交按钮的提交功能 手动软键盘提交后 再回到扫描页 再次扫描 就会自动执行提交功能 下面附上源码 privateImageButton 如题 第一次扫描后 在条码后出现的是回车 而不是绑
  • openGL 调用glewInit()失败

    openGL系列文章目录 文章目录 openGL系列文章目录 前言 一 glew官网 二 glew库初始化调用失败 1 引入库 2 glew调用失败原因 着色器 运行结果 前言 OpenGL Extension Wrangler Libra
  • 垂类模型大有前景,但AGI却给自己“挖了个坑”

    巨量模型是个 坑 但垂直模型不是 数科星球原创 作者丨苑晶 编辑丨大兔 2023年4月 GPT 5的相关消息引起了一阵轰动 彼时 人们对巨量大模型既有期待 也有恐惧 更有甚者 认为人类历史或许将因此而画上终止符 但很快 从业者便发现 巨量大
  • ZYNQ学习之路(三):自定义IP实现PL处理PS写入BRAM的数据

    目录 一 实验简介 二 vivado部分处理 三 SDK编程 四 实验测试 五 总结 一 实验简介 ZYNQ系列嵌入式FPGA可以使PS将数据写入PL部分BRAM PL可以将数据读取后再重新写入BRAM PS将数据读出后再传走 这样可以使P
  • 数据结构--一个数组实现两个栈

    用一个数组实现两个栈 通常我们会想到以下几种方案 1 奇偶栈 即就是将数组的偶数位置看作一个栈的存储空间 将奇数位置看作另一个栈的存储空间 2 从中间分别向两边展开 即就是将数组的中间位置看作是两个栈的栈底 压栈时栈顶指针分别向两边移动 当
  • C++ 加锁的原则

    规则1 多线程 进程并行访问共享资源时 一定要加锁保护 说明 共享资源包括全局变量 静态变量 共享内存 文件等 建议封装像智能指针一样的对象对锁进行管理 比如我们就封装了一个auto lock 在构造时申请 锁 析构中释放锁 保证不会忘记
  • docker容器日志管理

    docker容器日志导致主机磁盘空间满了 docker logs f container name 噼里啪啦一大堆 很占用空间 需要的日志可进行备份 不用的日志可以清理掉了 设置一个容器服务的日志大小上限 上述方法 日志文件迟早又会涨回来
  • Python——数据分析,原来女孩子喜欢这些礼物

    每次情人节我都会问女朋友 你喜欢啥 你想要啥 但是每次女朋友每次都说 你自己想 伸手要来的没有惊喜 这搞的我还没到情人节就开始失眠了 总是担心送的礼物她会不喜欢 相信有很多朋友跟我一样苦恼吧 今天特意爬取了某东的数据 来分析下大家情人节都送
  • Python可视化--双Y轴图

    双Y轴图 1 双Y轴图简介 双Y轴图顾名思义就是在一个图里有两个Y轴 这种图形主要用来展示两个因变量和一个自变量的关系并且两个因变量的数值单位还不同 如我们想要展示不同月份公司销业绩以及成本的变化情况这时就可以用双Y轴图来展示 因变量销量和
  • OpenCV中resize函数五种插值算法的实现过程

    最新版OpenCV2 4 7中 cv resize函数有五种插值算法 最近邻 双线性 双三次 基于像素区域关系 兰索斯插值 下面用for循环代替cv resize函数来说明其详细的插值实现过程 其中部分代码摘自于cv resize函数中的源
  • aliyun-freeSSL证书生成、下载、配置到apache httpd

    1 创建免费SSL证书 并下载 2 查看提供的帮助文档 https help aliyun com document detail 98727 html spm 5176 b657008 0 0 67d81b48morsfW 3 解压上传到
  • 一文搞懂Java中的继承(父类与子类间的联系)+实例分析

    前言 子类可以继承父类 除私有化外 的全部属性和方法 当然父类的构造方法也不可以被继承 只能使用super来调用 对于父类的默认无参构造方法 子类会默认调用 但对于父类的有参构造 子类只能使用super来显示调用 且super调用的这行代码
  • shell函数

    定义与调用函数 student myhost function a echo a function student myhost a a function student myhost b echo a function student m
  • [Machine Learning & Algorithm] 随机森林(Random Forest)

    1 什么是随机森林 作为新兴起的 高度灵活的一种机器学习算法 随机森林 Random Forest 简称RF 拥有广泛的应用前景 从市场营销到医疗保健保险 既可以用来做市场营销模拟的建模 统计客户来源 保留和流失 也可用来预测疾病的风险和病
  • 什么是Windows安全模式?Windows安全模式详解

    安全模式是Windows 操作系统中的一种诊断启动模式 用于在操作系统无法正常启动时获取有限的Windows访问权限 正常模式与安全模式相反 它以其典型方式启动Windows 注意 安全模式在macOS上称为安全启动 术语 安全模式 也指用
  • 【C++初阶】引用

    一 概念 引用就是取别名 在语法上它不会开空间 而是和它引用的变量共用同一块空间 对引用的操作也就是对原来变量的操作 就像现实生活中给人取外号一样 不管是喊外号还是本名 指的都是那个人 二 引用特性 1 引用类型必须和引用实体是同种类型的
  • python打包系列1 - pyinstaller打包遇坑笔记

    最近工作中需要将python打包成exe 我是用pyinstaller打包 这期间遇到了不少坑 最终打包成功 并在其他windows机器正常运行 环境 我打包的python代码 依赖了opencv numpy以及若干第三方库 MVS 相机接
  • k8s错误CrashLoopBackOff

    序言 2020年1月1日就收到一个故障 注定不是平凡的一年 所以呢 决定年后戒烟 至于是哪一年的年后 我没说 哈哈哈 CrashLoopBackoff 在创建一个pod之后 出现一个报错 都是按照套路来的 怎么可能会报错呢 查看一下相关的日
  • ViewerBase::renderingTraversals()的简易理解

    前两篇说到了camera用来剔除 context用来渲染 多线程渲染就是把cpu尽可能的分配给context 如果土豪的话 在剔除过程也分配cpu 另外 也要注意到过期请求数据不处理 当然 首先要获取场景 摄像机和上下文 现在看下摄像机剔除