Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

DrawIndexedPrimitives & Baga [D7, WinXP]


Pa5ha ©   (2004-04-24 20:22:00) 

Вот закоментирую я DrawIndexedPrimitives и FPS=190. Уберу коментарий и FPS=0.85 . GeForse2 MX400, Celeron1100. 15363 треугольника. В чем дело? Может я параметры неправильно задаю (VertCount)? Зачем этот ВертКоунт нужен ваще? (Direct3D)


Sapersky   (2004-05-04 14:32:00) [1]

Откуда берётся модель и в каком она виде? От этого зависит и метод вывода. Например, вершины субмешей можно хранить в одной куче, а можно по отдельности. В первом случае при выводе каждого субмеша нужно указывать на эту общую кучу, и D3D будет каждый раз её заново трансформировать (в т.ч. и не принадлежащие данному субмешу вершины; можно трансформировать один раз заранее ProcessVertices - но оно работает только софтверно). Во втором случае модель фактически разбивается на несколько независимых - хотя памяти требуется больше, но рисоваться это должно быстрее, т.к. общее кол-во трансформируемых вершин меньше.
Относительно примеров - для D3D8 они все (какие я видел) используют ID3DXMesh. Для D3D7 есть загрузка и вывод вручную, например, в официальном framework'е к DX7 SDK (посмотри у Clootie).


Pa5ha   (2004-04-28 17:39:00) [2]

Наверно видеокарта кэширует вершины, только тогда получится, что многие вершины будут дублироваться т.к. модель в таком случае сложно оптимизировать до такой степени. Кто поможет исходником, где выводится модель, содержащая несколко текстур и материалов при надлежащем ФПС посредством этой функции? Будьте любезны.


Sapersky   (2004-04-28 01:00:00) [3]

Вот ещё "оттуда", точнее, из хелпа к DX SDK (кстати, рекомендую - многие задаваемые здесь вопросы отпадут):

The minIndex and NumVertices parameters specify the range of vertex indices used for each DrawIndexedPrimitive call. These are used to optimize vertex processing of indexed primitives by processing a sequential range of vertices prior to indexing into these vertices. It is invalid for any indices used during this call to reference any vertices outside of this range.


Pa5ha   (2004-04-27 15:59:00) [4]

public void DrawIndexedPrimitives(
PrimitiveType primitiveType,
int minVertexIndex,
int numVertices,
int startIndex,
int primCount
);
- оттуда. Короче, когда задаю количество вершин в буффере (numVertices), то тормозит, а когда что-то другое, то хрень какаято выводится. Может кто сталкивался и знает, как кусок буфера вывести?


Yar-Com   (2004-04-26 16:21:00) [5]

блин...вобщем ищи на msdn


Yar-Com   (2004-04-26 16:12:00) [6]

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/directx9_m/directx/ref/ns/microsoft.directx.direct3d/c/device/m/drawindexedprimitives.asp


Pa5ha   (2004-04-26 15:03:00) [7]

VertCount - что это ещё может быть. Зачем его указывать и что там указывать? Ваще количество всех вершин или чтото другое?


Yar-Com   (2004-04-26 14:17:00) [8]

VertCount - количество вершин.


Наверх

Титульная страница Поиск, карта сайта Написать письмо