首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DX11动态调整缓冲区大小

DX11动态调整缓冲区大小
EN

Stack Overflow用户
提问于 2013-03-31 23:22:02
回答 2查看 1K关注 0票数 1

我正在尝试为大学的一个项目制作一个可变形的体素地形。我目前使用3DTextures来保存“块”中的体素数据。我的计划是使用计算着色器对所述体素数据执行行进立方体算法,并将顶点输出到缓冲区中,然后可以渲染每一帧。

问题是,为了为我正在使用的结构化缓冲区设置一个UAV,我需要知道它有多少个元素用于D3D11_ buffer _UAV的NumElements。我可以猜测它可能包含的最大值,但在计算着色器完成之前,我无法知道它实际会包含多少,并且我认为这可能不是解决问题的最佳方法。

我真正需要做的就是让计算着色器输出任意数量的顶点,这些顶点可以在以后存储和渲染,你有什么好办法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-14 23:06:56

看起来最好的方法是使用append buffer。您必须小心,不要依赖于添加元素的顺序,因为多线程是专门设计为允许随机添加内容的。我必须一次追加一个三角形的数据,这阻止了我使用索引缓冲区,但我看不到任何其他方法来做到这一点。

如果有人想出更好的解决方案,我很乐意听到。

票数 0
EN

Stack Overflow用户

发布于 2013-04-17 22:58:55

在我的体素引擎中,我遇到了同样的问题,最初我分配了缓冲区,以便能够包含可能生成的最大数量的顶点。

在我完成工作后,我使用我计划使用的噪声函数对其进行了测试,并记下了顶点缓冲区所需的最高顶点数量。

然后,我只是添加了一点,并使用该值作为我的应用程序中所有顶点缓冲区的大小。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15730939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档