我目前正在使用Apple的Metal API,我无法全神贯注于如何实现大量实例的渲染,因为每个实例都需要有自己的(部分)缓冲区。
假设我想绘制一个模型的大约50.000个实例(我承认这是非常荒谬的。)每个实例将其位置和骨骼动画数据存储在一个缓冲区中,比方说每个实例50个关节。现在考虑到最多可以同时渲染三个帧,我将需要这些实例缓冲区乘以帧数。
这将导致相当可笑的缓冲区大小,仅用于绘制实例。另外,如果当前实例不能容纳要渲染的所有对象的数据,那么应该如何实现数量可变的实例,分配更大的缓冲区呢?只需确定每帧设定的最大实例数?
我研究过的所有文章和教程似乎都暗示着:一个场景中有最大数量的对象。