VulkanSceneGraph —— 数据组织

VulkanSceneGraph中的数据组织与性能优化
本文介绍了VulkanSceneGraph中数据组织的两种方式,包括按类型分组和官方推荐的连续内存布局,以及如何配合shader、数据描述和存储来提高性能。还提到了NDC坐标系的特点。

数据组织

本篇的主要内容为VulkanSceneGraph中的数据组织方式,与Vulkan和OpenGL相同,主要有以下两种方式

  1. 每个种类的数据放在一起,即把每个点的坐标数据放在一起,颜色放在一起。这种方式是vsgExamples以及VSG源码中常见的使用方式,我就不再赘述,如果有需要的话,也可以留言给我,我有空的时候再做一个简单的示例。官方示例
  2. 每个顶点的数据放在一起,即把点的坐标、颜色等信息按照自定义的顺序排列,随后放到一起。这种方式与learnOpenGL中的方式是相近的。官方教程中这个部分为TODO状态,接下来的内容为该种方式的示例.
    完整代码这里

具体实现

主要为三个方面,着色器、数据描述、数据组织存储。这三个方面需要能够相互统一起来。
如果自己要使用vsg自带的几种shader,那自己的数据就要组织成对应的形式。

shader

这里使用最简单的shader

std::string vertexShaderSource{
   
   R"(
#version 450
layout(location = 0) in vec3 vsg_Vertex;
layout(location = 1) in vec3 vsg_Color;

layout(location = 0) out vec4 fragColor;

void main()
{
    fragColor = vec4(vsg_Color, 1.0f);
    gl_Position = vec4(vsg_Vertex, 1.0f);
})"
};
std::string fragmentShaderSource{
   
   
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

亮微尘

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

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

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

打赏作者

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

抵扣说明:

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

余额充值