腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
1
回答
Vulkan
/VMA会改变
缓冲区
大小,类似于“`realloc`”
c++
、
memory-management
、
vulkan
、
memory-reallocation
假设我遇到了一种情况,我想改变
vulkan
缓冲区
的(VkBuffer)大小。例如,如果我想向现有的
顶点
缓冲区
添加更多的
顶点
。我将如何增长/缩小VkBuffer?我会被迫创建一个新的
缓冲区
并放弃旧的
缓冲区
,还是有类似于C的realloc的功能?它是否以
vulkan
分机的形式存在? 此外,我正在使用
Vulkan
内存分配器(VMA)。如果有这样的realloc功能,我希望这两种解决方案都使用VMA和原始
vulkan</em
浏览 6
提问于2020-08-06
得票数 2
回答已采纳
1
回答
Vulkan
-同步访问单个
缓冲区
c
、
graphics
、
synchronization
、
rendering
、
vulkan
当多帧正在运行时,在
Vulkan
中同步访问单个
缓冲区
的最佳方法是什么? 将有多个分期缓冲-每帧飞行中一个.,而它正在
更新
。我认为需要使用第二个管道屏障来防止下
浏览 0
提问于2018-10-13
得票数 1
回答已采纳
1
回答
我怎么知道
Vulkan
什么时候不再使用内存,这样我就可以覆盖/重用它?
vulkan
在使用
Vulkan
时,通常在创建
缓冲区
时创建多个
缓冲区
(
缓冲区
‘版本’),因为如果你有双缓冲,例如你不知道图形API是否还在绘制最后一帧(使用你绑定的内存并指示它使用最后一个循环)。我曾在均匀
缓冲区
中看到过这种情况,但
顶点
或索引
缓冲区
或图像/纹理
缓冲区
却没有。这是因为均匀
缓冲区
会定期
更新
,而
顶点
缓冲区
或图像不会
更新
吗?如果你想
更新
一个图
浏览 3
提问于2021-09-24
得票数 1
1
回答
Vulkan
-
顶点
缓冲区
更新
buffer
、
vulkan
、
vertex
我想执行
顶点
缓冲区
更新
。我从空
缓冲区
开始,我将添加新的点数。添加点的数量与帧无关。它可以是每帧一个,几个或一个都没有。在OpenGL中,我只是为将要添加的所有点分配了内存(固定最大大小),使用glBufferSubData并修改将要渲染的点数(因此只有部分
缓冲区
是可见的)。在
Vulkan
中-我想我将需要使用恒定最大大小的createBuffer,但是修改怎么办?我没有为它找到“专用”的方法。在这种情况下,我是否需要重新创建命令
缓冲区
,或者我应该使用完全不同的方法?
浏览 48
提问于2020-01-14
得票数 1
回答已采纳
1
回答
Vulkan
:
更新
VBO网格
顶点
的有效方法?
opengl
、
3d
、
vulkan
、
vertex-buffer-object
我想改变/添加/删除现有VBO中的一些网格
顶点
(同时变形和重新网格3D对象)。使用OpenGL,我必须重新加载整个
顶点
VBO,我想使用
Vulkan
可以有一种方法直接访问VBO,只更改/添加/删除更改后的
顶点
数据。是否有一些示例代码演示了如何实现这一目标?非常感谢你的帮助。
浏览 0
提问于2019-05-29
得票数 3
回答已采纳
2
回答
如何正确地使用暂存
缓冲区
?
memory-management
、
buffer
、
vulkan
如何正确使用
Vulkan
API的暂存
缓冲区
?因为将
顶点
数据保存到暂存
缓冲区
中,而不是复制到GPU中的
顶点
缓冲区
,似乎比直接将
顶点
提交到
顶点
缓冲区
的步骤要长。这是一个Min克拉夫特-克隆程序,所以会有很多
顶点
数据(也有索引数据)和动态块加载,那么还有其他类型的
缓冲区
或缓冲方法可以从中受益吗?即使这样,使用单独的设备线程或甚至跨设备线程似乎比直接将
顶点
动态提交到
顶点
浏览 1
提问于2020-11-18
得票数 5
1
回答
在GLSL
顶点
着色器中,您可以访问索引
缓冲区
中的
顶点
索引,而不仅仅是
顶点
缓冲区
吗?
glsl
、
vulkan
、
index-buffer
我在
Vulkan
中呈现一个原语,它有重复的
顶点
,根据它们在
顶点
缓冲区
中的索引,
顶点
着色器对这些
顶点
进行不同的处理。但是,我希望使用索引
缓冲区
来避免重复内存中的
顶点
。当使用索引
缓冲区
时,每次出现相同的索引时,gl_VertexIndex都是相同的值,因为它是进入
顶点
缓冲区
的索引,每个
顶点
只有一个副本,因此索引
缓冲区
是值得的。我是否可以使用像gl_VertexInde
浏览 4
提问于2020-07-06
得票数 1
回答已采纳
1
回答
Vulkan
允许在内存
缓冲区
中使用绘图命令吗?
gpu
、
direct3d
、
vulkan
这是正确的吗:在
vulkan
中,绘制调用(导致一组原语呈现、索引或非索引的操作)只能在命令流中通过在构建命令流时执行绘制调用来执行。如果您想使用不同的
顶点
或索引
缓冲区
(/offsets)绘制3个对象,通常情况下,您将执行3个API调用。相反,在d3d12中,绘图调用的参数可以来自图形处理器内存
缓冲区
,以任何填充
缓冲区
的方式填充,包括使用图形处理器。
浏览 1
提问于2017-10-16
得票数 0
1
回答
更新
Vulkan
中
顶点
缓冲区
的最一般正确方法
language-agnostic
、
vulkan
、
vertex-buffer
假设设备内存中有一个
顶点
缓冲区
,而主机上的
缓冲区
是一致的和可见的。还假设桌面系统有一个离散的GPU (所以是分开的内存)。最后,假设正确的帧间同步.我看到了
更新
顶点
缓冲区
的两种通用方法: Map + memcpy + unmap进入暂存
缓冲区
,然后是包含vkCmdCopyBuffer的瞬态(单命令)命令
缓冲区
,将其提交到图形队列,等待队列空闲,然后释放临时命令
缓冲区
。第二种方式对我来说是有意义的,我反复阅读过不要在
Vulk
浏览 3
提问于2020-06-03
得票数 3
回答已采纳
1
回答
Vulkan
:用于构建/
更新
加速结构的动态
缓冲区
大小(用于VK_KHR_ray_tracing)
vulkan
、
raytracing
我可能需要
更新
顶点
和索引
缓冲区
的大小,不幸的是,我还没有任何很好的指标来猜测大小,所以我只想在所需的内存大于当前大小时将分配的内存增加一倍(如果这样做可行的话,只需增加一半)。我的计划是使VkDeviceMemory具有当前最大大小(即2的幂),然后将其绑定到一个可能较小的
缓冲区
(其大小与实际
顶点
/索引计数相匹配)。当然,我可以用当前的最大大小来创建
缓冲区
和设备内存,并告诉使用它们的实际大小,但这使它变得有点复杂: 我的应用程序使用光线跟踪(特别是KHR扩展),这意味着这些<e
浏览 0
提问于2020-07-31
得票数 0
2
回答
通过填充
顶点
缓冲区
优化绘制
opengl
、
vulkan
约翰·卡马克最近在推特上写道: 恐怕我不完全明白他的意思。他是否暗示,将所有3D数据(包括
顶点
、索引和联合数据)打包到单个
顶点
缓冲区
中,与每个数据的单独
缓冲区
相比是最优的吗?如果是这样的话,这样的技术是否只适用于OpenGL,或者
Vulkan
渲染器也能从中受益?
浏览 0
提问于2018-01-24
得票数 3
回答已采纳
1
回答
绘制多个不同的材料,他们有时需要不同的着色器配置
glsl
、
shader
、
vulkan
现在我正在绘制一个2D三角形并在屏幕上移动它,我的2D三角形被定义为一个
顶点
缓冲区
中的一个
顶点
,将来,它将在我的
顶点
着色器中被转换成屏幕空间。这个单一的
顶点
被我的几何图形着色器转换成3个
顶点
,然后传递给我的碎片着色器。triangle_center_position[0] = (cursor_x - (
vulkan
_window_width_get() / 2.0f)) /
vulkan
_window_width_get();
浏览 0
提问于2018-09-22
得票数 5
2
回答
在
Vulkan
中绘制多个对象及其纹理
3d
、
game-engine
、
vulkan
我想用多个对象绘制一个场景,每个对象都有自己的统一
缓冲区
和纹理,目前我能够使用动态统一
缓冲区
绘制多个对象,我的方法是在命令
缓冲区
记录期间迭代动态统一
缓冲区
对象偏移量和
顶点
索引,这样我就告诉
Vulkan
使用一个特定的全局矩阵绘制一个模型,但是我不知道如何在这个操作中绑定纹理信息,以便
Vulkan
知道如何为该对象使用合适的纹理,在我的示例中,我有四个带有四个不同结构的框。
浏览 1
提问于2017-11-03
得票数 0
回答已采纳
1
回答
向计算机着色器提供
顶点
数据
algorithm
、
compute-shader
、
vulkan
、
buffers
、
cad
我在用
vulkan
写一个CAD程序。在我的当前设计中,我的行路径表示为用于呈现的大
顶点
缓冲区
。我想要实现一个算法的挤出路径向外,基于交叉产品。理想情况下,我希望在计算着色器中实现此算法,使用
顶点
缓冲区
代替存储
缓冲区
。该算法的工作原理如下:对于原始路径中的每个
顶点
,根据
缓冲区
中的两个相邻
顶点
计算交叉积,然后用标量进行正规化和乘。我相当肯定,这可以通过临时将
顶点
缓冲区
复制到存储
缓冲区
来
浏览 0
提问于2018-07-13
得票数 2
1
回答
Vulkan
异步模型加载
c++
、
c
、
vulkan
我不太确定这是否真的是正确的,我试图做,但没有太多的文件关于
Vulkan
,所以这是我想出来的。如果我完全错在我的设计方式,请纠正我以及!在我的
Vulkan
应用程序中,我有三个不同的队列 transferQueue:用于复制
缓冲区
我正在尝试实现异步模型加载,这意味着所有的
顶点
、纹理等都加载在一个单独的线程中。当模型完成加载时,主线程
更新
绘制命令
缓冲区
,从而呈现新
浏览 1
提问于2018-07-31
得票数 1
回答已采纳
1
回答
用
Vulkan
API实现粒子着色器的最佳方法是哪种?
c++
、
vulkan
、
particles
、
particle-system
Way 1:对所有粒子使用单一的统一
缓冲区
,对每个粒子使用do vkCmdBindDescriptorSets,对每个粒子使用动态偏移量do vkCmdDraw,实例计数1访问
顶点</em
浏览 3
提问于2020-05-03
得票数 0
2
回答
Vulkan
和旧API内存使用情况
vulkan
我对
vulkan
很陌生。问题在于转换对象。在使用DX11和OpenGL时,我会
更新
统一
缓冲区
,然后将绘制命令发送到gpu,但是在
vulkan
中,所有命令都是预先记录的。所以我看不出有什么办法能做到。我在网上读到,要转换每个对象,我可以在绘图时使用一个统一
缓冲区
数组和索引。这是转换
vulkan
中每一个物体的唯一方法吗? 如果是这样的话,那么
vulkan
是否比旧API使用更多的内存呢?旧的API可以有一个单一的统一
缓冲区
,并在抽签调用之前
更新</e
浏览 2
提问于2018-04-03
得票数 1
回答已采纳
1
回答
vulkan
:如何使用不同偏移量的一个
顶点
缓冲区
?
c++
、
buffer
、
offset
、
vertex
、
vulkan
我在程序的“加载
vulkan
”阶段创建了一个
顶点
缓冲区
。它是所有
顶点
的
缓冲区
,无论什么模型实例可能使用它们。我的应用程序应该能够在运行时随时加载
顶点
,对
顶点
缓冲区
(当然还有索引
缓冲区
)使用不同的偏移量。 为了测试,
顶点
缓冲区
的静态大小为8个
顶点
,索引
缓冲区
的静态大小为12个索引。我现在正在尝试加载第一个模型实例(4个
顶点
,6个索引),这是可行的。
浏览 0
提问于2016-12-11
得票数 0
2
回答
在创建管道后
更新
VkGraphicsPipelineCreateInfo是否会影响当前渲染的场景?
c++
、
vulkan
我目前正在开发一个图形引擎,我希望在运行时
更新
流水线状态。在运行时为每个单独的资源
更新
创建一个新的管道(例如:启用深度钳位,启用颜色混合),然后将所有内容重新绑定到命令
缓冲区
,这会占用相当大的性能。并在运行时
更新
这些单独的结构。毕竟,我们传入的是结构的地址,而不是值。谢谢!
浏览 30
提问于2021-02-27
得票数 0
回答已采纳
1
回答
UBOs及其在
Vulkan
的定位
shader
、
vulkan
float gradient; glm::vec4 clippingPlane; Light lights[4];
Vulkan
API:layout (binding = 1) uniform UBO { // View and projection matr
浏览 4
提问于2017-08-11
得票数 4
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
Android图形渲染系统新
单机核外图计算系统之X-Stream(三)SOSP-2013
Opengl ES之EBO
谷歌 Chrome 浏览器110.0.5481.177/.178发布
GPU图像处理的基本流程
热门
标签
更多标签
活动推荐
运营活动
广告
关闭
领券