Directx 11 - 来自顶点缓冲区的所有顶点是否都被推送到顶点着色器或只是索引的?

问题描述 投票:0回答:1

在Directx 11中设置顶点和索引缓冲区时

_pImmediateContext->IASetVertexBuffers(0, 1, &_pVertexBuffer, &stride, &offset);
_pImmediateContext->IASetIndexBuffer(_pIndexBuffer, DXGI_FORMAT_R32_UINT, 0);

顶点缓冲区中的所有顶点是通过图形管道还是仅通过索引缓冲区索引的顶点?

c++ directx-11
1个回答
0
投票

简而言之,只有索引引用的顶点被推送通过管道。由于管道顶点上下文是在顶点着色器中生成的(顶点由索引标识并读入)。此外,因为您正在使用标记,所以缓存更有效,因为pipline使用索引作为缓存的引用,因此它不必处理相同的顶点两次(除非发生缓存未命中)。

因此,索引网格在非索引时获得性能优势(如果索引不是1到1的映射)。

© www.soinside.com 2019 - 2024. All rights reserved.