Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Когда PBR в сталкире сделаете?
GAMEINATOR forums > S.T.A.L.K.E.R. > Мастерская: создание модов для S.T.A.L.K.E.R.
Страницы: 1, 2, 3, 4
Modera
Камон, ребята, создайте уже специальную тему для обсуждения LGBTQ+ и перемещайтесь туда, а то всплываете где придётся, то в коронавирусной теме, то в сталкеро-пбр'ной.
xroo
Pavel_Blend, едва ли я что-то понял. Когда речь заходит об индексах, мне нужно рисовать, без картинок я не понимаю.

А от чего зависит выбор типа данных компилятором? Для статических объектов автоматически выбирается progressive? А ещё беспокоит вопрос всё таки как выбираются вершины для уровней детализации.
Modera
Цитата(xroo @ 19.01.2022, 22:47) *
А ещё беспокоит вопрос всё таки как выбираются вершины для уровней детализации.

Что-то типа такого алгоритма используется.
https://dev.gameres.com/program/visual/3d/P...onReduction.pdf

Pavel_Blend
Цитата(xroo @ 19.01.2022, 22:47) *
Для статических объектов автоматически выбирается progressive?

я не знаю, когда именно создаётся progressive. Может когда компилятор видит высокую плотность полигонов, то создаёт progressive. Если импортировать уровень в блендер, то как-то в рандомных местах эти прогрессив визуалы. На террейне есть, но не везде.

Цитата(xroo @ 19.01.2022, 22:47) *
Когда речь заходит об индексах, мне нужно рисовать, без картинок я не понимаю.

индексы - это просто номера. Один треугольник опирается на три вершины. Треугольник не хранит координат вершин, он хранит номер вершины. Номера этих вершин хранятся в индексном буфере. Координаты вершин хранятся в вертексном буфере.

Цитата(xroo @ 19.01.2022, 22:47) *
А ещё беспокоит вопрос всё таки как выбираются вершины для уровней детализации.

я не знаю, как в движке выбираются. Swi хранят число, которое указывает количество вершин. Но как по этому числу узнать, какие вершины выбрать я не знаю. Может движок создаёт только те вершины, номера которых записаны в треугольниках. Если вершина не участвует в построении полигонов, то она не создаётся.
AndreiSokirko
Павел Бленд, я ж спросил из интереса, на какой видяхе тестишь?
xroo
Да, вот в дискорде OpenXRay мне дали такой ответ:
Цитата
Rekongstor — Сегодня, в 22:44
Всё верно, в Xray реализован Progressive Lod. Он создаётся автоматически. С визуальной точки зрения, это Continuous Lod (без видимого переключения) - что-то типа нанитов UE5, но на минималках (в нанитах всё гораздо сложнее).

Цитата
Rekongstor — Сегодня, в 22:55
Можешь ещё почитать про Octahedral impostors)

В самом деле, нужно будет про технологию почитать, если она где-то по-подробнее описана. Но вообще любой автоматический метод создания лодов - это боль )
abramcumner
Цитата(xroo @ 19.01.2022, 22:47) *
Для статических объектов автоматически выбирается progressive?

Никакой автоматики. Если в АЕ в свойствах объекта стоит галка "Make progressive", создается progressive.
В АЕ же можно посмотреть на эти лоды.
Но в оригинале пользы от нее немного, алгоритм слишком мягкий, убирает буквально единицы треугольников.
Trollz0r
Цитата(Pavel_Blend @ 19.01.2022, 15:37) *
Чтобы не создавать новую тему, спрошу здесь теоретический вопрос, который давно меня интересует:

возможно ли оптимизировать R1 рендер? Оптимизировать уже готовые вещи, такие как HOM, отсечение геометрии за кадром, сектора и порталы, progressive меши (вроде бы это все способы оптимизации, которые есть в сталкере). Или оптимизировать в нём уже нечего? Чтобы локации были не 1-3 миллиона треугольников, а 10. Если потянет 10, то начать оптимизировать до 100 миллионов. Если потянет 100, то до миллиарда. Какой будет потолок?

