Есть несколько других способов представления объектов - например, треугольные полосы (D3DPT_TRIANGLESTRIP) или треугольные вееры (D3DPT_TRIANGLEFAN).
Мой вопрос - действительно ли они используются при рисовании геометрии в современном 3Dдвигатели?
TriangleStrip
часто используются для рендеринга рельефа местности или других типов ячеек с сочетанием индексов перезапускаемых полос (0xFFFF или 0xFFFFFFFF) или вырожденных полос.Они предлагают лучшее соотношение с точки зрения хранения треугольников на индексы.И если у вас есть хорошие сетки, оптимизированные для кеширования вершин, они будут полностью править миром.
TriangleFan
присутствуют в D3D9, но были удалены из D3D10 и D3D11.Мой совет, избегайте их использования.Причина, по которой они больше не годятся, заключается в том, что они выполняют ужасную работу в том, что касается интерполяции атрибутов (таких как texcoord или normals), потому что вы можете делать с ними очень тонкие и вытянутые треугольники.
Вы можете поспоритьВы можете сделать это тоже с полосами или списками треугольников, да, конечно, но на самом деле умение делать фанатов приводит к не дружеским (мудрым артефактам) сеткам.Удалив его из D3D, инструменты создания контента, вероятно, будут выводить тесселяцию, которая позволяет избежать длинных треугольников с острыми углами.
Длинные и тонкие треугольники также плохи (с точки зрения производительности), поскольку они генерируют субоптимальные фрагменты квадратов в процессе растеризации (см.отлично Humus post по триангуляции ).
Конечно, этот совет применим, если вы кодируете высокопроизводительный / высококачественный движок рендеринга, если вы делаете хобби-код, вы хотите, возможно, не заботиться оэто так много.