
Vulkan+VSG
文章平均质量分 90
以osgb格式的倾斜模型显示为例,通过源码调试的方式,探究VSG(Vulkan Scene Graph)渲染逻辑,在这个过程中提出问题、解决问题、总结问题,包括vsg的数据读取、osg转vsg、数据分页动态加载、vsg对vulkan渲染封装,加深对vulkan渲染的理解,提升自身学习能力和思维能力。
CHPCWWHSU
这个作者很懒,什么都没留下…
展开
-
vulkanscenegraph显示倾斜模型(5.9)-vsg中vulkan资源的编译
上一章深入剖析了GPU资源内存及其管理,vsg中为了提高设备内存的利用率,同时减少内存(GPU)碎片,采用GPU资源内存池机制(vsg::MemoryBufferPools)管理逻辑缓存(VkBuffer)与物理内存(VkDeviceMemory)。本章将深入vsg中vulkan资源的编译(包含视景器编译),着重于当vsg::TransferTask不为空时,vulkan资源的创建与收集过程,包含视景器编译与节点动态加载后的编译两个部分。原创 2025-04-13 20:20:12 · 309 阅读 · 0 评论 -
vulkanscenegraph显示倾斜模型(5.8)-视景器编译
上一章深入剖析了Vulkan渲染过程中的核心组件VkPipeline,以及vsg中针对图形渲染管线的封装GraphicsPipeline,本章将继续深入探讨视景器准备过程中的最后一章视景器编译,并进一步深入vsg中显存的传输机制,即vsg::TransferTask的设计。vsg中GPU数据的传递包含编译(Compile和数据传递(transfer)两个过程。原创 2025-04-12 21:57:38 · 599 阅读 · 0 评论 -
vulkanscenegraph显示倾斜模型(5.7)-vsg::GraphicsPipeline
上一章深入剖析了vsg::RenderGraph对Vulkan渲染流程的封装,重点探讨了vsg::FrameBuffer、vsg::RenderPass和vsg::ImageView三个Vulkan渲染过程中的核心组件。本章将在该基础上,进一步探讨Vulkan渲染过程中的另一核心组件——VkPipeline,以及vsg中针对图形渲染管线的封装GraphicsPipeline。目录1 GraphicsPipeline的创建2 GraphicsPipeline的绑定。原创 2025-04-06 12:54:51 · 630 阅读 · 0 评论 -
vulkanscenegraph显示倾斜模型(5.6)-vsg::RenderGraph的创建
上一章深入分析了vsg::CommandGraph的创建过程及其通过子场景遍历实现Vulkan命令录制的机制。本章将在该基础上,进一步探讨Vulkan命令录制中的核心封装——vsg::RenderGraph。作为渲染流程的关键组件,RenderGraph封装了vkCmdBeginRenderPass和vkCmdEndRenderPass的核心功能,RecordTraversal会在这两个关键调用之间遍历并处理其子节点。原创 2025-04-04 21:35:20 · 1096 阅读 · 0 评论 -
vulkanscenegraph显示倾斜模型(5.5)-CommandGraph的创建
CommandGraph是VulkanSceneGraph(VSG)框架中的一个核心类,它封装并管理Vulkan命令缓冲区及其提交到队列的过程。本章将从CommandGraph的继承关系与创建、依赖(与Framebuffer、Window、Device、CommandBuffer、RecordTraversal的强关联设计)两个方面探讨CommandGraph的创建过程。目录1 CommandGraph的继承关系与创建。原创 2025-03-31 01:17:16 · 617 阅读 · 0 评论 -
vulkanscenegraph显示倾斜模型(5.4)-相机操纵器
在VSG(Vulkan Scene Graph)中,系统支持用户通过鼠标或触摸输入与三维场景进行交互,从而动态控制相机的位置和姿态,实现与三维场景的交互。VSG提供了多种相机操纵器,其中Trackball是一种常见的相机操作器,模拟了一个虚拟的轨迹球,用户可拖动鼠标来旋转、平移和缩放场景。机操纵器的本质是通过用户交互动态修改视图矩阵,从而改变模型在视口中的显示效果。原创 2025-03-23 22:39:56 · 1103 阅读 · 0 评论 -
osgVerse显示地球
osgVerse实现了一种轻量级的地球可视化方案。该方案通过实现TMS(Tile Map Service)插件,采用动态LOD(Level of Detail)层级构建技术,构建地球瓦片系统。与osgEarth相比,osgVerse实现地球可视化的区别在于:1)完全基于OSG的插件体系构建地球瓦片系统;2)未像osgEarth一样对着色器进行封装而自成一套系统;3)完全采用DatabasePager来实现瓦片的调度。本章将重点解析osgVerse基于OSG插件机制实现地球瓦片系统的动态构建逻辑。原创 2025-03-16 22:48:55 · 947 阅读 · 0 评论 -
vulkanscenegraph显示倾斜模型(5.3)-相机
在Vulkan中,相机的概念并非由API直接提供,而是由应用程序实现。相机的核心功能包括视图变换和投影变换:视图变换将世界坐标系中的物体转换到相机坐标系,投影变换则将相机坐标系中的物体转换到投影空间。在VSG(Vulkan Scene Graph)框架中,vsg::Camera类封装了视图矩阵和投影矩阵,并提供了便捷的接口来管理相机。本章将深入探讨Vulkan中的矩阵变换原理,以及VSG对相机功能的封装与实现。目录2 vsg中的视图变换3 vsg中的投影变换。原创 2025-03-16 15:01:10 · 1192 阅读 · 0 评论 -
vulkanscenegraph显示倾斜模型(5.2)-交换链
在 VulkanSceneGraph(VSG)中,vsg::Window 类对窗口进行了高层次的封装,为开发者提供了便捷的窗口管理接口。在上一篇文章中,我们探讨了 VkInstance、VkSurfaceKHR、VkPhysicalDevice 和 VkDevice 的创建过程,以及它们在 VSG 中的封装方式及其相互关系。原创 2025-03-09 23:24:54 · 744 阅读 · 0 评论 -
vulkanscenegraph显示倾斜模型(5.1)-窗口创建
在VulkanSceneGraph(VSG)中,vsg::Window类对窗口进行了高层次的封装,为开发者提供了便捷的窗口管理接口。本章将深入探讨VSG中窗口创建的具体过程,涵盖从底层的Vulkan对象(如VkInstance、VkSurfaceKHR、VkPhysicalDevice和VkDevice)的创建到它们之间的相互关系,以及VSG如何对这些对象进行封装和抽象。目录2 底层的Vulkan对象3 vsg::Window 中的窗口创建。原创 2025-03-08 17:23:48 · 52 阅读 · 0 评论 -
vulkanscenegraph显示倾斜模型(5)-视景器准备
本文在接着往下讨论视景器准备相关步骤。Vulkan相比opengl更底层,其提供了更底层的硬件控制、更高的性能以及更好的多线程支持,VSG 通过封装 Vulkan 的复杂性,提供了更简单易用的接口,同时保留了 Vulkan 的高性能和灵活性。它简化了 Vulkan 的初始化、渲染管线配置、资源管理和事件处理。原创 2025-03-02 21:17:51 · 403 阅读 · 0 评论 -
vulkanscenegraph显示倾斜模型(4)-数据读取
本文在上篇文章的基础上,进一步深入探讨数据读取机制的实现细节。回顾 OpenSceneGraph (OSG),其通过 osgDB 库管理场景数据的读取和写入。常用的读取函数包括 osgDB::readNodeFile 和 osgDB::readImageFile,它们能够根据文件扩展名自动选择合适的插件进行加载。插件机制是 OSG 数据读取的核心,主要包括插件的注册、发现以及相关接口的定义(基类 osgDB::ReaderWriter 提供了这些接口的具体定义)。原创 2025-02-23 10:53:04 · 45 阅读 · 0 评论 -
vulkanscenegraph显示倾斜模型(3)-vsg::Allocator
本文在上篇文章的基础上,进一步深入对vsg::Allocator的理解,以官方的说明()为基础,结合相关代码和个人的理解,对其进行说明。目录1 Allocator概念2 工作原理3 例子。原创 2025-01-08 20:12:00 · 1065 阅读 · 0 评论 -
vulkanscenegraph显示倾斜模型(2)-参数解析与环境变量
本篇文章在上篇vulkanscenegraph显示倾斜模型-优快云博客的基础上,浅析测试用例中的参数解析与环境变量设置部分(具体涉及代码的第1至第17行)。原创 2025-01-06 20:38:35 · 255 阅读 · 0 评论 -
vulkanscenegraph显示倾斜模型
本文作为vsg(vulkanscenegraph)显示倾斜模型的开端,从最外层来了解VSG的渲染特点,通过从现象上观察vsg显示倾斜模型的特点,并于osg渲染倾斜模型进行简单对比,方便后续一步步深入探究vsg渲染逻辑。本文参照官方的实现来编写vsg显示倾斜模型的用例,需要依赖除osg外vsg、vsgxchage、osg2vsg三个相关的库。原创 2025-01-04 10:11:04 · 1185 阅读 · 0 评论