На моём железе припять из тч на r1 в одной и той же точке выдаёт 120-130 fps с HOM и 100-110 fps без HOM. Разница в 20 fps. Можно ли эти HOM оптимизировать, чтобы они давали прирост не 20, а 40 fps, к примеру?

Среди мододелов такой оптимизацией кто-нибудь занимался?

Локация вот с такими данными:
Код
Map size X x Z:            [2601 x 2612]
Max static vertex per m^2: 3120
Total static vertices:     1282533
Max mu vertex per m^2:     4648
Total mu vertices:         13789532

на р1 выдаёт стабильные 60фпс, а на р3 всего 15фпс (из-за 13 миллионов треугольников деревьев). Причём фпс не сильно-то меняется от перемещения из заспамленного деревьями угла в незаспамленный. Вывод - оптимизировать надо не р1 smile.gif

Да, мне тоже хочется, чтобы тянуло десятки миллионов треугольников, но ещё больше мне хочется, чтобы алайф не тормозил и не глючил. Игрок не заметит высокодетализированность домов, а вот тормоза на входе в бар помнит каждый.

Цитата(Pavel_Blend @ 19.01.2022, 17:16) *
Вот, к примеру, есть у меня модель жилого 9-ти этажного дома из 4 подъездов. На каждом этаже 4 квартиры. Каждая квартира имеет около 10 комнат (включая туалет, ванную, лоджии, балконы, кладовки ...). В больших комнатах есть шкафы, диваны, стулья, кресла и т. д. Плюс модель имеет разрушения в виде трещин, отклееных обоев, разломаных стен и т. д. В итоге одна комната может иметь около 2000 треугольников. А весь дом 9 * 4 * 10 * 2000 = 720 000. А если сделать город из 100 таких зданий, то будет 72 миллиона. Мебель можно в 3д редакторе раскидать с помощью скрипта. Само здание легко смоделировать (у стен почти все углы прямые). Здания типовые, разные виды зданий имеют много похожих элементов. Окна, двери, подоконники тоже скриптом раскидать. То есть создать детальный город гипотетически можно, так как некоторые операции можно автоматизировать. А движок даже на r1 не потянет столько геометрии.
z_offtop.gif Замечу не по теме - играл в батлфилд реал вар мод или как там его, вот там были жилые многоэтажки с внутрянкой. И это была жопа, а не игра. Нужно было лезть в каждый сцуко дом в городе и зачищать каждую квартиру, пока напарник с бтра валит по окнам MULITRI_02.gif очень скучно, нудно и утомительно, это уже не игра, а работа какая-то.
xroo
Цитата(abramcumner @ 20.01.2022, 00:40) *
В АЕ же можно посмотреть на эти лоды.
Но в оригинале пользы от нее немного, алгоритм слишком мягкий, убирает буквально единицы треугольников.

Хм. Слушай, я планировал провести разные эксперименты по выводу локаций на X-Ray на актуальный уровень детализации: круглые трубы, фаски на углах по возможности везде, где их нельзя сделать трим шитами. Я помню из опыта, есть ограничение на импорт в SDK моделей, ограничение на минимальное расстояние между вершинами, меньше 5мм - вертексы слипаются. А ещё я знаю, что есть рецепты его обходить.

Может с настолько детализированной геометрией эффект от Progressive LOD будет заметнее? А ещё может нужно уметь готовить геометрию под алгоритм?
AndreiSokirko
Цитата(Trollz0r @ 20.01.2022, 01:16) *
это уже не игра, а работа какая-то.


За работу! (Полковник со слоника) biggrin.gif
RayTwitty
Цитата(Trollz0r @ 20.01.2022, 01:16) *
Да, мне тоже хочется, чтобы тянуло десятки миллионов треугольников, но ещё больше мне хочется, чтобы алайф не тормозил и не глючил. Игрок не заметит высокодетализированность домов, а вот тормоза на входе в бар помнит каждый.

Так уже полечили антифризом.
Ruw
Pavel_Blend, а другие движки пробовал?
X-Ray Oxygen, OGSR Engine возможно какие-то фиксы для x-ray


В теории локации большого обьема нужно делать на докрученном x-ray
gsc постепенно увеличивали размер локаций сначала болота ЧН, потом локации ЗП


Не знаю поможет эта инфа как либо
В build 2571 в бункере под антенной наблюдался положительный эффект на FPS от тумана
возможно как способ оптимизации следует использовать параметры погоды настраивая туман для тяжелой локации, сочетая с дальностью прорисовки(в опциях)




Любимый приём у 4a games прослеживающийся и в билдах сталкера и играх метро

atanda
Цитата(Pavel_Blend @ 19.01.2022, 17:37) *
Можно ли эти HOM оптимизировать, чтобы они давали прирост не 20, а 40 fps, к примеру?

Ну я бы не использовал фпс в качестве метрики smile.gif

Сами хомы довольно быстро софтварно растерайзятся и тестятся (на моей конфигурации было что-то около 1 мс). В принципе можно попробовать заоптимизировать растеризацию и тестирование bbox'ов с помощью SSE и параллельности, но мне не кажется, что это даст какой-то СУЩЕСТВЕННЫЙ выхлоп.

Цитата(xroo @ 20.01.2022, 01:41) *
А ещё может нужно уметь готовить геометрию под алгоритм?

ну нет, имхо, это какой-то бред
xroo
Цитата(atanda @ 20.01.2022, 12:26) *
ну нет, имхо, это какой-то бред

В смысле бред, если любой алгоритм лучше работает в одних случаях и хуже вдругих, что всегда налагает ограничения на работу художника. Так если у тебя лайтмапы пекутся, нельзя вставлять один объект в другой - будут лайтлики, нужно вшивать. С этим алгоритмом я хз, но может он хорошо убиоэрает вершины, которые имеют угол меньше какого-то значения по отношению к другим, например.
abramcumner
Цитата(xroo @ 20.01.2022, 01:41) *
Я помню из опыта, есть ограничение на импорт в SDK моделей, ограничение на минимальное расстояние между вершинами, меньше 5мм - вертексы слипаются. А ещё я знаю, что есть рецепты его обходить.

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

Цитата
Может с настолько детализированной геометрией эффект от Progressive LOD будет заметнее? А ещё может нужно уметь готовить геометрию под алгоритм?

В АЕ можно просматривать progressive-лоды. Поэкспериментируй.
Pavel_Blend
Цитата(AndreiSokirko @ 19.01.2022, 23:48) *
Павел Бленд, я ж спросил из интереса, на какой видяхе тестишь?

Интегрированная графика AMD A8 5600k APU with Radeon HD 7560D

внешней карты нет.
AndreiSokirko
Спасибо Павел. Я понял. Радеон короче.
Hozar_2002
Цитата(Ruw @ 20.01.2022, 13:43) *
туман для тяжелой локации
Туман должен быть равен дальности видемости в погоде. Ни больше, ни меньше. У пыс достаточно странный ползунок в опциях. Там максималньый множитель дальности видемести 1.5, когда на туман оно не распросроняется. Рекомендую опускать его до еденицы через консоль. Параметр чето там vis_distance кажется, по подсказке найдете. Ну а от дальности прорисовки зависит и качество.
Цитата(xroo @ 20.01.2022, 03:41) *
Progressive LOD будет заметнее
Я тестил это на шарах. Простых относительно низкополигональных шарах. Алгоритм прогрессивных мешей не идеален у пыс. Сферы обрабатываются странно. Суть в чем. Детализация падает не ровномерно. Сфера не превращается в шестигранник, а превращается в пирамиду + полусфера. Ну это от модели зависит. Вот например на тестовой сцене у меня что происходит.
Ruw
Цитата
Туман должен быть равен дальности видемости в погоде.


речь об экономии fps для слабого железа
с нормальным железом и x-ray модификацией движка проблем возникать не должно
atanda
Цитата(xroo @ 20.01.2022, 12:55) *
В смысле бред, если любой алгоритм лучше работает в одних случаях и хуже вдругих, что всегда налагает ограничения на работу художника

такие алгоритмы из серии для arbitrary geometry, может просто клампать коэффициент лоддирования? ) например, не меньше, 0.3 или задавать минимальный порог для клампа коэффициента в User Data объекта

Цитата(xroo @ 20.01.2022, 12:55) *
Так если у тебя лайтмапы пекутся, нельзя вставлять один объект в другой - будут лайтлики

всё равно у тебя компилятор перед запеканием света разобьёт геометрию на мелкие куски по типу материала и тд
xroo
Пытался понять что делают параметры в графе Material в настройке текстуры в SDK. Провёл такие тесты:

OpenXray, шейдеры ЗП 1.6.0.2, R2 (конфиг: улучшенное полное динамическое освещение), r2_loss_factor = 8.0

Base: OrenNayar <-> Blinn
Weight: 1 - 0.1

Base: Blinn <-> Phong
Weight: 1 - 0.1

Base: Phong <-> Metal
Weight: 0.01 - 1

Base: Metal<-> OrenNayar
Weight: 0.01 - 1


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

Объекты я делал по технологии Face Weighted Vertex Normals, а по сути это тест работает ли переброс кастом нормалек из майки в X-Ray. Не работает

Теперь нужно выяснить на какие вертекс номралки больше похожи эти: на Maya нормалки, или на 3DsMAX нормалки.

А ещё оказалось, что параметр Weight означает выбор между двумя моделями создания спекулярных отражений: тем, что слева (0) в пункте Base, и тем, что справа (1). Эффект выбора gloss (шершавости поверхности) это почти что не даёт.


Любопытно, что как-то раз давно я тоже пробовал засунуть текстуры из Substance Painter с кастомной моделькой в X-Ray, тогда это был пропатченный ТЧ:


На этих скринах у меня создаётся ощущение, будто скайбокс всё таки отжадается спекуляре.

Из четырёх вариантов моделей спекулярных отражений нет ни одного вполне матового. Поэтому вариант обойтись одной лишь картой спекуляра и выбором нужного параметра раздела material не подходит. Нужно изучить ещё шейдеры в ЧН и ТЧ, а ещё разные готовые решения в соседней ветке, но что-то мне подсказывает, что и там то же самое. А это будет значить, что готовых решений, позволяющих сделать более-менее современную картинку, нет, и придётся что-то ручками писать.
mortan
Цитата(xroo @ 24.01.2022, 06:21) *
Объекты я делал по технологии Face Weighted Vertex Normals, а по сути это тест работает ли переброс кастом нормалек из майки в X-Ray. Не работает

Для этого нужно изменения в плагин внести + сдк, по-другому никак.

https://github.com/StalkMen/xray_re-tools вот тут вроде бы плагин под майку с экспортом нормалек уже есть, осталось только правки в сдк сделать
xroo
Цитата(mortan @ 24.01.2022, 12:20) *
осталось только правки в сдк сделать

Ыгы, ну я так понимаю, правки в СДК нужно делать в области компиляторов, исходники которых существуют?
atanda
Цитата(xroo @ 24.01.2022, 06:21) *
а по сути это тест работает ли переброс кастом нормалек из майки в X-Ray. Не работает

И не будет, если это статический объект, то компилятор сам для него рассчитает нормали, поэтому от сшивания геометрии в один большой суп надо отказываться.

