particles
|
|
hawkfly2016 | Дата: Четверг, 12.07.2018, 10:25 | Сообщение # 1 |
Сержант
Группа: Пользователи
Сообщений: 31
Награды: 0
Репутация: 0
Статус: Offline
| Чего хочу? Хочу дерево или группу кустов, которое сначала пререндерится в текстуру с разных углов (наверное с интервалом 5 градусов, где-то 64x64). Потом это дерево в большом количестве будет расставляться на поверхности в зависимости от угла. Появилось много вопросов: как лучше это сделать вообще (партиклы какие может ?), сколько мемори это съест, можно-ли хранить 8-битные текстуры, как заменять текстуру при повороте, через функцию типа update() и.т.д.
Сообщение отредактировал hawkfly2016 - Четверг, 12.07.2018, 10:26 |
|
| |
ninth | Дата: Пятница, 13.07.2018, 10:15 | Сообщение # 2 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Боюсь, что в том виде, в котором ты хочешь, это будет работать медленнее чем без всех этих извратов, надо учитывать что каждый дополнительный узел будет замедлять работу т.к. будет по-отдельности отправляться в видеопамять. Т.е. например 10000 кубов объединённых в одну модель и 10000 кубов по-отдельности это очень разные вещи по скорости. Если тебе нужно очень большое кол-во растительности, то это обычно делают через шейдеры. Если без шейдеров, то есть ещё такая штука как LODы
|
|
| |
hawkfly2016 | Дата: Пятница, 13.07.2018, 10:42 | Сообщение # 3 |
Сержант
Группа: Пользователи
Сообщений: 31
Награды: 0
Репутация: 0
Статус: Offline
| Да нет, же. Расставляться на карте будут партиклы с пререндренной текстурой. Мне только интересно много всяких мелких деталей реализации. В памяти будет приличный такой массив пререндеренных текстур, из него будет выбираться одна, соответствующая угловой позиции дерева на карте. Вот я и думаю как конкретно это реализовать. Надо наверное в какой то функции типа update последовательно перебирать все частицы и красить их в соответствующую текстуру. Есть ещё рубаночный вариант делать один пререндер дерева каждый кадр на все позиции, в зависимости от угла камеры.
|
|
| |
ninth | Дата: Пятница, 13.07.2018, 10:55 | Сообщение # 4 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Я об этом и говорю - при таком подходе тебе придётся держать каждую "частицу", точнее биллборд в отдельном узле для того чтобы иметь к нему доступ, со всеми вытекающими из этого проблемами и объём текстур (которые при желании можно в один атлас загнать) будет меньшей из этих проблем, в общем на мой взгляд это будет неработоспособно. Обычно такое делается через шейдеры, посмотри на различные реализации травы.
|
|
| |
hawkfly2016 | Дата: Пятница, 13.07.2018, 11:17 | Сообщение # 5 |
Сержант
Группа: Пользователи
Сообщений: 31
Награды: 0
Репутация: 0
Статус: Offline
| Ну, да перед тем как это прочитать я пришел примерно к тому-же выводу. Шейдер... да чувствую даже что-то, наверное там что-то есть, но по мне шейдер- это пока ругательство :))) Оставлю пока эту блаженную идею и попробую реализовать топорный вариант, где на все биллборды рендерится каждый кадр одна текстура, тут-то все чисто?
|
|
| |
ninth | Дата: Пятница, 13.07.2018, 12:34 | Сообщение # 6 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| 1. зачем тебе каждый кадр текстуру рендерить? 2. не скажу на вскидку как будут работать билборды если их объединить в одну геометрию или использовать rigidbodycombiner, а без этого проблема никуда не уйдёт
|
|
| |
hawkfly2016 | Дата: Пятница, 13.07.2018, 15:35 | Сообщение # 7 |
Сержант
Группа: Пользователи
Сообщений: 31
Награды: 0
Репутация: 0
Статус: Offline
| 2. Чего-то торможу... Я могу вывести на экран несколько сот биллбордов на каждом из которых будет текстура и это должно тормозить? Или тормозят биллборды как таковые? 1.А текстуру рендерить каждый кадр, чтобы дерево на текстуре под нужным углом было (под которым камера повернута)... А партиклы с биллбордом примеры где есть? И как сделать, чтобы они генерились на поверхности и лучше по маске?
Сообщение отредактировал hawkfly2016 - Пятница, 13.07.2018, 15:48 |
|
| |
serg-kkz | Дата: Пятница, 13.07.2018, 23:38 | Сообщение # 8 |
Генерал-полковник
Группа: Модераторы
Сообщений: 803
Награды: 3
Репутация: 18
Статус: Offline
| Пример биллборда.
ООП -
|
|
| |
hawkfly2016 | Дата: Воскресенье, 15.07.2018, 09:45 | Сообщение # 9 |
Сержант
Группа: Пользователи
Сообщений: 31
Награды: 0
Репутация: 0
Статус: Offline
| Огр. спсб. сегодня посмотрю...
Добавлено (15.07.2018, 09:45) --------------------------------------------- Да, все отлично, можно ходить и ездить, но я хочу еще и летать, для этого как я понял мне в billboard.egg надо написать вместо axis какой-то point, но я пока не понял какой... А ещё появилась проблема, когда я вставил строчки примера в bumpexample (граунд и биллбоард, и то и то добавляет падение фпс), фпс упал до 40, при максимальном разрешении. syncoff разгрузил порядка +5 кадров...
Сообщение отредактировал hawkfly2016 - Воскресенье, 15.07.2018, 10:09 |
|
| |
serg-kkz | Дата: Воскресенье, 15.07.2018, 12:47 | Сообщение # 10 |
Генерал-полковник
Группа: Модераторы
Сообщений: 803
Награды: 3
Репутация: 18
Статус: Offline
| Все просто
По поводу падения, не совсем ясно что ты делаешь. Нужен код.
ООП -
|
|
| |
hawkfly2016 | Дата: Воскресенье, 15.07.2018, 15:48 | Сообщение # 11 |
Сержант
Группа: Пользователи
Сообщений: 31
Награды: 0
Репутация: 0
Статус: Offline
| Просто в то место в бамп экзэмл, где происходит расстановка объёктов вставляю строки из примера касающиеся граунд и биллборд, в результате посередине бамповой комнаты появляется земля с деревом (дерево зачетное :)))) Чтобы оценить падение на мощном компе наверное надо выключить синхронизацию.
Сообщение отредактировал hawkfly2016 - Воскресенье, 15.07.2018, 15:51 |
|
| |
serg-kkz | Дата: Воскресенье, 15.07.2018, 17:45 | Сообщение # 12 |
Генерал-полковник
Группа: Модераторы
Сообщений: 803
Награды: 3
Репутация: 18
Статус: Offline
| Проверил, у меня разницы нет ~340 фпс держит. Может у тебя комп слабый, раз он себя ведет, реагируя на незначительные изменения в сцене.
Попробуй текстуру дерева изменить размер кратный двойке, например 256X256
ООП -
Сообщение отредактировал serg-kkz - Воскресенье, 15.07.2018, 17:51 |
|
| |
hawkfly2016 | Дата: Понедельник, 16.07.2018, 10:41 | Сообщение # 13 |
Сержант
Группа: Пользователи
Сообщений: 31
Награды: 0
Репутация: 0
Статус: Offline
| Ну, ладно может это разрешение значимое для слыбых компов (1920x1080),я на самом деле в бубен забил, когда добавил штук 10 плоскостей в режиме 1024x768 и фпс просел градусов на 5, но на второй раз этого уже не было, наверное все в норме... Давно хочу подгрузить какой-нибудь хайполи для теста производительности, но банально не могу этого сделать сейчас потому, что сижу в хроническом аврале, и залезаю в панду и по своим нуждам на полчаса... p.s. А с производительностью уже был вопрос на этом сайте при разрешении 1600x.... p.s. 1.У меня ультранотик с турбо режимом и ясссно он греется... 2.После добавления в сцену 3-10 верточайников и бокс робота фпс в режиме 1024x768 подлетел с 40-60 до 60-90...Добавлено (27.07.2018, 15:44) --------------------------------------------- А можно сделать мин. и макс. дальность прорисовки для конкретного объекта, для биллборда ?...
Сообщение отредактировал hawkfly2016 - Среда, 18.07.2018, 09:50 |
|
| |
serg-kkz | Дата: Суббота, 28.07.2018, 00:15 | Сообщение # 14 |
Генерал-полковник
Группа: Модераторы
Сообщений: 803
Награды: 3
Репутация: 18
Статус: Offline
| Тебе нужно просто пустой нод повесить как уровень детализации.
https://www.panda3d.org/manual/index.php/Level_of_Detail
ООП -
|
|
| |
hawkfly2016 | Дата: Суббота, 28.07.2018, 10:20 | Сообщение # 15 |
Сержант
Группа: Пользователи
Сообщений: 31
Награды: 0
Репутация: 0
Статус: Offline
| Отл., то, что надо... Спсб...
Добавлено (29.07.2018, 11:00) --------------------------------------------- А ещё есть желание сделать, чтобы объекты становились прозрачными к горизонту. (Впервые вроде видел в фаллауте 3). Можно-ли сделать динамический анврап всех объектов каждый кадр по огромной горизонтальной плоскости, которая будет привязана к камере и по которой будет наносится альфа с градиентом?
Добавлено (30.07.2018, 09:57) --------------------------------------------- В принципе можно легко сделать несколько полупрозрачных лодов. А как лучше сделать тогда прозрачность, чтобы не фотографировать каждый лод? Первое, что пришло на ум наложить второй текстурой на отрендеренную текстуру карту белого цвета с процентом прозрачности в альфа для дальних лодов и тогда мультитекстуринг сделает то чего мне надо...
Сообщение отредактировал hawkfly2016 - Понедельник, 30.07.2018, 09:58 |
|
| |