Jump to content

Несколько вопросов про сборку уровня


photo

Recommended Posts

Привет, ребят! Я с другом наконец-то подходим к заключительному этапу создания нашего контента для нашей сцены. Мы уже делились предыдущими скринами, вот что мы делаем-alexander-kolyasa-shelterscreenshot1.thumb.jpg.7f05113b760a01505659e6c6c2db2cec.jpg
 но тут многое было еще в стадии блокинга и многое отсутствовало. Буду уже потихоньку собирать чистовую сцену, закидывать весь контент что мы сделали, поэтому появились некоторые вопросы. 
Я немного знаком с движками, но все же по большей части я 3д художник и техническая часть как работает движок мне не так хорошо знакома, поэтому если что извиняюсь за может быть глупые вопросы)
Вопросы такие:

1) Мы не делали никакие провода к разной технике, т.к. не уверены еще где она будет стоять точно, поэтому решили сделать их динамическими в Unigine, когда определимся что где будет находиться. Как это делается я разобрался по документации, но как их можно зафризить после того как они просимулируются? Я думаю что надо бы их просто оставить в таком состоянии как они лягут и отключить просчет динамики, чтобы не жрала ресурсы. 

2) У нас есть много наборов ассетов, которые будут обращаться к своим 2к текстурам. Есть ли смысл объединить допустим 4 каких то набора в один и четыре 2к текстуры объединить в одну 4к? Я где то читал, что движку легче обратиться 1 раз к большой текстуре, чем много раз к более маленьким и что по этой причине ассеты собирают в текстурные атласы. Если это так и будет лучше все собрать в атласы, то есть ли какое то автоматическое решение для этого в движке? Я знаю у нас на работе ребята в Unity автоматически собирают атласы, но в принципе и не проблема сделать это вручную. То же самое и про декали. Декалей планируется много, так что лучше их объединить в один большой атлас или десятки маленьких делать по 128-512 пикселей? 

3) Имеются у меня вот такие ассетыalexander-kolyasa-screenshot006.thumb.jpg.4bf1a51b269c975078f6831c3ed3b43f.jpg

обращаться они все будут к одной текстуре. Следовательно, как я узнал из вашего недавнего видео на youtube, желательно будет после расстановки все это объединить в mesh cluster для оптимизации? все меши, обращающиеся к одной текстуре можно объединять, или есть какие то нюансы? Или они должны быть идентичны и нужно будет объединить бочки с бочками, коробки с коробками и т.д.?

4) В прошлый раз, когда я собирал первую тестовую сцену, что на первом скриншоте, я столкнулся с тем, что после загрузки некоторых хайпольных мешей, больших текстур, опытов с настройками света и эффектов, Fps у меня снизился до определенного значения (около 30) Но после того как я удалял хайпольки из сцены, возвращал настройки света и постэффектов по дефолту, по идее, если я правильно понимаю, fps должен был опять подняться значительно, но он все оставался примерно на том же уровне.Я подумал может есть какие то кеши текстур в памяти, или еще чего то, которые забиваются и грузят систему и их нужно периодически чистить? или что то еще подобное... можно как то вернуть все как было по дефолту до моих экспериментов, увеличивших нагрузку на видеокарту? Или перед каждыми такими опытами просто сохранять проект и потом открывать его заново и откатываться таким способом? 
 

5) Хотелось бы в финале сделать крупные частички пыли, летающие перед камерой в воздухе, подскажите пожалуйста каким способом этого можно добиться? Партиклами, или это делается каким то постэффектом нацепленным на камеру? 
 

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

Link to comment

Александр, здравствуйте!

Сразу отвечу про пункт 4 - это был баг который уже не должен воспроизводиться с версий 2.7.х. Если опять вылезет - то пишете, посмотрим что можно сделать.

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

По остальным пунктам, я думаю, ребята ответят чуть позже.

Спасибо!

How to submit a good bug report
---
FTP server for test scenes and user uploads:

Link to comment

Здравствуйте.

1. Не думаю что этот вариант вообще заработает, я проверю. Даже самому лично интересно стало))) как проверю сразу отпишусь сюда