Цитата(xroo @ 24.01.2022, 06:21) *
Объекты я делал по технологии Face Weighted Vertex Normals

Что в целом ты для себя ты под этим понимаешь? Эта штука позволяет лишь более качественно рассчитать нормали у вершин используя площади граней в качестве весов ибо потом всё равно нормализуется, не более.
xroo
Цитата(atanda @ 24.01.2022, 13:50) *
Что в целом ты для себя ты под этим понимаешь? Эта штука позволяет лишь более качественно рассчитать нормали у вершин используя площади граней в качестве весов ибо потом всё равно нормализуется, не более.


Ага. Для Maya использовал скрипты ADN Modeler Tools, там есть скрипт Vertex Normal, который лочит верекс нормаль прям как нужно. Эта техника требует поддержку Custom Normals, да. Применяется она для создания фасок на объектах с тайловыми текстурами, чтобы не запекать фаски в нормал мапы. Я как раз хотел применить технику для стен зданий. Как видно, просто взять и применить технику нельзя. Нужно либо компиляторы учить кастом нормалям, либо просто фаски делать не 1-м полигоном, а 3-мя (вокруг фаски по двум бокам ещё два саппорт эджа.
xroo


Я закинул свой металлический шарик в ТЧ на mp_atp_test. Рендер R2.
Первый скрин показывает красивый френель на модели отражения blinn (правый шарик) и отсутствие френеля на модели отражения phong (левый шарик).
На втором шарике видно, что отражения неба не видно - sky occlusion работает как надо.
На третьем скрине видно белый блик от жёлтого источника света - отсутствие цветных бликов.

Если сравнить с предыдущим постом, можно сделать вывод, что в ТЧ смоллскаи отражаются хоть как-то, а в ЗП вообще нет. Этим R2 ТЧ изначально ближе к IBL как минимум, чем ЗП, если не к PBR.
Ruw
мои поздравления
Modera
Хых, не знал что в сталкире есть френель.
Pavel_Blend
Цитата(xroo @ 24.01.2022, 06:21) *
Объекты я делал по технологии Face Weighted Vertex Normals, а по сути это тест работает ли переброс кастом нормалек из майки в X-Ray. Не работает

если сохранять в object, то не работает, так как object не поддерживает сохранение нормалей. Но ogf поддерживает. В блендере при экспорте в ogf нормали сохранятся. Но есть минус: нет сохранения swi в аддоне блендера. Это не критично для hud-моделей оружия, так как им не нужны swi данные, модели всегда перед лицом.
xroo
Цитата(Pavel_Blend @ 30.01.2022, 17:32) *
если сохранять в object, то не работает, так как object не поддерживает сохранение нормалей. Но ogf поддерживает. В блендере при экспорте в ogf нормали сохранятся.

Тут писали, что дело не в экспорте object из DCC, а в компиляторе геометрии, который vertex normal делает сам. Поэтому ogf и динамика работает, потому что берёт что дают. А на статике компилятор всё портит.
Modera
А какова цель добавления пользовательских нормалей из 3д редактора? Если только ради face-weighted vertex normals, то может проще добавить эту технологию в компилятор чтобы он автоматически рассчитывал как надо?
abramcumner
Цитата(Modera @ 30.01.2022, 19:11) *
А какова цель добавления пользовательских нормалей из 3д редактора? Если только ради face-weighted vertex normals, то может проще добавить эту технологию в компилятор чтобы он автоматически рассчитывал как надо?

Вообще смысл есть. То надо править плагин+компилятор, а то только плагин.
mortan
Modera, потому что группы сглаживания поддерживает далеко не весь софт + это довольно старая бесполезная хрень, тем более 3д редакторы всё равно работают именно с нормалями. Тем более увы 3д редактор не умеет сам раскидывать группы на основе уже существующего сглаживания при помощи нормалей. Я много у кого спрашивал, можно ли такое сделать, автодески даж обещали в макс добавить но воз и ныне там.
Modera
Цитата(mortan @ 30.01.2022, 19:24) *
Тем более увы 3д редактор не умеет сам раскидывать группы на основе уже существующего сглаживания при помощи нормалей. Я много у кого спрашивал, можно ли такое сделать, автодески даж обещали в макс добавить но воз и ныне там.

Вот блин действительно вселенская задача, склеить все вертексы с одинакосыми нормалями и позицией, а потом назначить номера получившимся соединённым группам полигонов.
Supple Hope
Цитата(Modera @ 30.01.2022, 18:11) *
А какова цель добавления пользовательских нормалей из 3д редактора? Если только ради face-weighted vertex normals, то может проще добавить эту технологию в компилятор чтобы он автоматически рассчитывал как надо?

В том то и дело, что не всегда конпелятор расчитает как надо.
К тому же это задача именно трехмерного редактора те же самые взвешеные нормалки считать.
С наглядной демонстрацией результата, не дожидаясь трое суток, пока уровень скомпилится.
И моделлер может быстро принять решение допилить руками шейдинг эджей где надо и как надо.
Diesel
Цитата(Supple Hope @ 30.01.2022, 21:57) *
В том то и дело, что не всегда конпелятор расчитает как надо.

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

Учите компилятор понимать, то что вы туда пихаете.
mortan
Цитата(Modera @ 30.01.2022, 19:43) *
Вот блин действительно вселенская задача, склеить все вертексы с одинакосыми нормалями и позицией, а потом назначить номера получившимся соединённым группам полигонов.

Только сделать не сделали, те скрипты которые есть на этот счёт дают в большинстве случаев неверный результат, в иных справляется и простой автосмуз. Если такой скрипт уже есть то ткни носом, буду благодарен, яж из-за этой хрени даже плагин начинал пилить дабы подружить сдк с нормалями.
Modera
mortan, я не пользуюсь максом и всякими левыми скриптами, а в майе с официальными плагинами у меня всё работает.
xroo
Цитата(Modera @ 30.01.2022, 19:11) *
А какова цель добавления пользовательских нормалей из 3д редактора? Если только ради face-weighted vertex normals, то может проще добавить эту технологию в компилятор чтобы он автоматически рассчитывал как надо?

FWVN нельзя сделать автоматически, все реализации FWVN на готовой геометрии, которые я знаю, просят. чтобы ты руками тыкал какой фейс должен быть плоским.

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

Работал в одном проекте на CryEngine, у нас был перепиленный CE, и перепиленный экспортёр, стандартный не подходил. И у нас сломали custom normals, CE умеет считать vertex normals сам, алгоритм у него как у 3DsMAX. А я майщик. Моделил в майке, потом обязательно переэкспорчивал в 3DsMAX, а потом уже экспортил объекты на запечку, чтобы вертекс нормальки в SP и Marmoset совпадали. И скажу я, это геморрой. Мы очень радовались, когда custom normals наконец починили :-)

