Substance Painter автоматически создает набор текстур для каждого уникального материала найденного в исходном файле — в целом ожидаемое поведение т.к. SP расчитывает что UV-карты материалов пересекаться друг с другом не будут. Для многих применений это, естественно, избыточно, так как материалы могут занимать только небольшую поверхность (как Rings в примере с топором выше).
Как решается эта проблема? Делают отдельную модель с одним единственным материалом и общей UV-картой (иногда это буквально тот же меш, иногда у оригинального меша полигонов побольше, если это скульптура, например). Теперь мы загружаем эту модеть с одним материалом в SP и он создает только один набор текстур.
Как тогда понять где какая текстура была в оригинале? SP умеет запекать (aka генерировать новые текстуры на базе UV-карт) карты ID — тех самых ID материалов по уникальности которых он создает наборы текстур. Таким образом можно подсунуть ему оригинальную модель с кучей материалов и он превратит ее в цветную текстуру. Там есть разные варианты генерации, но "цвет материала" это значение по умолчанию.
Теперь когда у вас есть отдельная текстура, ее можно использовать как фильтр для заливки маски на модели с одним материалом. Профит!
Оказывается png не одинаково полезен — разный софт может по разному трактовать гамма-коррекцию. Для текстур с альбедо это не сильно критично, но когда вы смешиваете разную информацию в разных каналах, может начинаться боль. А ведь в текстурах может храниться не только цветовая информация, а и вектора для смещений и нормали. Потому получается что удобные форматы для передачи из одного редактора в другой и в движок — это скорее TGA и TIFF, которые хоть и не сжатые, но ведут себя понятно.
А после того как "сырая" текстура попадает в движок (например общепринятые Unity/UE), он их перепаковывает в какой-то DXT или PVRTC, которые могут выполнять контекстное сжатие – например вырезать одну из координат из нормали, потому что ее проще считать в реальном времени из оставшихся двух.
Не соглашусь — хороший линтер должен срабатывать где-то около нажатия ctrl+s (а очень хороший — и по ctrl+v). И уж точно перед коммитом.
Можете привести пример когда автоформаттер распотрошит код на вставке? Из моей практики (JS & Go форматируют на вставке) у меня был только один нюанс недавно. Когда вставлял куски yaml в .ts файл чтобы переписать yaml в inline-js, автоформаттер отбивал в строках всяческие -пробелами, но это решилось одним ctrl+shift+v (у меня это вставка без форматирования). В остальных случаях форматирование автоматически применяется на основании контекста.
Это заставляет чересчур полагаться на правильно расставленные отступы для всего текста блока — если в части по каким-то причинам они расставлены неправильно
Так можно же прогнать через линтер и все отступы будут там где надо? Мне думается в С++ эта проблема полностью решена.
Примерно через час и множества неудачных попыток, некоторые из которых выглядели как успешные, но не были таковыми, я наконец нашёл правильную команду:
Хм. Google по gpg generate new key выдает очень даже доходчивую доку. ЧЯДНТ?
While I do appreciate the attempts to bring more articles authored in English to habr, the quality is just bad. It's honestly not that hard to use some grammar & spelling tool (e.g. ProWritingAid or Grammarly) and polish your text before submitting. I've pasted this article into PWR and the score is pretty disappointing:
I can reason with the text mostly because I speak Russian too so I can map the words to their Russian counterparts, thus making the sentence structure work.
As for the technical quality of this post… Eh. I'm not sure what it even tries to deliver.
В AppStore же оно точно не появится, поскольку Apple запрещает добавлять в магазин приложения, которые меняют код iOS.
Ну что за корявый перевод...
(iv) They may not download or install standalone apps, kexts, additional code, or resources to add functionality or significantly change the app from what we see during the review process.
А что с ним не так? Его буквально в демке показывали что он работает.
Они в state of the union сказали что очень любят unix часть и ничего ограничивать не будут же.
А про RTX я немного ушел в сторону, я извиняюсь. Я мыслями был в поддержке рей-трейсинга в UE4 который только на DX12 работает.
Я очень давно не видел маков с nvidia, а вот opencl все печально — больше его не будет. Про OptiX я даже не говорю
Я подозреваю что на линуксе blender будет еще и повеселее macOS — т.к. blender не умеет metal и Cycles рендерит только на процессоре.
С другой стороны для 3D сложно найти альтернативу винде в любом случае, особенно когда хочется поработать со всякими RTX
Их уже давно переименовали в Ten Little Indians, кстати.
TL;DR:
Substance Painter автоматически создает набор текстур для каждого уникального материала найденного в исходном файле — в целом ожидаемое поведение т.к. SP расчитывает что UV-карты материалов пересекаться друг с другом не будут. Для многих применений это, естественно, избыточно, так как материалы могут занимать только небольшую поверхность (как Rings в примере с топором выше).
Как решается эта проблема? Делают отдельную модель с одним единственным материалом и общей UV-картой (иногда это буквально тот же меш, иногда у оригинального меша полигонов побольше, если это скульптура, например). Теперь мы загружаем эту модеть с одним материалом в SP и он создает только один набор текстур.
Как тогда понять где какая текстура была в оригинале? SP умеет запекать (aka генерировать новые текстуры на базе UV-карт) карты ID — тех самых ID материалов по уникальности которых он создает наборы текстур. Таким образом можно подсунуть ему оригинальную модель с кучей материалов и он превратит ее в цветную текстуру. Там есть разные варианты генерации, но "цвет материала" это значение по умолчанию.
Теперь когда у вас есть отдельная текстура, ее можно использовать как фильтр для заливки маски на модели с одним материалом. Профит!
некоторые даже производят специальные CAD-мыши из-за этого.
Оказывается png не одинаково полезен — разный софт может по разному трактовать гамма-коррекцию. Для текстур с альбедо это не сильно критично, но когда вы смешиваете разную информацию в разных каналах, может начинаться боль. А ведь в текстурах может храниться не только цветовая информация, а и вектора для смещений и нормали. Потому получается что удобные форматы для передачи из одного редактора в другой и в движок — это скорее TGA и TIFF, которые хоть и не сжатые, но ведут себя понятно.
А после того как "сырая" текстура попадает в движок (например общепринятые Unity/UE), он их перепаковывает в какой-то DXT или PVRTC, которые могут выполнять контекстное сжатие – например вырезать одну из координат из нормали, потому что ее проще считать в реальном времени из оставшихся двух.
Мне стало интересно, и я глянул вилку :-)
Вы хоть сами RFC по ссылке читали?..
Не соглашусь — хороший линтер должен срабатывать где-то около нажатия ctrl+s (а очень хороший — и по ctrl+v). И уж точно перед коммитом.
Можете привести пример когда автоформаттер распотрошит код на вставке? Из моей практики (JS & Go форматируют на вставке) у меня был только один нюанс недавно. Когда вставлял куски yaml в .ts файл чтобы переписать yaml в inline-js, автоформаттер отбивал в строках всяческие
-
пробелами, но это решилось одним ctrl+shift+v (у меня это вставка без форматирования). В остальных случаях форматирование автоматически применяется на основании контекста.Еще хороший вариант у duo – присылает пуш на телефон где надо нажать кнопку "это я". Фоллбек на обычный OTP.
Так можно же прогнать через линтер и все отступы будут там где надо? Мне думается в С++ эта проблема полностью решена.
del
Хм. Google по
gpg generate new key
выдает очень даже доходчивую доку. ЧЯДНТ?While I do appreciate the attempts to bring more articles authored in English to habr, the quality is just bad. It's honestly not that hard to use some grammar & spelling tool (e.g. ProWritingAid or Grammarly) and polish your text before submitting. I've pasted this article into PWR and the score is pretty disappointing:
I can reason with the text mostly because I speak Russian too so I can map the words to their Russian counterparts, thus making the sentence structure work.
As for the technical quality of this post… Eh. I'm not sure what it even tries to deliver.
Есть: https://chat.google.com/download/. Тоже электрон, емнип
Ну что за корявый перевод...
Не совсем так. Там сейчас 3 категории игр для стима: