Дядя Миша писал: Просто эмбиент выглядит вот так:
Запомни и больше не позорься.
Добавь AO и будет тоже самое. И почему кубик, а не спонза?
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Дядя Миша
А точка соответствующая люкселю локализована в его центре, или он пускает несколько пространственно-разнесённых лучей и сворачивает результат с соответствующим ядром?
thambs ни то ни другое. PTPFF там. Впрочем есть некоторые параметрические трюки, позволяющие обойтись и без него. Из простых способов мне понравился кламп дистанции луча на sqrt( area ).
Поясню. Любая формула затухания света так или иначе базируется на дистанции от люкселя до оригина источника. Чем точка ближе, тем, очевидно выше яркость. Ну вот если полигон к источнику света максимально близко, то получается пятно. С этим легко бороться, ограничив минимальную дистанцию луча на некоторое значение. Для субдивайд-ареалайтом оптимальный кламп на sqrt( area ); Конечно PTPFF даёт куда более приятный результат.
Ссылка: https://www.youtube.com/watch?v=VKlg5sI_pxI
а то опять начнете "не гуглится".
Решил я тут посравнивать как q3map2 выходит из сложных ситуаций. Ну например, как эту чёртову колонну осветить без швов. Набрал все известные мне мантры - q3map_lightmapAxis y, q3map_lightmapMergable, q3map_shadeAngle 179 и q3map_forceMeta.
То что получилось - на левом скрине. Потом этот же шейдер сунул своему компилятору. Результат на правом скрине. Фактически сработала только одна команда: "q3map_lightmapAxis y" остальные мало на что влияют в данном случае, а для моего компилятора часть команд это вообще заглушки, они не требуются.
Добавлено 02-08-2020 в 00:49:
Дырки на тенях это edge rendering, не обращайте внимания.
Судя по всему эта задачка с наложением лайтмап вообще не имет однозначного решения. Потому что даже в UE4 пользователю на выбор предлагается несколько вариантов. Таким образом дефолтный вариант должен лишь обеспечивать приемлимый уровень качества. Да, на лайтмапе будут кое-где швы в неудобных местах, но если хочется довести до идеала, придётся немного подшаманить. Само шаманство обычно заключается в некоторых подсказках компилятору, то есть речь не идёт о ретопологии и прочих жутких вещах. А то я как-то читал статью про наложении лайтмап в уече.
Вот эту кажется: https://docs.unrealengine.com/en-US...ping/index.html
Добавлено 02-08-2020 в 13:31:
А впрочем, чего я туплю? Вон он этот уеч в открытом доступе, надо посмотреть как там сделано. Среди методов и алгоритмов которые известны разработчику неплохо бы еще и понимать, какие из этих методов используются в продакшене, а не только восторгаться абстрактными демками как наш друг.
Без адекватной развёртки бесшовную лайтмапу нормально не построить, я сам в юнити с этим столкнулся. А адекватную развёртку можно сделать только ручками, я задавался этим вопросом в соседней теме. Ни один алгоритм не даст приемлимого качества, всегда надо будет допиливать ручками.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Я думаю сделать три-четыре варианта для лайтмапных развёрток.
1. орто-проекция. Используется по дефолту для брашей и моделей. На брашах практически всегда даёт идеальный результат из-за простой геометрии. К тому же надо понимать, что используемая техника - это не совсем то, что было в кваках, она сложнее, там идёт группировка сурфейсов под допустимыми углами. Так же можно задать единый кастомный угол ортопроекции и получить совсем сглаженный меш, но лайтмапу может и растянуть.
2. UV на основе регулярной сетки. Этот метод идеально подходит для параметрических поверхностей, типа кривых безье, которые представляют собой двухмерную сетку. А раз сетка двухмерная, то у нас уже фактически готовая развертка. На данный момент она неотключаемая для патчей, но потом я введу кастомизацию.
3. пользовательский способ: генерация развёртки на основе текстурных UV с проверкой на самопересечения. Ну собсно, как в UE4.
4. пользовательский способ, двухпроходной. Генерация развёртки на основе ковариантной матрицы (ортопроекция), а затем на базе этой развёртки LSCM генерирует боле-мене приличную.
5. пользователь ручками создаёт развёртку для лайтмапы.
Думаю этих вариантов достаточно для удовлетворения всех условий и ситуаций.
Добавлено 02-08-2020 в 15:51:
И в связи с этим, очевидно встаёт вопрос, какой из форматов поддерживает множественные UV? Потому что smd такое не умеет, а следовательно негодится.
Добавлено 02-08-2020 в 15:54:
Цитата:
Дядя Миша писал: Генерация развёртки на основе ковариантной матрицы (ортопроекция), а затем на базе этой развёртки LSCM генерирует боле-мене приличную.
Ортопроекция обычно создаёт развёртку под непрямым углом и сильно растягивает геометрию. Поэтому и в два прохода. Я еще пробовал boundary-размотку, но чёт она мне совершенно не понравилась. Да и то верно, стали бы изобретать LSCM если бы справлялся простейший алгоритм.
Дядя Миша писал: И в связи с этим, очевидно встаёт вопрос, какой из форматов поддерживает множественные UV? Потому что smd такое не умеет, а следовательно негодится.
.blend, .fbx, .dae вроде получилось, вот с .obj к сожалению не вышло.
Цитата:
Дядя Миша писал: Ортопроекция обычно создаёт развёртку под непрямым углом и сильно растягивает геометрию. Поэтому и в два прохода. Я еще пробовал boundary-размотку, но чёт она мне совершенно не понравилась. Да и то верно, стали бы изобретать LSCM если бы справлялся простейший алгоритм.
Да LSCM тоже не справляется, иногда даже делает только хуже. Я тут подумал, что развёртка очень хорошо работает с кольцами. Ну вроде цилиндров или коробки. Не знаю насколько это полезно, но может есть алгоритмы поиска таких колец? Вроде это не особо сложная задача.
Вот почему я писал что рано или поздно народ придёт к вокселям. Все эти UVшки, чистой воды фейк, попытка натянуть 3д на 2д.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro ты предлагаешь в принципе отказаться от моделей брашей и развёрток? А то может ты имеешь в виду воксели в смысле трехмерного массива из лайтпроб, лайтгрид из ку3.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro писал: .blend, .fbx, .dae вроде получилось, вот с .obj к сожалению не вышло.
Может Nemyax чего подскажет.
Цитата:
FiEctro писал: Да LSCM тоже не справляется, иногда даже делает только хуже
Ну я вообще настороженно отношусь к солверам с комплексными числами. Я не математик, для меня это чёрный ящик.
Цитата:
FiEctro писал: Я тут подумал, что развёртка очень хорошо работает с кольцами
Кольца сильно искажают проекцию. Да оно, гладенько, но там где по смыслу должны быть десятки люкселей умещаются 2-3 растянутых. А LSCM как раз с этим и борется.
Цитата:
FiEctro писал: Все эти UVшки, чистой воды фейк, попытка натянуть 3д на 2д.
Тогда ты принципиально должен ориентироваться на местности только по глобусу, ведь любая карта - фейк.
Цитата:
Crystallize писал: а изображать ту же круглую колонну при помощи квадратных вокселей это намного лучше?
ты будешь смеяться, но чтобы превратить круглую колонну в квадратную достаточно снапнуть её вертексы к люксельной сетке, я так уже делал. Жаль скринов не сохранилось. Вообщем-то это не панацея, хотя да, иногда даёт неплохие результаты.
Цитата:
thambs писал: Как координата вокселя соотносится с координатами на поверхности?
я парой страниц выше объяснял. Да в сущности все эти точки можно рассматривать как воксели. Лайтмапы именно так и строятся.
Добавлено 02-08-2020 в 19:06:
И да, про LSCM еще вот какой момент. Вы не забывайте, что он не генерит координаты с нуля, ему надо скормить какую-то базовую сетку. Так вот многое еще зависит от качества этой сетки.
Дядя Миша писал: Кольца сильно искажают проекцию. Да оно, гладенько, но там где по смыслу должны быть десятки люкселей умещаются 2-3 растянутых. А LSCM как раз с этим и борется.
Ясно, ну тогда только вручную.
Цитата:
Дядя Миша писал: Тогда ты принципиально должен ориентироваться на местности только по глобусу, ведь любая карта - фейк.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!