2. Спекать в атласы имеет смысл только если у вас и геометрия будет спечена. Но тут всё не так просто. Большенство информации в интернете которую можно найти сводится к дилетантскому пониманию оптимизации контента) как раз в стиле берем и спекаем все в атласы "потому что потому" Но вот не всем видеокартам легко гонять 4к текстуры, иногда проще прогнать 4 текстуры по 2к. + спекание геометрии будет негативно сказываться на её кулинге. Но позитивно сказываться на CPU нагрузке, ибо тупо будет меньше объектов в ворлде. Тут нужен баланс. Скажу проще, данная сцена не выглядит как что то очень высоконагруженное и думаю что тут можно просто расставить все нодрефками как оно есть и не заморачиваться вообще на всякие атласы... а потом уже в конце когда начнется мериться перф, смотреть тормозит ли именно контент или нет. Скорее всего тормозить будут постъэффекты а не контент.

3.Меш кластер нужен если у вас сотни и тысячи одинаковых мешей используется. Меш класстер мега крутая оптимизация статичной но часто повторяющейся геометрии. Пример тому демка Oil Refiinery. Там объектов на экране одновременно столько, сколько не сосчитаешь, не то что расставить их все там... там все собрано из отдельных элементов в стиле конструктора. Там примерно раз в 100 больше объектов я думаю) Поэтому возвращаясь к первому пункту можете не заморачиваться на такие оптимизации. Думаю контент у вас не будет тормозить.

5. Частицы в воздухе по перфу затмят все остальное сразу. Это будет работать достаточно медленно если вы захотите сделать их правдоподобно много. Но можете попробовать, это не сложно сделать. Главное помните, не пытайтесь делать крупные частицы в которых врисовано сразу много пылинок, потому что они все по толщине начнут перекрывать друг друга и накапливаться на экране по толщине в каждом пикселе в огромном количестве. Это как раз и будет тормозить. Но если сделать каждую пылинку отдельной частичкой то начнет тормозить уже не их отрисовка а их количество) тут нужен баланс. Какого то готового шейдера из коробки для такой штуки сейчас увы нет, которая бы имитировала миллионы пылинок в воздухе. В общем тут придется экспериментировать.

 

доп инфо.

Огромную роль в данной сцене будут играть постъэффекты. Они будут давать сильный вклад в картинку и так же сильно бить по производительности. Я так думаю ваша основная цель сделать красиво, а потом уже производительно ибо у вас артсцена а не коммерческий проект под широкую аудиторию. По этому используйте обязательно SSR, SSRTGI, SSAO, SSGI, Voxel probe, Environment probe с бокс проджекшеном, а местами если нужно то без галочки бокс проджекшен. Так же для лайтов используйте Screen Space Shadows. Очень важна правильная настройка тонмаппера (Filmic) рекоммендую взять настройки из стартового ворлда, и если нужно то немного поправлять самый нижний и второй слайдеры. Самый нижний убирает пережары, второй делает картинку более контрастной. Так же у нас есть поддержка color lut в settings в группе color. Как они работают думаю либо знаете либо разберетесь. В крайнем случае можно взять из Superposition их, там их в проекте несколько разных штук. 

Вот потом после использования всего это вы обнаружите что оно тормозит) и тут надо будет просто взять и всё это грамотно настроить по перфу. Это сложная задача, ибо нужно понимать как работает каждый из пунктов настройки. Замерять перфоманс можно через Microprofile, но там нужно понимать что в нем отображено)))

 

Link to comment

Спасибо большое! Значит не буду заморачиваться над ненужной оптимизацией, пылинки может тогда на посте добавлю на некоторые скриншоты, если возникнут проблемы с ними. Да, LUT тестил уже, очень полезная вещь. 
В общем тогда пока остается только вопрос с проводами разными. Если это и не получится пока что реализовать, то можно ли после расстановки пропсов в движке выгрузить эту сцену в 3д редактор свой чтобы там уже засимулить все провода и подгрузить их в готовую сцену? Я просто пока на работе и не могу проверить есть ли экспорт сцены

Link to comment

Ну есть хорошая новость, если использовать Rope на dynamic mesh, то его можно потом экспортировать в static mesh, тем же способом что экспорт в FBX. Только в static mesh. В fbx почему то не экспортируется, видимо баг. Но можно экспортнуть в mesh, потом в fbx)
Но это только если провод не какой то сложной формы. Если сложной щас еще посмотрю что можно сделать...

Link to comment

Спасибо! Так тоже подойдет. В общем тогда пока что со всем разобрались, но наверно в процессе еще что то может появиться, а пока буду собирать потихоньку 

Link to comment