Цитата(Diesel @ 30.01.2022, 20:23) *
Всё это брехня, компилятор до байта, сто раз подряд, может выдасть то, что в него пихают.

Учите компилятор понимать, то что вы туда пихаете.

Вот ещё человек считает, что компилятор нужно научить работать с custom normals :-) И не заставлять его считать vertex normals на основе smooth groups самому.

Я же правильно понимаю, исходники компилятора есть и есть люди, которые умеют его править?
mortan
Цитата(Modera @ 30.01.2022, 20:54) *
mortan, я не пользуюсь максом и всякими левыми скриптами, а в майе с официальными плагинами у меня всё работает.

В официальных плагинах нет такого функционала, майю я тоже пробовал, если на модели изначально нет групп сглаживания или хард эджей в случае майки то результат будет точно такой же как и просто при экспорте модели из 3д макса. Не надо, пожалуйста, придумывать то чего на самом деле нет.
Diesel
Цитата(xroo @ 30.01.2022, 23:09) *
smooth groups

Я это дело выпилил. Оставил эдиторское автосглаживание. А в место групп остваил 0 - мне это зашибись в P.O.L.Y.G.O.N. помогает.

Вру, наоброт: вместо групп - автосглаживание, а вместо автослаживания - 0.
Modera
Цитата(mortan @ 30.01.2022, 23:08) *
или хард эджей в случае майки

