?

Log in

No account? Create an account
12 июл, 2006 @ 12:34 Вопрос знатокам
Есть тело. Геометрия разбита на части. Тело, руки, ноги, голова.

Ко всему этому безобразию применяется один скелет где-то на 50-60 матриц.

Вариант номер раз: Пихать в шадёр список матриц всего скелета для отрисовки каждой части.

Вариант номер два: Очень хитро извернуться и выставить матрицы только один раз для всей группы мешей. Но это связано с очень хитрыми манипуляциями.

Еще надо учитывать что PPL. Соответсвенно всё это умножается на кол-во лампощек.

Что посоветуете?
haruko
timai:
[User Picture Icon]
From:zeux
Date:Июль, 12, 2006 08:59 (UTC)
(Ссылка)
1. Выставить матрицы один раз (не очень понятно, где тут хитрые манипуляции)
2. Убрать многопроходность из PPL.
(Ответить) (Ветвь дискуссии)
[User Picture Icon]
From:timai
Date:Июль, 12, 2006 09:27 (UTC)
(Ссылка)
1) Хитрые манипуляции - это переделка значительной части кода, что не хотелось бы.
2) Каким образом?
(Ответить) (Уровень выше) (Ветвь дискуссии)
[User Picture Icon]
From:zeux
Date:Июль, 12, 2006 11:50 (UTC)
(Ссылка)
2. Очевидно, определить максимум источников света на объект, которые влезают в шейдер, добиться того, чтобы этот максимум никогда не захотелось бы перешагнуть (скажем, 4-х источников света на объект обычно более чем достаточно) и сгенерировать нужное кол-во шейдеров из одного hlsl кода (с циклами, условиями и пр.)
(Ответить) (Уровень выше) (Ветвь дискуссии)
[User Picture Icon]
From:timai
Date:Июль, 12, 2006 11:55 (UTC)
(Ссылка)
Гхм, а инструкций-то хватит? Все эти бампы, паралаксы и прочаю лабудень и так сжирают почти все =) Или писать исключительно под 3-ие шадёры? =)
(Ответить) (Уровень выше) (Ветвь дискуссии)
[User Picture Icon]
From:zeux
Date:Июль, 12, 2006 14:50 (UTC)
(Ссылка)
Есть мнение, что если во 2-ые шейдеры уже не влезает, а 3-их нет, то не факт, что скорость будет приличная.
Впрочем, местами вполне можно делать несколько проходов.

Плюс, стоимость установки констант особо не связана с кол-вом проходов. Поставил константы - отрендерил сколько нужно проходов - перешел к следующему мешу.
(Ответить) (Уровень выше) (Ветвь дискуссии)
[User Picture Icon]
From:timai
Date:Июль, 13, 2006 06:39 (UTC)
(Ссылка)
Поставил константы - отрендерил сколько нужно проходов - перешел к следующему мешу.
Я тоже склоняюсь больше к этому варианту. Ведь выставление буферов и текстур в таком случае будет происходить 1 раз для модели =)
(Ответить) (Уровень выше) (Ветвь дискуссии)
[User Picture Icon]
From:alex_ez
Date:Июль, 12, 2006 09:22 (UTC)
(Ссылка)
3. Почитать учебники по азам аналитической геометрии
или хотя бы это: http://dtf.ru/articles/read.php?id=61
(Ответить) (Ветвь дискуссии)
[User Picture Icon]
From:timai
Date:Июль, 12, 2006 09:25 (UTC)
(Ссылка)
При чём тут это? Меня интересует - насколько это "тяжёлый" метод (передача списка матриц в шадёр). И стоит ли замарачиваться с этим
(Ответить) (Уровень выше) (Ветвь дискуссии)
[User Picture Icon]
From:alex_ez
Date:Июль, 12, 2006 09:37 (UTC)
(Ссылка)
Вариант номер 2 - быстрее...
(Ответить) (Уровень выше) (Ветвь дискуссии)
[User Picture Icon]
From:timai
Date:Июль, 12, 2006 09:40 (UTC)
(Ссылка)
Это и ежу понятно. Вопрос только - насколько быстрее. Стоит ли овчинка выделки?
(Ответить) (Уровень выше) (Ветвь дискуссии)
[User Picture Icon]
From:alex_ez
Date:Июль, 12, 2006 09:49 (UTC)
(Ссылка)
Думаю, да.
А ты красивый ;)
(Ответить) (Уровень выше) (Ветвь дискуссии)
[User Picture Icon]
From:timai
Date:Июль, 12, 2006 09:53 (UTC)
(Ссылка)
Я знаю.
(Ответить) (Уровень выше) (Ветвь дискуссии)