Здравствуйте опять)
появилось еще парочка вопросов и небольшой фидбек.
Собираю потихоньку сцену, все идет отлично, производительность действительно больше не падает когда я экспериментирую с текстурами, мешами и настройками.
Единственное что пока что заметил- пока дублирую и расставляю пропсы, пару раз было, что оставались во вьюпорте меши, которые нельзя выделить  никак. Сквозь них также не выделяется то, что находится за ними. Проверил среди объектов в World вкладке и не обнаружил там этого "призрачного" меша. Фиксится просто перезапуском движка.
А вопрос следующий- не смог найти по поиску на форуме ничего о блендинге материалов. Нет ли способа смешивать 2-3 разных материала через vertex paint или может каким то другим способом? Допустим одна тайленая текстура пола с цельными плитами, на другой они потресканные и смешать их на меше так, чтобы кое где проглядывалась вторая текстура, таким образом еще можно избегать видимого тайлинга текстур на больших поверхностях. 
2) В Settings- Screen я нашел пункт Panorama 360. По идее сделав такой скриншот потом можно это крутить в браузере как 360 видео, но нужно иметь правильное соотношение сторон на скриншоте? Если правильно помню, скриншот вроде делался раньше какой то командой в консоли, а разрешение и соотношение сторон я ставил в камере где то. Так вот сейчас не могу найти где это выставляется, там сейчас только FOV и клиппинг. 

Edited by Kolyasa.Aleksandr
Link to comment

Для избегания тайлинга можно сделать 3 вещи:
- включить стейт Detail на их материале, назначить detail-текстуры и задать им не-едичный UV-transform на вкладке parameters (чтобы детейловские текстуры визуально становились заметны либо когда мы очень близко к объекту, либо наоборот - на крупном плане). Посмотрите, как сделан concrete_slopes_mat (и объект Combined mesh concrete_constructor) в демке oil_refinery.

- врубить "spatial color noise" там же, на вкладке states

- создать декаль (например, с трещинами или пятнами грязи), и настроить material mask так, чтобы она проецировалась только на нужный метариал.

