Лучший (и самый быстрый) способ хранения треугольников и линий в C ++? - PullRequest
2 голосов
/ 14 ноября 2010

У меня работает несколько 3D-приложений, и мне было интересно, как лучше хранить линии и треугольники? На данный момент у меня есть строки в виде массива typedef'd векторов как таковых:

typedef struct
{
    float x, y, z;
}
Vector

Vector line[2];

Теперь я мог бы сделать это так:

typedef struct 
{
    Vector start, end;
}
Line

Line lineVar;

Лица могут быть похожими:

typdef struct
{
    Vector v1, v2, v3;
}

Face faceVar;

У меня такой вопрос: есть ли лучший или более быстрый способ сохранить линии и лица? Или я делаю это хорошо?

Спасибо

Джеймс

1 Ответ

2 голосов
/ 14 ноября 2010

То, что у вас есть, это то, как векторы представлены в компьютерных программах.Я не могу представить какой-либо другой способ сделать это.Это прекрасно:

typedef struct
{
    float x, y, z;
} Vector;

( Кстати, DirectX хранит векторные компоненты, подобные этому .)

Однако в программах с интенсивной трехмерной графикой, как правило, индекс лицвекторный массив для экономии места, поскольку одни и те же точки часто появляются на разных гранях 3D-модели:

typedef struct
{
    int vectorIndex1, vectorIndex2, vectorIndex3;
} Face;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...