А это то есть если использовать Vertex Normal Edit tool для редактирования нормалей вместо простых Soften Edge/Harden Edge/Set Normal Angle. Да, так не работает. Правда не знаю зачем та штука нужна, ни разу не пользовался.
Supple Hope
Цитата(Diesel @ 30.01.2022, 19:23) *
Цитата(Supple Hope @ 30.01.2022, 21:57) *
В том то и дело, что не всегда конпелятор расчитает как надо.

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

Учите компилятор понимать, то что вы туда пихаете.

Pavel_Blend
Цитата(Modera @ 31.01.2022, 00:01) *
Правда не знаю зачем та штука нужна, ни разу не пользовался.

soft/hard edges - это способ установить Split Normals. Сами направления нормалей автоматически расчитываются. А при сохранении нормалей во время экспорта в object и компиляции xrlc даст возможность в 3д редакторе произвольно указать направления нормалей. Сейчас xrlc автоматически их вычисляет. Вот пример:



Слева - автоматически расчитано, справа - split-нормали совпадают с нормалями полигонов сторон куба. В итоге плавный переход от затенения есть только на фасках:

atanda
Diesel, прошу тебя, не позорься. Уже просто невыносимо читать.
Diesel
Цитата(atanda @ 31.01.2022, 16:07) *
прошу тебя, не позорься. Уже просто невыносимо читать.

Отвернись от монитора, зажмурся, очки розовые применяй. Много способов снять стресс от чтения.


Modera
Цитата(Pavel_Blend @ 31.01.2022, 12:00) *
Цитата(Modera @ 31.01.2022, 00:01) *
Правда не знаю зачем та штука нужна, ни разу не пользовался.

soft/hard edges - это способ установить Split Normals. Сами направления нормалей автоматически расчитываются. А при сохранении нормалей во время экспорта в object и компиляции xrlc даст возможность в 3д редакторе произвольно указать направления нормалей. Сейчас xrlc автоматически их вычисляет. Вот пример:



Слева - автоматически расчитано, справа - split-нормали совпадают с нормалями полигонов сторон куба. В итоге плавный переход от затенения есть только на фасках:



Я тут проверил, мне кажется всё-таки автоматический расчёт нормалей можно улучшить на таких объектах как этот кубик если считать нормаль вершины не как просто среднее арифметическое от нормалей всех треугольников в которых вертекс используется, а каждый нормаль треугольника умножать на (площадь треугольника / площадь всех треугольников в которых содержится вершина). Так получается что чем крупнее полигон, тем больше он влияет на нормаль.

Результат со стандартным алгоритмом -
Результат с зависимостью от площади -

atanda
Цитата(Modera @ 02.02.2022, 18:40) *
Я тут проверил, мне кажется всё-таки автоматический расчёт нормалей можно улучшить на таких объектах как этот кубик если считать нормаль вершины не как просто среднее арифметическое от нормалей всех треугольников в которых вертекс используется, а каждый нормаль треугольника умножать на (площадь треугольника / площадь всех треугольников в которых содержится вершина). Так получается что чем крупнее полигон, тем больше он влияет на нормаль.

Это и называется Weighted Vertex Normals.
Modera
atanda, так а в чём прикол тогда, почему для реализации этой фичи необходимо выбирать какой-то там плоский полигон?
atanda
Modera, можно чуточку конкретней? О каком плоском полигоне идёт речь?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.