Обработка Vertex color в движке есть, но она странноватая - смешивать материалы через этот канал (как в анриал энджин'е) нельзя, только подкрашивать диффуз-текстуру в цвет вершины.

Link to comment

через вертекс колом можно смешивать "матриалы". Только смешивать надо не материалы а базовый слой с дитейл слоем на одном материале. Там есть и 3 варианта бленда. Все это находится в states в mesh_base материале. Включаем deteil, включаем, у дитейла галочку mask (как раз это и есть маска где виден дитейл а где нет) и включаем vertex color. Затем указываем что вертекс колор используется как маска для дитейлов. Это там же в states у настройки vertex color.
Тут другой вопрос как вы собираетесь сделать эту самый вертекс колор. Рисовать его в движке нельзя на данный момент. Но вы можете просто использовать растрокую маску для детейла (все то же самое, просто не нужно вообще использовать вертекс колор) и закинуть растровую маску во вкладке textures. Будет тот же результат и местами даже лучше.

Link to comment
  • 3 weeks later...

Настраиваю сейчас освещение в сцене, возникли вопросы по поводу запекания и режимов источников света. В документации все понятно написано про 3 типа источников- реалтайм, смешанный и бейк. Но почему то у меня, когда пытаюсь забейкать свет, выставив источники света в bake mode, ничего вообще не пропекается. Пролистал документацию, перепробовал разные галочки, но такое ощущение, что воксель проб печет свет только от солнца, а другие источники света игнорирует полностью и они отрабатывают как в реалтайм режиме (при отключении их - свет от них тоже пропадает, хотя должен же оставаться запеченным в воксель пробе)
В чем может быть проблема? может где то упустил какою то галочку... Если нужны скрины настроек и результатов- скажите, я скину

Link to comment

Александр,

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

Если несложно - можете показать скриншоты (или видео) где будет заметно что проба не запеклась корректно?

Спасибо!

How to submit a good bug report
---
FTP server for test scenes and user uploads:

Link to comment
1 hour ago, silent said:

Александр,

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

Если несложно - можете показать скриншоты (или видео) где будет заметно что проба не запеклась корректно?

Спасибо!

Я судил по документации и увидел там вот такую информацию, что после запечения и отключения источника света- какая то информация о свете остается (скриншот прикрепил). Но у меня абсолютно ничего. Вот видео еще. Тестировать на основной сцене долго, тестирую на такой вот https://www.youtube.com/watch?v=JHACRwD3zxg
Попробовал запечь и в Mixed и в Baked моде, но при отключении источников ворота черные. При включении и выключении самого voxel probe тоже не видно изменений пока не включишь солнце, тогда видно что в целом он работает и что то запекает. Получается в этом случае, если ничего не запеклось от omni light, то запекалось от солнца даже когда оно было выключено? режим у солнца при этом поставил realtime, думал это точно должно исключить его из просчета в voxel probe.

Screenshot_7.png

Link to comment

Александр,

Спасибо за видео, стало понятнее. Такое поведение - баг.

С выключенной нодой World Light в мире воксельная проба просто не запекается.  Надеюсь, что удастся починить к следующему релизу.

Можно попробовать еще задать форму омни лайту, а не только увеличить интенсивность - может быть это поможет в том числе.

  • Like 1

How to submit a good bug report
---
FTP server for test scenes and user uploads:

Link to comment

Также если у вас включена галочка Use Sun Color в настройках воксельной пробы, то попробуйте выключить её. Т.к. солнца нет, то после запекания свет умножается на черный и в результате результата не видно. 

При этом запекать заново ничего не потребуется.

How to submit a good bug report
---
FTP server for test scenes and user uploads:

Link to comment
1 hour ago, silent said:

Также если у вас включена галочка Use Sun Color в настройках воксельной пробы, то попробуйте выключить её. Т.к. солнца нет, то после запекания свет умножается на черный и в результате результата не видно. 

При этом запекать заново ничего не потребуется.

Попробовал отключить, но источники света все равно не пекутся. Пробовал не выключать ноду, пробовал уменьшать интенсивность солнечного света до минимума, переключать Scattering на Moon, либо None, но получить какой либо запеченный свет от omni источников так и не получилось. 
Ну ничего, просто хотел разобраться, думал может я что то не учел или не нашел в документации, но если это баг, то продолжу так как есть с использованием источников в реалтайм режиме. Спасибо!

Link to comment

Александр, важно помнить что воксельное освещение пока не запекает прямой свет, а только отскоки. Поэтому если выключить лайты после запекания, то прямое освещение полностью пропадёт, но просчитанные отскоки должны остаться.

Посмотрите, как устроены сэмплы с пробами в SDK Browser -> Samples -> Demos -> Samples 2.x (нужно сделать Copy demo as project) -> voxel_*.

Спасибо!

How to submit a good bug report
---
FTP server for test scenes and user uploads:

Link to comment
  • 2 weeks later...

Здравствуйте! Хотел бы поделиться с вами тем, что у нас сейчас на данном этапе есть. Все еще домоделиваем и дотекстуриваем некоторые вещи, еще экспериментируем со светом, настройки эффектов стандартные пока, быстро пропечен свет в одном лоурезном вольюме, но мне кажется в целом картина уже более менее понятна к чему все движется. Ваши ребята, сделали прекраснейший суперпозишн, который я теперь всегда упоминаю как пример очень клевой реалтаймовой графики, возможно вы бы могли дать какие то советы по чему угодно что уже есть у нас, если будут) Остается чуть больше месяца у нас на доделки и планируем уже в середине-конце декабря завершить. 
Ну и так же еще хочется спросить каким образом можно синхронизировать работу с проектом двух человек? У нас сложилось так, что я занимаюсь сборкой всего ангара целиком, а друг собирает зону отдыха с диваном и кухней. Можно ли как то совместить все то что изменял и расставлял он у себя в проекте и закинуть это мне, не затрагивая мои действия над другими вещами? В принципе мне все повторить так же как он по скринам не трудно будет, но если есть специальные пути для этого, было бы круто. И по завершении проекта еще хочу несколько статей в блоге написать о процессе, было бы хорошо это упомянуть если это возможно. 

Screenshot_16.png

Screenshot_17.png

Screenshot_18.png

Screenshot_19.png

Chillzone1.png

Chillzone2.png

Chillzone3.png

Edited by Kolyasa.Aleksandr
Link to comment

У нас есть специальная "киллер фича". Называется Node_Layer. Если посмотрите то все собрано с помощью них во всех нащих проектах. Это такой инстанс, но в отличии от нодрефок открытый. И Нужно чтобы разные люди работали с разными леерами. Сейчас если кто то что то уже собрал у себя в той же сцене, пусть просто запихнет это в леер и закоммитит в проект этот леер. Ворлд при этом можно не коммитить. Это идеальный инструмент для распараллеливания сборки ворлда.

Link to comment

Александр, круто выглядит, спасибо, что делитесь результатами!

По поводу советов по арту и публикации: посмотрите, пожалуйста письмо на почте.

How to submit a good bug report
---
FTP server for test scenes and user uploads:

Link to comment
×
×
  • Create New...