Най-добра практика за просто изобразяване на DirectX наслагване

Създавам DirectX 11 игра, която изобразява сложни мрежи в 3D пространство. Използвам върхови/индексни буфери/шейдъри и всичко това работи добре. Сега обаче искам да извърша някакво основно изобразяване на „наслагване“ - по-конкретно, искам да изобразя рамкови кутии в 3D пространство, за да покажа границите на определена област. Винаги ще има само една или две кутии в изглед във всеки един момент и техните върхове ще променят позицията си всеки кадър.

Затова търсих по-прости методи за изобразяване на DX11, но повечето статии, които намирам, все още подготвят буфер за върхове/индекси за много просто изобразяване. Знам, че хардуерът е добре оптимизиран за обработка на потоци от върхове, но дали режийните разходи за изграждане и запълване на буфер за върхове на всеки кадър само за обработка на 8 върха наистина са най-ефективният метод?

Следователно въпросът ми е кой е най-ефективният метод за извършване на това много просто рендиране в DX11? Има ли по-примитивен метод ("DrawLine", "DrawLineList(D3DXVECTOR3[])", ...), който би бил по-добро решение? Може да е по-малко ефективен на връх от стандартния метод за предаване на буфери на върхове, защото някога ще се използва само за шепа върхове на кадър.

Благодаря предварително

грабя


person RobJ    schedule 04.01.2014    source източник
comment
Вие dont need to create buffer each frame, just update it with new data. You can also create your own functions, such as DrawLine()` DrawLineList() и също DrawBox() и дори DrawEverythingElse(). Просто го напишете веднъж и те ще направят всички шаблонни неща за вас по всяко време. Със сигурност можете да намерите реализации на чертежи на ограничаващи фигури в мрежата.   -  person Ivan Aksamentov - Drop    schedule 05.01.2014


Отговори (1)


Трябва да създадете един буфер за връх / индекс за всяка примитивна фигура (кутия, сфера, ...) и да използвате матрица за трансформация, за да я поставите правилно в света.

person Simon Ferquel    schedule 06.01.2014