DrawIndexedInstanced 具有不同的 Index Count per Instance (Directx
DrawIndexedInstanced with a different Index Count per Instance (Directx11)
我的应用程序中有很多情况,我使用相同的着色器进行绘制调用,具有不同的统一值,并考虑实例化绘制调用。但是,在我的例子中,绘制调用具有不同数量的三角形。
据我了解DrawIndexedInstanced
,它只允许绘制具有相同数量的三角形/索引的多个实例,所以我想我不能使用它。
我认为DrawIndexedInstancedIndirect
可能会有所帮助,但这似乎只能执行多个调用来DrawIndexedIstanced
基本上。
Directx11 中有没有办法为每个实例绘制不同数量的三角形实例,还是我必须保持正常的绘制调用?
如文档中所述,实例化绘图是
[...]重复使用相同的几何体在场景中绘制多个对象。
它通过不交换顶点数据而是重用它来提高性能,而您的数据似乎并非如此,其中每个绘制调用的顶点源都不同。
因此,您必须坚持使用单个绘制调用,但为了提高性能,您可以将它们相互安排。每个状态更改都会向 GPU 提交一定的成本,如果您将着色器设置为用于所有绘制调用,则可以通过执行具有相同着色器和统一值的所有绘制调用来节省一些性能,并且仅在需要时进行切换。
相关文章:
- DrawIndexedInstanced 具有不同的 Index Count per Instance (Directx
- C++ duration_cast<>(time_point_end - tine_point_start)。count() 溢出
- 为什么 std::count 比 MSVC 编译器的普通循环慢,但与 GCC 相等?
- std::chrono::duration::count函数的实际结果类型是什么
- 在C++中使用链表的堆栈实现中,访问结构体headNode成员count和top会导致运行时错误
- "1L << count"是什么意思?如何使用超出"unsigned long long int? "范围的语句编号打印?
- 在给定的代码中,有人可以解释一下(int i = 0; i<len; i++)count[str[i]]++的代码片段;
- Count the digits
- arduino count++ 是否有限制以及如何修复它?
- "cout<<count<<endl;"没有打印任何内容
- 如何使用 c++ 中的 int* count(const string&s)计算字符串中每个数字的出现次数?
- 循环遍历向量<string>并保持每个元素"count"时出现问题
- 此陈述基本上是在count [str [j]] 中的意思
- 为什么 std::count 和 std::find 没有针对使用 memchr 进行优化?
- 快速'group by/count' std::vector<std::u16string> 变成 std::map<u16string, int>
- 为什么 MSVC 在实现 std::bitset::count 时不使用 __popcnt?
- 如何做 boost::asio::spawn 与 io_service-per CPU.
- 智能感知:"count"是模棱两可的
- 为整个Markdown文档设置默认的PER代码语言
- D3D11中没有三个组件8bits-per-per-per-per-per-per-per-per-dxgi纹理格式