Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> параметры DrawIndexedPrimitive 
:(
    Опции темы
shuttle
Дата 5.10.2009, 04:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 9.4.2008

Репутация: нет
Всего: нет



Не догоняю значение 4 параметра в функции DrawIndexedPrimitive - это типа количество значений в индескном буфере, или только то количество точек(вертекстов), которые участуют в постороении изображения в данный момент.

Рисую в каждом шаге цикла по 198 треугольников (в их построении участвуют 200 точек)
Код

for(int i=0;i<99;i++)
{
         p_Device->DrawIndexedPrimitive(D3DPT_TRIANGLELIST, 0,  0,10000,  step, 198); 
         step+=200;
}
 
здесь забил в четрвертый параметр 10000 - кол-во значений в индексном буфере. или надо писать вместо него 200. 
--------------------
PM MAIL   Вверх
EgoBrain
Дата 9.10.2009, 01:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 23.3.2008
Где: Комната

Репутация: нет
Всего: 2



Цитата

HRESULT IDirect3DDevice9::DrawIndexedPrimitive(
D3DPRIMITIVETYPE Type,
INT BaseVertexIndex,
UINT MinIndex,
UINT NumVertices,
UINT StartIndex,
UINT PrimitiveCount
);
.. Type — Тип рисуемого примитива. Помимо треугольников вы можете
рисовать линии и точки. Поскольку мы используем треугольники, в
данном параметре следует указать D3DPT_TRIANGLELIST.
.. BaseVertexIndex — Базисная величина, которая будет прибавлена к
используемым в данном вызове индексам. Подробнее о ней говорится в
находящемся после списка примечании.
.. MinIndex — Минимальное значение индекса, которое будет
использовано.
.. NumVertices — Количество вершин, которые будут обработаны
данным вызовом.
.. StartIndex — Номер элемента буфера индексов, который будет
отмечен как стартовая точка с которой начнется чтение индексов.
.. PrimitiveCount — Количество рисуемых примитивов.

То есть 4 параметр - это количество вертексов в буфере вершин.
Вообще к слову об использовании индексов: я видел два различных применения этой технологии (допускаю что существует множество вариаций) -
1). Описываются все вершины тела в вершинном буфере, затем в качестве оптимизации описываются индексы прохождения вершин с целью избежания повторений обработки повторяющихся вершин.
2). Описывается минимальное вхождение вершин в буфере вершин, то есть не для каждого треугольника в отдельности, а минимально необходимое для конкретной фигуры, затем уже индексы обходят каждый треугольник. Например, в вершинном буфере задается 8 вершин из которых строится куб, но из восьми вершин не построить нужное количество треугольников, вот тут то и подключают индексы, которые пробегают нужное количество треугольников.
PM MAIL ICQ Skype   Вверх
shuttle
Дата 23.10.2009, 05:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 9.4.2008

Репутация: нет
Всего: нет



4 параметр - это не количество вершин, это диапазон в котором находятся нужные вершины в вершинном буфере.
Например:
Если в вершинном буфере 200 значений, а в данный момент рисуем треугольник через индексный буфер и соединяем точки 0, 150, 120 то четвертый параметр надо указывать 151 - т.е. все три точки попадают в этот диапазон. 
Пришел к тамому мнению, тем что создал обыкновенную сетку из треугольников и подбирал нужные значения. 

Если я ошибся прошу исправить меня.
--------------------
PM MAIL   Вверх
EgoBrain
Дата 25.10.2009, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 23.3.2008
Где: Комната

Репутация: нет
Всего: 2



Цитата(shuttle @ 23.10.2009,  05:51)
4 параметр - это не количество вершин, это диапазон в котором находятся нужные вершины в вершинном буфере.

То есть с разработчиком DirectX Вы не согласны?
Описание функции взято из справки, которая должна быть и у Вас.
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0424 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.