![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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 - количество вершин.