![]() |
Страницы (255): « Первая ... « 187 188 189 190 [191] 192 193 194 195 » ... Последняя » Показать все 3825 сообщений этой темы на одной странице |
HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Наши проекты (https://hlfx.ru/forum/forumdisplay.php?forumid=1)
-- XashNT: блог разработчика (https://hlfx.ru/forum/showthread.php?threadid=5297)
Я понял об чём ты говоришь, но повторюсь, используется нормаль от поверхности, которую вернула трасса. Если использовать нормаль от взгляда - получится проекция.
Впрочем код клиппинга декалей возможно будет ещё меняться.
Добавлено 27-08-2023 в 11:30:
Можно ещё сделать что: пробежаться по дереву, собрать все потенциальные сурфейсы, пробежаться по сурфейсам, из каждого треугольника посчитать нормаль, сложить все нормали и получить среднее.
В компиляторе я так и делаю.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Ну да, нетривиальная задача, тут либо растягивать рисунок декали, либо вот такие пропуски, и то и то выглядит так себе. Видимо нужно брать нормаль не от проекции, а высчитывать какую то среднюю нормаль от поверхности. В общем хз.
Дядя Миша
А можешь визуализировать сетку твоих декалей и пофоткать с разных ракурсов? Мне всегда было интересно, как они ложатся.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Разве в этой каше можно что-то разобрать?
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Вот единичная декаль, тут получше видно.
Добавлено 27-08-2023 в 13:16:
В принципе можно заморочиться и уничтожить смежные рёбра там где по смыслу они не нужны, но на скорость отрисовки это не влияет, а время постановки - увеличивает. Смысла нет.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
У тебя партикли типа плевков булсквида будут освещаться?
Будут, но до партиклей я ещо не добрался же.
Добавлено 27-08-2023 в 15:02:
Кстати говоря, освещение партиклов я вам завёз ещё для ксаш-мода.
Правда только в авроре. Но они и освещались и туманились.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Система физических материалов у меня есть. Она в пользовательском ведении, так что туда можно добавлять всё что угодно.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Декали готовы. И на моделях и на брашах. И они сохраняются в сейв.
И да, действительно можно накладывать без ограничений - они никогда не удаляются, только накапливаются. Впрочем потом надо будет сделать более гибкие настройки в этом плане конечно. Иногда декали надо удалять по сюжету.
Перехожу к имплементации клиентских эффектов.
У нас это темпэнтити, лучи, партиклы и трасеры.
С новой архитектурой ксаша никакие дурацкие темп-энтити мне не понадобятся. Буду использовать обычные - это намного удобнее во всех отношениях. С лучами пока всё очень туманно, никакая концепция в голове не вырисовывается. Но к счастью в Кваке таких лучей нету, а значит пока что этот вопрос можно отложить в сторону. А те лучи, которые используются в кваке сделаны из темпэнтить сегментами. Так что тут вопрос закрыт.
А вот партиклы надо сделать обязательно. Какая же игра без партиклов?
Это первый дуум ещё как-то без них мог обходиться. Но сделать партиклы с моей архитектурой движка будет не так-то просто. Рисовать партиклы через глбегин я не могу. Можно сделать через инстансы, но я с ними никогда не работал. К тому же у меня конвейер под них не настроен, а вообще инстансы будут нужны, например для отрисовки инстанс-моделей и я полагаю, эту работу имеет смысл выполнить разом для всего. Поэтому пока что мне представляется следующая схема организации партиклов:
1. как и декали, партиклы будут прикрепляться к модели. Если же прикрепления не предполагается, то будут аттачится к миру.
2. апдейт предполагает обновления всех позиций партиклей, а так же изменения их цвета, т.е. стандартная эвалюация.
3. обновлённые данные заливаются в VBO в конце кадра. Та часть партиклов, которая уже вышла из строя, просто получает нулевую прозрачность. И по этому критерию для нее перестаёт выполняться обновление. Когда все партиклы получат нулевую прозрачность, считается что парт-система выработала свой ресурс и может быть освобождена.
4. технически каждый партикл представлен в виде четырёх вертексов и шести элементов, причём во все четыре вертекса записана текущая позиция партикла, а трансформация поворота к камере выполняется на видеокарте. Да, тут есть избыточность, но во первых в одной партсистеме партиклов обычно не так уж и много (128-256 максимум), а во вторых без инстансов эту проблему всё равно не решить. Зато все партиклы, принадлежащие одному эффекту рисуются за один вызов, что тоже положительно сказывается на оптимизации.
5. Из-за предложенной схемы отрисовки оказывается возможным переиспользовать шейдер спрайтов для партиклей. А так же использовать и сами спрайты в качестве партиклей. Аналогично сделано и для декалей - шейдер мировых декалей использует шейдер для отрисовки мира. Меньше уникальных шейдеров - меньше их переключений, выше фпс. Но конечно никто не мешает написать и собственный.
6. Партиклы всегда добавляются в очередь прозрачных полигонов и их возможно отсортировать по дальности. Но только в рамках целой партсистемы,а не каждой частички. Впрочем и это неплохо, т.к. партиклы обычно вообще никто не сортирует.
Пока что так всё это вижу.
Добавлено 30-08-2023 в 16:39:
У прочитавших вышесказанное наверняка возникнет вопрос, мол почему бы и с лучами не поступить так же как с партиклами, хранить сегменты обновлять в шейдере. А потому что для лучей нужно две точки. И где брать эту вторую точку, как её корректно хранить - это больной вопрос, нарушающий всю инкапсуляцию объектов.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
1 | effect TE_GUNSHOT |
2 | count 1 |
3 | type static // вот это тяжелое наследие из кода кваки. Таких переключателей быть вообще не должно |
4 | color 0x101010 0x707070 // RGBA упакованный в unsigned long. Симпатично, а главное как удобно! |
5 | tex 32 36 // вручную предлагается прописывать размер текстуры или я не понял |
6 | size 1 2 // это начальный и конечный размер, а может быть рандомный диапазон? |
7 | sizeincrease 2 // а это тогда что? |
8 | alpha 64 96 48 // альфа с тремя параметрами? |
9 | velocityjitter 8 8 4 // почему джиттер по трём осям но без диапазона рандомности, |
10 | gravity 0.01 // слава богу, хоть тут всё логично, это фактор. |
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Временная зона GMT. Текущее время 20:24. | Страницы (255): « Первая ... « 187 188 189 190 [191] 192 193 194 195 » ... Последняя » Показать все 3825 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024