Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/138.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 雪碧批量概念_C++_Directx 11 - Fatal编程技术网

C++ 雪碧批量概念

C++ 雪碧批量概念,c++,directx-11,C++,Directx 11,我想确认以下几点,是否可以只使用一批精灵并绘制字体和其他动画精灵?如果这是真的,那么使用一个sprite批处理可以批处理多少个四边形?这是DirectX API的问题吗?它解决了这个问题还是GPU 是,可以对字体和其他精灵使用一个精灵批处理对象。事实上,这样可能更好 可以批处理的精灵数量取决于实现。如果您在DirectXTK中使用的是SpriteBatch类,那么当您向其中添加精灵时,它会使用一个不断增长的数组,因此您可以给它的精灵数量没有实际限制(内存除外)。它在内部创建一个顶点缓冲区,可以处

我想确认以下几点,是否可以只使用一批精灵并绘制字体和其他动画精灵?如果这是真的,那么使用一个sprite批处理可以批处理多少个四边形?这是DirectX API的问题吗?它解决了这个问题还是GPU

是,可以对字体和其他精灵使用一个精灵批处理对象。事实上,这样可能更好

可以批处理的精灵数量取决于实现。如果您在DirectXTK中使用的是
SpriteBatch
类,那么当您向其中添加精灵时,它会使用一个不断增长的数组,因此您可以给它的精灵数量没有实际限制(内存除外)。它在内部创建一个顶点缓冲区,可以处理2048个精灵或2048*4个顶点。这并不限制可以发送到
SpriteBatch
的精灵数量。这仅仅意味着,例如,如果您将3000个精灵排队,它将需要进行至少两次绘制调用来渲染所有内容(如果您使用多个纹理,则需要进行更多)

因此,在一次调用中可以绘制的精灵数量取决于实现创建的顶点缓冲区的大小。顶点缓冲区的最大大小最终取决于可用的内存量。

注意:可以在上找到DirectX工具包以及和的文档。