HLFX.Ru Forum Страницы (2): [1] 2 »
Показать все 19 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Технические вопросы (https://hlfx.ru/forum/forumdisplay.php?forumid=20)
-- Какие-то принципиальные вопросы по моделированию (https://hlfx.ru/forum/showthread.php?threadid=5284)


Отправлено Crystallize 18-06-2019 в 10:42:

Какие-то принципиальные вопросы по моделированию

Пишу по учебной практике работу. Возник вопрос:
1. Вот на заре, в Final Fantasy VII или в Сонике, всех персонажей моделировали примитивами, кусочками, т.е. рука это 3 меша, плюс 1 меш на палец, если надо. И торцы у них у всех тоже есть.
Или морда, когда другая текстура всегда помещалась на новом элементе модели.

Встречался даже смешанный подход, допустим туловище и ноги это цельный меш, а ступни и всё остальное-это фрагменты. При этом всё вместе анимируется скелетно.

2. Потом все перешли с моделей "фрагментами" к цельным мешам. Почему? Дело в пропускной способности CD/DVD привода, или, там в наличии программ? Или в том что одна архитектура, типа ПК, любит кушать данные большими кусками, а консольная-маленькими?

3. Анимация. Встречалось такое что даже фрагментированные модели персонажей анимировались скелетно. Насколько я понимаю, это норма. Но почему? Бывает ли какая-то анимация кроме вершинной и скелетной?
Всегда ли вершинная анимация персонажей создавалась путём запекания скелетной? Если да то почему нельзя было сразу, в том же Анриле, сделать скелеталку? Дело было в производительности, или скажем в сложности кода?


Отправлено nemyax 18-06-2019 в 10:58:

Цитата:
Crystallize писал:
Потом все перешли с моделей "фрагментами" к цельным мешам. Почему?

Потому что выглядит лучше.

Цитата:
Crystallize писал:
Бывает ли какая-то анимация кроме вершинной и скелетной?

Процедурная. Те же частицы например. Или генерация геометрии налиту.


Отправлено qpAHToMAS 18-06-2019 в 11:02:

Цитата:
Crystallize писал:
2. Потом все перешли с моделей "фрагментами" к цельным мешам. Почему?

Может быть потому, что персонажи из частей (раньше) занимали просто меньше места? И может быть, даже позволяли применять некую кастомизацию? Цельный меш же уникален и весит больше.


Отправлено nemyax 18-06-2019 в 11:14:

Модельки из негнущихся кусков требуют меньше расчётов. Там в кадре у каждого обломка одна трансформация на все вершины.


Отправлено Crystallize 18-06-2019 в 11:37:

Цитата:
nemyax писал:
Потому что выглядит лучше.

Не настолько лучше чтобы переучивать художников и переписывать всю систему анимации.

Цитата:
nemyax писал:
Процедурная. Те же частицы например. Или генерация геометрии налиту.

Я имел в виду, анимация персонажей.

Цитата:
qpAHToMAS писал:
Может быть потому, что персонажи из частей (раньше) занимали просто меньше места? И может быть, даже позволяли применять некую кастомизацию? Цельный меш же уникален и весит больше.

Цитата:
nemyax писал:
Модельки из негнущихся кусков требуют меньше расчётов. Там в кадре у каждого обломка одна трансформация на все вершины.

Вы как-то в обратном направлении пошли. Мне интересно почему от этого отказались.


Отправлено nemyax 18-06-2019 в 12:19:

Цитата:
Crystallize писал:
Не настолько лучше чтобы переучивать художников и переписывать всю систему анимации.

Художники в 90-х прекрасно умели в скелеталку.

Цитата:
Crystallize писал:
Мне интересно почему от этого отказались.

Кампутеры доросли, проскилованных людей в индустрии прибавилось.

Добавлено 18-06-2019 в 15:19:

Цитата:
Crystallize писал:
Я имел в виду, анимация персонажей.

Ну всякие доводчики-модификаторы вроде IK, джыглов или констрейнтов. Тоже по сути процедурная анимация.


Отправлено Дядя Миша 18-06-2019 в 12:33:

Цитата:
nemyax писал:
Художники в 90-х прекрасно умели в скелеталку.

Я напомню, что повертексная анимация получалась вот как раз из скелеталки. Это можно рассматривать как запекание анимации, по аналогии с запеканием лайтмапы. Слабый комп, не тянет скелеталку? Ну чтож, запечём её в вертексы, заранее посчитанные.

__________________
My Projects: download page

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

Цитата:

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


Отправлено ncuxonaT 18-06-2019 в 13:08:

Цитата:
Crystallize писал:
Всегда ли вершинная анимация персонажей создавалась путём запекания скелетной? Если да то почему нельзя было сразу, в том же Анриле, сделать скелеталку?

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


Отправлено Дядя Миша 18-06-2019 в 13:15:

Модели из кусочков перестали делать, потому что между кусками нет видимой связи и это довольно мерзко выглядит. Ну может для каких-то робатов на шарнирах норм, но когда башка так вращается - некрасиво.
Тут как раз развесовка эти проблемы и решила. Потому что без развесовки что контроллером вращать кусок меша и наблюдать тянущиеся полигоны, что отдельную башку крепить и не наблюдать между головой и туловом никакой связи - одинаково отвратно. Но тогда было норм.

Добавлено 18-06-2019 в 16:15:

Цитата:
ncuxonaT писал:
вершинная анимация стала слишком много весить

Главный минус вершинной анимации это не вес. Главный минус это именно запечённость, невозможность в реалтайме модифицировать анимацию для каких-то иных нужд, рагдоллов там или IK. То есть тут те же ограничения что и у лайтмапы и у любого другого Precomputed-подхода.

__________________
My Projects: download page

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

Цитата:

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


Отправлено nemyax 18-06-2019 в 13:19:

Цитата:
Дядя Миша писал:
Главный минус вершинной анимации это не вес. Главный минус это именно запечённость

А с точки зрения аниматора большой недостаток — то, как она гробит анимацию вращения. Ну то есть главную трансформацию в персонажке.


Отправлено Дядя Миша 18-06-2019 в 13:20:

Цитата:
nemyax писал:
то, как она гробит анимацию вращения

ну это уже как следствие борьбы с весом

__________________
My Projects: download page

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

Цитата:

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


Отправлено Crystallize 18-06-2019 в 15:51:

По поводу сегментации моделей, вот в API же есть такой термин как DIP, индексированный примитив, чьё количество очень сильно влияет на скорость отрисовки кадра, намного сильнее чем полигонаж конкретного ДИПа. В статьях типа анализа рендера Облвиона, Флэтаута, Кризиса они очень сильно считают количество ДИПов за кадр и рекомендуют их всячески батчить ради ускорения рендера. Про полигонаж отдельных ДИПов не говорят.
Я сделал вывод для себя, что это как с копированием файлов с флешки, количество отдельных файлов очень влияет на скорость процесса, в отличие от их размера. Может быть даже это свойство архитектуры IBM PC. Может быть поэтому модели персонажей прекратили бить на части, ради быстрой отрисовки?


Отправлено ncuxonaT 18-06-2019 в 16:06:

Crystallize ты в одну кучу разные вещи смешал. DIP - это отрисовка индексированных примитивов, как правило, треугольников. Это не имеет отношения к примитивам из 3д редактора и сегментам модели. DIP - это "нарисуй мне треугольники с такого-то по такой-то". А образуют они замкнутое тело или каждый висит по отдельности, значения не имеет.

Добавлено 18-06-2019 в 19:06:

Единственное что, если на каждый сегмент модели нужно сделать какие-то персональные действия типа передачи юниформов в шейдер или биндинга новой текстуры, тогда да, новый дип на каждый сегмент.


Отправлено Дядя Миша 18-06-2019 в 16:25:

Цитата:
Crystallize писал:
чьё количество очень сильно влияет на скорость отрисовки кадра

Это справедливо только для DirectX. OpenGL пофигу.

Добавлено 18-06-2019 в 19:25:

Цитата:
Crystallize писал:
Может быть даже это свойство архитектуры IBM PC

Что быстрее - пересунуть шкаф в другой угол или разложить все вещи по его полкам?

__________________
My Projects: download page

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

Цитата:

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


Отправлено XaeroX 18-06-2019 в 16:33:

Цитата:
Дядя Миша писал:
Это справедливо только для DirectX. OpenGL пофигу.

__________________

xaerox on Vivino


Временная зона GMT. Текущее время 21:25. Страницы (2): [1] 2 »
Показать все 19 сообщений этой темы на одной странице

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