vulkanscenegraph显示倾斜模型(6)-帧循环

前言

        上一部分,通过十个章节的内容,对视景器的初始化与准备工作进行了系统性的剖析。本章将在该基础上,探讨vsg中的帧循环机制,主要包含前进到下一帧、事件处理、更新、记录与提交、呈现五个部分,同时整个过程包含了复杂的多线程处理与同步操作,本章作为帧循环部分的第一章,在整体介绍帧循环的内容的同时,将深入分析前进到下一帧的详细过程。


目录

  • 1 帧循环
  • 2 前进到下一帧

         本章对参照用例(vulkanscenegraph显示倾斜模型-优快云博客)中的如下代码进行深入探讨。

	while (true)
	{
		// render VulkanSceneGraph frame   
		{
			if (!vsg_viewer->advanceToNextFrame())
			{
				break;
			}
			vsg_viewer->handleEvents();
			vsg_viewer->update();
			vsg_viewer->recordAndSubmit();
			vsg_viewer->present();
		}
		frameNumber++;
	}

1 帧循环

       与OSG(OpenSceneGraph)帧循环中经典的事件遍历(Event Traversal)、更新遍历(Update Traversal)和渲染遍历(Rendering Traversal)类似,vsg帧循环中涉及同样的操作。VSG的事件处理阶段对应OSG的事件遍历(Event Traversal),负责处理用户输入和系统事件;更新阶段对应OSG的更新遍历(Update Traversal),完成场景数据的同步更新;而记录与提交阶段(包含资源编译、命令缓冲录制与提交)和最终的呈现阶段,则共同对应了OSG渲染遍历(Rendering Traversal),最终将渲染结果输出到显示窗口。这种设计即保留了OSG遍历流程的核心逻辑,同时兼顾Vulkan渲染的特点,采用更精细的阶段划分。

2 前进到下一帧

       本小结对应的代码如下,接下来将通过代码来揭秘此过程的详细流程。

			if (!vsg_viewer->advanceToNextFrame())
			{
				break;
			}

       上述代码为vsg::Viewer中的advanceToNextFrame函数的调用。

b
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CHPCWWHSU

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值