HLFX.Ru Forum
Показать все 14 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Triangles, Vertex and etc (https://hlfx.ru/forum/showthread.php?threadid=2611)


Отправлено fire64 10-02-2011 в 11:35:

Triangles, Vertex and etc

Треугольник - Triangles состоит из 3 точек, вертексов.

Означает ли это, что количество точек в модели равно количеству треугольников умноженному на 3 ?

Добавлено 10-02-2011 в 14:35:

Или же там надо сделать полный перебор всех вертексов со сравнением их координат и удалением дублей ?

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено XaeroX 10-02-2011 в 12:03:

Цитата:
fire64 писал:
Означает ли это, что количество точек в модели равно количеству треугольников умноженному на 3 ?

Нет.
Цитата:
fire64 писал:
Или же там надо сделать полный перебор всех вертексов со сравнением их координат и удалением дублей ?

Что-то вроде того, да.

__________________

xaerox on Vivino


Отправлено Дядя Миша 10-02-2011 в 12:09:

Цитата:
fire64 писал:
Означает ли это, что количество точек в модели равно количеству треугольников умноженному на 3 ?

ну это очень хреновая модель, если там кол-во вертексов равно кол-ву треугольников умноженному на три.
Обычно от дупликатов избавляются при помощи безопасных указателей - индексов (indices). Разные индексы могут указывать на один и тот же вертекс, но для разных треугольников. Поскольку вертекс типично занимает аж 12 байт, а индекс не больше четырех (а то и двух, если кол-во вертексов в модели не превышает 65535 вертексов, см. StudioModel) то экономия выходит весьма ощутимой. А если ко всему прочему умело сочетать TRIANGLE_FAN и TRIANGLE_STRIP то вообще неплохая экономия выходит. Оба этих метода можно обнаружить в халфовских модельках.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено XaeroX 10-02-2011 в 12:12:

Понятие индекса лежит в основе всех видеокарт. А функции навроде glDrawArrays оставлены для удобства, и перед отправкой данных в видеокарту драйвер всё равно формирует индексы.

__________________

xaerox on Vivino


Отправлено fire64 10-02-2011 в 13:03:

Вот бы еще придумать как сосчитать количество вертексов.

Пока что написал такой быдлокод:

C++ Source Code:
1
int GetRealCountVerts( filedata_t smdfilebuf )
2
{
3
  int fullcountverts = GetCountTriangles( smdfilebuf ) * 3;
4
 
5
  int curcountverts = fullcountverts;
6
 
7
  for( int curvert =0; curvert < fullcountverts; curvert++ )
8
  {
9
    int curbone;
10
    Vertex curorigin;
11
    Vertex curnormals;
12
 
13
    GetVertexData( curvert, smdfilebuf, curbone, curorigin, curnormals );
14
 
15
    for( int checkervert = curvert + 1; checkervert < fullcountverts; checkervert++ )
16
    {
17
      int checkbone;
18
      Vertex checkorigin;
19
      Vertex checknormals;
20
 
21
      GetVertexData( checkervert, smdfilebuf, checkbone, checkorigin, checknormals );
22
 
23
      if( curbone == checkbone && checkorigin.x == curorigin.x && checkorigin.y == curorigin.y && checkorigin.z == curorigin.z && curnormals.x == checknormals.x && curnormals.y == checknormals.y && curnormals.z == checknormals.z )
24
      {
25
        curcountverts -= 1;
26
      }
27
    }
28
  }
29
 
30
  return curcountverts;
31
}
32
 

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено XaeroX 10-02-2011 в 13:22:

С какой целью ты это делаешь?

__________________

xaerox on Vivino


Отправлено fire64 10-02-2011 в 13:38:

XaeroX, так для конвертера моделей Source->GoldSRC.

Что бы обойти лимит вертексов, необходимо меш разбить на бодипарты.

То есть из одного референс SMD сделать несколько.

Соответственно, мне нужно знать реальное количество треугольников, что бы знать где разбивать smd и на сколько частей.

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено Дядя Миша 10-02-2011 в 13:56:

fire64 не надо ничего придумывать. Кури исходники studiomdl.
Ну или алиасные модельки первокваки - принцип тот же, но код более простой для понимания.

Добавлено 10-02-2011 в 16:56:

Цитата:
fire64 писал:
Что бы обойти лимит вертексов, необходимо меш разбить на бодипарты.

не разобъешь ты его правильно. Эта задача слабо поддающаяся автоматизации. Надо просто юзать первый лод и не парить мозг добрым людям.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено HAWK0044 10-02-2011 в 15:22:

лично я делал проще, заменял переменную в каком-то фале MAXSTUDIOVERTEX и свободно с этим студиомдл компилил , но вот нужен новый рендер , так так стандартный не рендерит >2048 вертесов в БП. am.half-lifecreations.com тут был тутор , но он глючный либо берёт текстуры из ворда ,либо просто одноцветные текстуры


Отправлено Дядя Миша 11-02-2011 в 14:07:

Цитата:
HAWK0044 писал:
но он глючный либо берёт текстуры из ворда

может из экселя или поверпоинта?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено HAWK0044 11-02-2011 в 18:24:

нет! :-D посмешил , ворд - (world) - мир по Русские т.е берёт текстуры с карты


Отправлено Дядя Миша 11-02-2011 в 18:37:

Цитата:
HAWK0044 писал:
ворд - (world) - мир по Русские

Сразу Русские?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено fire64 23-02-2011 в 16:16:

И все же, мне это удалось
SMDSeparator конечно сильно тормозит, но со своей задачей в принципе справляется.

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено fire64 24-02-2011 в 08:02:

А вот кстати и сам SMDSeparator, а точнее его исходники.

Добавлено 24-02-2011 в 11:02:

Модели в 12k полигонов успешно компилятся, а более детализированных у меня нет.

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Временная зона GMT. Текущее время 08:05.
Показать все 14 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024