HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Triangles, Vertex and etc
  Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
fire64
Житель форума

Дата регистрации: Apr 2007
Проживает: Москва
Сообщений: 2362
Возраст: 35

Рейтинг



Triangles, Vertex and etc

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

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

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

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

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

Сообщить модератору | IP: Записан
Сообщение: 71575

Старое сообщение 10-02-2011 11:35
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 35062
Нанёс повреждений: 514 ед.
Возраст: 39

Рейтинг



Награды
 
[1 награда]


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

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

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

__________________

Сообщить модератору | IP: Записан
Сообщение: 71580

Старое сообщение 10-02-2011 12:03
-
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33062
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
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'

Сообщить модератору | IP: Записан
Сообщение: 71581

Старое сообщение 10-02-2011 12:09
-
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 35062
Нанёс повреждений: 514 ед.
Возраст: 39

Рейтинг



Награды
 
[1 награда]


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

__________________

Сообщить модератору | IP: Записан
Сообщение: 71583

Старое сообщение 10-02-2011 12:12
-
fire64
Житель форума

Дата регистрации: Apr 2007
Проживает: Москва
Сообщений: 2362
Возраст: 35

Рейтинг



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

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

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
 

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

Сообщить модератору | IP: Записан
Сообщение: 71606

Старое сообщение 10-02-2011 13:03
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 35062
Нанёс повреждений: 514 ед.
Возраст: 39

Рейтинг



Награды
 
[1 награда]


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

__________________

Сообщить модератору | IP: Записан
Сообщение: 71607

Старое сообщение 10-02-2011 13:22
-
fire64
Житель форума

Дата регистрации: Apr 2007
Проживает: Москва
Сообщений: 2362
Возраст: 35

Рейтинг



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

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

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

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

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

Сообщить модератору | IP: Записан
Сообщение: 71611

Старое сообщение 10-02-2011 13:38
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33062
Нанёс повреждений: 392 ед.

Рейтинг



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'

Сообщить модератору | IP: Записан
Сообщение: 71613

Старое сообщение 10-02-2011 13:56
-
HAWK0044
Житель форума

Дата регистрации: Oct 2010
Проживает: Анапа
Сообщений: 563
Возраст: 28

Рейтинг



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

Сообщить модератору | IP: Записан
Сообщение: 71619

Старое сообщение 10-02-2011 15:22
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33062
Нанёс повреждений: 392 ед.

Рейтинг



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

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

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | IP: Записан
Сообщение: 71683

Старое сообщение 11-02-2011 14:07
-
HAWK0044
Житель форума

Дата регистрации: Oct 2010
Проживает: Анапа
Сообщений: 563
Возраст: 28

Рейтинг



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

Сообщить модератору | IP: Записан
Сообщение: 71716

Старое сообщение 11-02-2011 18:24
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33062
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
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'

Сообщить модератору | IP: Записан
Сообщение: 71717

Старое сообщение 11-02-2011 18:37
-
fire64
Житель форума

Дата регистрации: Apr 2007
Проживает: Москва
Сообщений: 2362
Возраст: 35

Рейтинг



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

Вложение: airboat.rar (216.9 кб)
Этот файл был скачан 194 раз.

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

Отредактировано fire64 23-02-2011 в 16:35

Сообщить модератору | IP: Записан
Сообщение: 72798

Старое сообщение 23-02-2011 16:16
- За что?
fire64
Житель форума

Дата регистрации: Apr 2007
Проживает: Москва
Сообщений: 2362
Возраст: 35

Рейтинг



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

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

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

Вложение: smdseparator.rar (4.6 кб)
Этот файл был скачан 202 раз.

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

Сообщить модератору | IP: Записан
Сообщение: 72834

Старое сообщение 24-02-2011 08:02
- За что?
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 23:25. Новая тема    Ответить
  Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Triangles, Vertex and etc
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

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