Deathman 664 Опубликовано 7 февраля, 2023 (изменено) Nocturning studio Project X - мой первый проект, в котором я работаю комплексно со всеми аспектами игры и которым я занимаюсь как хобби в свое личное время. В данном проекте я реализовываю свое личное видение на S.T.A.L.K.E.R: Shadow of Chernobyl в аспектах визуального и саунд дизайна, геймплея, функционала движка и других. Этот проект я использую как одновременно челледж - смогу ли я привести в одиночку или почти в одиночку в хорошее состояние игру, на мой взгляд с очень спорной графикой, недоработанными механиками, и множеством других проблем, а главное смогу ли я качественно и корректно это оформить, как повод для самообразования в сфере программирования и геймдева, а также как поле для эксперементов. Автор - Deathman. Огромная благодарность за помощь и\или поддержку VAX, Maks0, LVutner, Mihan323, Никите Тимонину, Ивану Панкову и другим. Спойлер Я провел огромную работу над визуальной составляющей игры - ввел множество разных эффектов, которые дополняют визуальный стиль, деталлизацию, эффектность, а также художественных эффектов, используемых мной для полной переработки атмосферы каждого уровня и сюжета в целом. Спойлер Спойлер Одним из первых нововведений было добавление отдельного режима второго рендера, активирующего дополнительные эффекты, и предназначенного для разграничения функционала второго рендера для разных типов оборудования. Спойлер Я старался через расширенные настройки дать пользователю полностью кастомизировать игру под себя, дав возможность включить или выключить, а также отрегулировать под себя наверное почти каждый эффект. Каждый эффект или настройка названы максимально понятно, корректно, а также я старался оформить настройки интуитивно понятно. Спойлер Графику игры полностью можно настроить не заходя в раздел расширенных настроек - для этого были полностью настроены все пресеты настроек графики, а также были добавлены дополнительные пресеты, что в сумме дает семь разных настроек для разного оборудования, на котором будет запускаться игра. Также были добавлены пресеты художественных эффектов. Спойлер В игру введены и будут вводиться в дальнейшем новые методики сглаживания или же Anti-Aliasing(https://ru.wikipedia.org/wiki/Экранное_сглаживание): DLAA - Directionally Localized antiAliasing (https://github.com/ForserX/DLAA) DLAA с принудительным определением границ объектов - шейдер Directionally Localized antiAliasing, с принудительным определением мест кадра, потенциально являющихся "Лесенками", что в разы повышает четкость картинки с этим алгоритмом. FXAA - Fast approximate antiAliasing за авторством Nvidia. (https://docs.nvidia.com/gameworks/content/gameworkslibrary/graphicssamples/d3d_samples/fxaa311sample.htm) Двупроходный вариант FXAA - вариант Fast approximate antiAliasing, расчитываемый для кадра два раза, один после другого. Для каждой технологии сглаживания доступно четыре градации качества. Предупреждение - каждая из методик имеет сложную кодовую реализацию, на компиляцию каждой из которых уходит длительное время, которое может варьироваться на разном оборудовании, для смягчения чего в игру было введено кеширование шейдеров, которое ликвидировало проблему долгой рекомпиляции при переключении окон и так далее, но которое не может убрать долгий сбор кеша при первом запуске игры, переключении типа сглаживания, его качества и других настроек, так что при включенном сглаживании может возникнуть необходимость ожидания, которое можно перепутать с зависанием игры. Спойлер Добавлены три новых алгоритма Ambient occlusion (https://ru.wikipedia.org/wiki/Окружающее_затенение, https://ru.wikipedia.org/wiki/Окружающее_затенение_в_экранном_пространстве, https://habr.com/ru/articles/421385/): Screen space ambient occlusion на основе шейдера GSC из билда 3120, переписанного с целью большей читаемости и более тонкой настройки (Дополнительно считается в меньшем разрешени, для увеличения скорости расчета). Hight definition ambient occlusion - на основе шейдера SSAO, но расчитываемого в актуальном разрешении экрана и большим качеством Horizontal based ambient occlusion+ за авторством Mihan323 с небольшой доработкой Deathman, по части шума и других аспектов. Добавлено трехступенчатое шумоподавление для Ambient occlusion: Первая ступень - box фильтр с 10 выборками для SSAO и билинейный фильтр для других алгоритмов. Вторая ступень - импровизированная версия шумоподавления из этой статьи - https://aras-p.info/blog/2009/09/17/strided-blur-and-other-tips-for-ssao/. Третья ступень - box фильтр с 18 выборками для SSAO и 9 для других методик Спойлер Добавлена поддержка карт рассеянного освещения (Baked AO Maps) Карты рассеянного освещения можно использовать для всех типов текстур (Base/detail/terrain detail) Использование для базовых (base) текстур: Для использования на базовых текстурах текстура AO должна лежать в той же папке и с тем же именем что и сама текстура, но префиксом _ao в конце. Больше ничего не нужно делать, текстура сама определится игрой и наложится на ту же UV сетку, что и основная текстура (https://ru.wikipedia.org/wiki/UV-преобразование) Использование для детальных текстур основных поверхностей и террейнов: Для использования для детальных текстур требования немного иные - текстура должна находиться в зеленом канале текстуры с префиксом _bump, при этом карта нормалей никак не страдает - этот компонент карты нормалей (https://habr.com/ru/articles/415579/) легко восстанавливается математической формулой в одну строку (https://docs.unity3d.com/Packages/com.unity.shadergraph@6.9/manual/Normal-Reconstruct-Z-Node.html). Рассчитал карты рассеянного освещения для некоторого оружия и актеров - Никита Тимонин. Спойлер Была проведена огромная работа над рельефом поверхностей: В игре присутсвуют три методики расчета рельефа, которые используются для всех типов поверхностей и которые можно переключать через настройки: Normal mapping - методика создания виртуального рельефа, суть которой заключается в том, чтобы модифицировать нормали каждого пикселя поверхности специальными картами нормалей без дополнительной обработки Parallax mapping - методика создания виртуального рельефа, суть которой заключается в том, чтобы с помощью данных из карты высот (https://en.wikipedia.org/wiki/Heightmap), вектора взгляда на поверхность и других данных модифицировать UV координаты (https://ru.wikipedia.org/wiki/UV-преобразование), по которым накладывается текстура, так, чтобы исказить текстуру таким образом, чтобы возникала иллюзия объемности(https://habr.com/ru/articles/416163/) Steep parallax occlusion mapping (Назван как steep parallax mapping) - методика создания виртуального рельефа, суть которой заключается в том, чтобы с помощью данных из карты высот (https://en.wikipedia.org/wiki/Heightmap), вектора взгляда на поверхность и других данных модифицировать UV координаты (https://ru.wikipedia.org/wiki/UV-преобразование), по которым накладывается текстура, так, чтобы исказить текстуру таким образом, чтобы возникала иллюзия объемности(https://habr.com/ru/articles/416163/), дополнительно используя при этом трассировку карты высот по слоям. Для детальных текстур поверхностей также используется рельеф, при этом его тип такой же, какой используется и для основной текстуры. С помощью Chat GPT я получил функцию, которая позволяет из карты высот получить карту нормалей на ее основе, которая очень сильно улучшила рельеф в целом. Рельеф используется для всех поверхностей, включая террейны. Дополнительно в NSPX больше нет разделения шейдеров на шейдеры типа flat и bump. Вместо этого все шейдеры, даже если текстуры bump нет являются bump, но использующими в таком случае текстуры "затычки", с разрешением 1х1 пиксель, что дало возможность использовать рельеф от детальных текстур на текстурах без рельефа. Спойлер Добавлена глубина резкости. Глубина резкости используется при прицеливании из оружия без прицела, при перезарядке оружия, при входе в аномалию, при разговоре со сталкерами, при открытии инвентаря и даже при запуске окна диалога перехода на другой уровень. Качество глубины резкости регулируется отдельным пунктом в настройках и имеет четыре градации. Глубина резкости может полностью работать без какого-либо подключения параметров секций, но для лучшей функциональности и более гибкой настройки рекомендуется использовать настройку из секций. Для использования глубины резкости у оружия необходимо использовать параметры: zoom_dof reload_dof В секции оружия А для аномалий секцию pick_dof_effector В секции нужной аномалии, разрешающую использование эффекта при входе в нее. По умолчанию если параметр отсутсвует то глубина резкости автоматически включена. Глубина резкости считается после всей сцены двумя шейдерными проходами один после другого. Спойлер Добавлен Motion blur. Эффект смазывания картинки в динамике при движении подчеркивающий скорость происходящего на экране и приближающий картинку к реальному восприятию движений глазом. Спойлер От зова Припяти перенесена и улучшена продвинутая система рассчета теней от солнца - солнечных каскадов. Качество теней регулируется отдельной настройкой и от него зависит деталлизация, разрешение теней, а также плавность уменьшения качества теней на удалении от камеры - количество каскадов. При максимальном качестве солнечных теней используется 19 каскадов для достижения максимальной детализации и наиболее плавного перехода качества. Отдельной настройкой добавлена степень размытия солнечных теней. Регулируется степень размытия теней отдельной настройкой и имеет четыре градации. Спойлер Перенесена мягкая вода - при включении этого параметра вода использует отражение неба, мягкий переход к берегу, пену и эффект Френеля для изменения видимости дня водоема с изменением угла взгляда на него. Спойлер Была проведена большая работа над туманом. Качество тумана разделено на четыре градации. Теперь туман использует и цвет неба, а также на максимальном качестве используется вертикальный туман. Вертикальный туман или Height fog основывается на реализации от screen space shaders, с учетом того, что использует только идею использования позиции пикселей в мировом пространстве. Вертикальный туман регулируется из погоды параметрами vertical_fog_intensity и vertical_fog_height. vertical_fog_intensity - интенсивность эффекта. vertical_fog_height - высота, являющаяся максимальной для эффекта. Спойлер Добавлен эффект Винъетирования - плавного затеменения углов экрана, для имитации кинокамеры и увеличения мрачности окружения. Имеет два режима работы - статический, когда является постоянным эффектом, и динамический, когда регулируется из погоды, параметром vignette_power, что дает возможность использовать его как художественный эффект, подчеркивающий мрачность какого-либо уровня. Спойлер Добавлен эффект цветовых аббераций - эффекта имитации линзы, при котором ввиду ее кривизны цвета спекта подвергаются дисперсии и немного расходятся друг от друга. Спойлер Была проведена работа над блеском на поверхностях: Добавлен эффект Френеля для блеска на поверхностях - при взгляде на объект, точки с большим углом относительно камеры будут больше отбрасывать свет. Улучшен и прочий блеск(Усилен, добавлено влияние цвета текстуры и цвета освещения на цвет блеска), а также исправлены отражения неба на моделях оружия - до этого, в оригинальной игре, отражения на всех моделях оружия использовали одну текстуру - sky_5_cube. Теперь для отражений используется актуальное небо. Спойлер Возвращен эффект Bloom - эффект, улучшающий яркость и насыщенность сцены, а также имитирующий эффект следов Эйри для имитации неидеальности линзы камеры. Также эффект улучшен - для последнего этапа его создания используется более мощное размытие. Спойлер В игру добавлена регулируемая сепия, являющаяся художественным эффектом, предназначенным для улучшения визуального восприятия разных игровых уровней и придания отдельным циклам погоды или погодным явлениям своего оттенка. Регулируется через погодные параметры sepia_color и sepia_power Спойлер Дополнительно я пересобрал все подземные уровни, с использованием radiosity global illumination для расчета освещения. Спойлер Первый рендер теперь использует маску для террейнов, если таковая имеется и если видеокарта поддерживает DirectX 9 В будущем я планирую намного больше делать упор на первый рендер и привносить в него намного больше нового. Спойлер Почищены и укомпонованы логи - отладочные сообщения убраны в режим отладки. Добавлено отображение всех стадий загрузки уровня, а также в лог выводится список стадий отгрузки уровня. Увеличены в три раза вертекстный и индекный буфферы, что дает поддержку уровней большего размера. Добавлена консоль от зова Припяти, огромное спасибо VAX. Добавлена многопоточная загрузка текстур, в дальнейшем появится многопоточная загрузка моделей. Добавлено кеширование шейдеров. Изменена дата создания проекта в алгоритме рассчёта номера билда. Исправлена вертикальная синхронизация и ограничение количества кадров в секунду. Оконный режим заменен на безрамочный Исправлены анимации главного героя от третьего лица. Начаты изменения в плане приближения структуры движка к оной в зове Припяти и чистом небе. xr3da переименовано в xrEngine, из xrEngine вынесены дополнительные библиотеки, а также рендеры. В дальнейшем рендеры станут интерфейсами и будет перенесен xrAPI, как первый шаг к переносу третьего рендера. В игре можно выбрать разрешения ниже 800*600 Во время отладки в Visual studio или ее работы можно свернуть игру при помощи Alt tab, а также игра в принципе не имеет приоритета над остальными окнами. Включено окно вывода и продолжения дальнейшей работы в случае вылета вместо окна Bugtrap с зеленым жуком Для любителей вырезать первый рендер движок может запуститься без xrRender_R1.dll Спойлер Спойлер Спойлер Обновлена библиотека xrSound, спасибо Maks0 за помощь, перенсена от чистого неба, что дает возможность использовать стерео звуки, использовать любую частоту звуков, при учете использования этой частоты у всех звуков, а также изменять средство воспроизведения звука. В составе файлов движка находятся полностью рабочие soft_oal.dll и wrap_oal.dll, с рабочим позиционированием звука относительно камеры, а также намного более лучшим звучанием, спасибо v2v3v4 Спойлер Исправлен и полностью работает EAX, спасибо v2v3v4 Работает за счет изначально расставленных на всех уровнях зонах звукового окружения GSC, свои делать и расставлять я буду в будущем. Спойлер Для всех уровней сделаны Sound occlusion model на основе геометрии Hierahical occlusion model, что дало нормальное отсечение звуков стенами, но не идеально, что в будущем я собираюсь исправлять, а также дополнительно и в параметрах материалов игры перенастроены параметры звукопоглощения. Спойлер Я реализовал возможность менять громкость отдельных категорий звуков: Можно менять общую громкость всех звуков, громкость игровых звуков, громкость музыки, громкость погодного звукового окружения и эксперементально громкость оружия. Спойлер Убрана старая система стерео с загрузкой двух звуков с префиксами _l и _r, а вместо них везде теперь загружается один звуковой файл Спойлер В оригинальной игре в game_level_musics можно задать музыкальные треки по периоду их воспроизведения, но при этом и днем и ночью воспроизводился дневной трек, исправил это, перенеся код фоновой музыки от чистого неба. Спойлер Абсолютно полностью заменена вся музыка на музыку из слитого архива GSC под названием PR Stuff, так как она намного более качествена и имеет некоторые отличия в лучшую сторону, относительно той, что была использована в релизной версии игры. Также музыка на локациях была частично перебалансирована. Спойлер Спойлер Спойлер Переработано покачивание камеры. Теперь покачивание камеры учитывает все состояния передвижения, в которых находится актер, исходя от чего изменяется амплитуда и интенсивность качания, а также в зависимости от скорости актера изменяется и поле зрения. При этом качание камеры можно выключить в настройках. Спойлер Команда cam_inert исправлена, теперь она по умолчанию находится в значении 1, и не ломает управление как в оригинальной игре Спойлер Спойлер HUD можно отключить отдельным параметром в настройках игры. При этом убирается и максимум сопутствующих надписей вроде сообщений о примененной аптечке или же об успешном сохранении. Спойлер Перенесен параметр minimap_zoom, прописываемый в секции уровня в game_maps_mp и game_maps_single и влияющий на масштаб участка карты локации в миникарте, по умолчанию выставлен в секциях на значение 1.25 Спойлер Ключ консольного вида от третьего лица сзади -psp включается отдельным параметром в настройках игры, но является эксперементальным и в будущем будет дорабатываться. Также для нового режима вида от третьего лица исправлены анимации главного героя. (Пресловутый бег "Ласточкой") На данный момент исправлена малая дальность подбора предметов при использовании данной вариации игровой камеры, а также исправлено прицеливание. Спойлер Спойлер Добавлено изменение разброса оружия при прицеливании, регулируемое праметром zoom_fire_dispersion_base в секции оружия. Изменение разброса оружия зависит от сложности игры. На сложности "Мастер" разброс оружия не заменяется на новую секцию вовсе. Добавлено изменение параметров отдачи оружия в прицеле параметрами zoom_cam_relax_speed zoom_cam_dispersion zoom_cam_dispersion_inc zoom_cam_dispertion_frac zoom_cam_max_angle zoom_cam_max_angle_horz zoom_cam_step_angle_horz Спойлер Добавлено неиспользуемое оружие - ТОЗ, полноценная БМ-16 и ХПСС За модель ТОЗ спасибо OLR 2.5 За адаптацию модели полноценной БМ-16 от 2205 билда к анимациям и рукам обреза спасибо Ивану Панкову Для МП-5 ипользуются анимации Водилы. Спойлер Включена и настроена инерция оружия, на мой вгляд она придает живости движениям при виде от первого лица. Спойлер Звуки всего оружия заменены на звуки от чистого неба, так как на мой взгляд они намного более качественны Спойлер Все вырезанные аддоны вроде прицела на ОЦ-14 теперь возвращены Спойлер Спойлер При помощи соответсвующей настроки можно переключать способ входа в режим прицеливания - по удержанию кнопки или же по однократному нажатию Спойлер Текстура прицела меняется в зависимости от используемого разрешения экрана. Для этого необходимо указать вариант текстуры прицела для разрешения 16:9 (scope_texture_16_9) помимо основной текстуры прицела (scope_texture) Спойлер Я переработал demo_record отчасти, в будущем я намерен продолжать работу над ним и дальше. Я добавил нормальную подсказку о клавишах ввода, нейтрального цвета, которая не моргает перед лицом и которую можно по нажатию одной кнопки можно скрыть. Добавил возможность включить вывод сетки третей для нормальной сборки композиции, в случае если ты не можешь определить трети и их пересечения на глаз. Реализовал смену глубины резкости и поля зрения при помощи колеса мыши. Хоть и криво, но реализовал активацию ватермарки и "Рамок" по кнопкам. Текстуры сетки, ватермарки и рамок лежат по пути textures/vfx/ Проблемы - сетка, рамки и ватермарка пока что доступны только на втором рендере, а при скриншоте с измененным полем зрения встроенные скриншоты ломаются, так что приходится использовать например бандикам, так как на обновление 1.4 у меня было мало времени я так и не нашел причину этой проблемы, но я думаю что на время скриншотов класс demo_record разрушается и после них создается заново, иначе я не знаю почему это происходит. Спойлер Спойлер Полностью перенесен формат погоды чистого неба и зова Припяти Спойлер Для каждого уровня создан свой собственный цикл погоды на основе оригинальных циклов, с собственной атмосферой, передаваемой через визуал и звук. Большая часть уровней имеет собственное звуковое окружение, собранное индивидуально под отдельные уровни. Спойлер Я считаю что Environment должен быть не просто погодой, а набором настроек, формирующих также и виуальный стиль и характер уровня, я начал с того что из погоды управляется винъетирование и сепия, а в будущем буду двигаться и к другим художественным инструментам. Спойлер ПОгода на Янтаре и Радаре меняется после отключения обоих выжигателей, что должно создавать ощущение влияния данных событий на мир зоны и главного героя в частности. Спойлер Спойлер Помимо фокусировки на персонаже, во время диалогом теперь можно переключать фразы прямо с клавиатуры, что удобно и может экономить время Спойлер Спойлер Добавлены новые интро ролики при старте игры Спойлер Вместо того чтобы вырезать интро, я дал возможность выключить их через настройки в главном меню Спойлер Спойлер Спойлер Добавлена команда r2_debug_render, при помощи которой можно выводить на экран разные слои рендера. Пока что можно вывести только данные из геометрического буфера, аккумулятора света, можно вывести Ambient occlusion и три стадии шумоподавления, а также полные данные об освещении. После изменения значения команды необходимо вызвать перезагрузку рендера с помощью vid_restart Спойлер При помощи команд r2_debug_textures можно вывести вместо всех текстур геометрии белую текстуру и UV чекер. Белая текстура может позволить посмотреть на геометрию как она есть, после того как она прошла через компиляцию, без помощи blender, хотя это все же стоит делать при помощи открытия сцены в блендере. UV чекер позволяет быстро проверить подтяжки и сломанные швы у текстур прямо внутри игры. Для того чтобы после смены значения этой команды изменения применились необходимо перезапустить игру. Спойлер Предупреждения, возникающие во время компиляции шейдеров теперь выводятся в логи Спойлер Помимо того, что я иду к полному переписыванию всех шейдеров под нормальный стиль кода и нормально спроектированную их архитектуру, я одним из первых изменений собрал шейдеры первого и второго рендеров в проекты для Visual studio, рассортировав по фильтрам все файлы. Спойлер Я являюсь единственным разработчиком проекта уже целый год, и хоть мне и помогали советами, а VAX комитами, я не могу заниматься этим один, поэтому если есть желание помочь - приветствую пулл реквесты или иную помощь по проекту. Спойлер 1. Каскадные тени имеют артефакты - дальние каскады еле заметно полосят, а при низком разрешении между каскадами заметна однопиксельная полоса перехода - природа проблемы одна и на данный момент неизвестна. 2. Так как Steep parallax mapping, как и другие алгоритмы рассчета рельефа избегает полумер и рассчитывается для абсолютно всех поверхностей очень заметны его проблемы, которые в дальнейшем исчезнут, из-за смены или переписи алгоритма. Из таких "езда UV по поверхностям" - при некотором движении вектора взгляда относительно поверхности можно заметить то, что отдельные текстуры меняют све положение. "Уход луча под UV" - явление, когда луч алгоритма уходит дальше границы развертки текстуры на модели и появляется эффект "Вылезания" черных областей текстуры и подобных вещей. 3. Сталкеры могут "уронить" фонари утром - природа неизвестна. 4. Настройка выбора средства воспроизведения звука не работает и сбрасывается при перезапуске игры. 5. При выводе окна перехода на другой уровень из-за того что покачивание камеры изменяет теперь еще и поле зрения возникает проблема, когда поле зрения увеличивается пропорционально без остановки. 6. При переходе в подземелья агропрома цвет освещения может стать красным - природа неизвестна. Спойлер Спойлер Спойлер Спойлер https://github.com/Nocturning-studio/Nocturning-studio-project-X Вы всегда можете отправлять любую возможную помощь в виде пулл реквестов Код адаптирован под Visual studio 2019-2022, спасибо VAX Спойлер Группа ВК - https://vk.com/nocturning_games Канал на Youtube - https://www.youtube.com/channel/UCfYy0lHEl_NxjT0Sg0Jjn4w Спойлер В игре присутствуют семь пресетов графики, работа которых оптимизирована под конкретные видеокарты: Минимальный пресет - На Nvidia Geforce 8500GT при улучшенном полном динамическом освещении на разрешении 1280*1024 в среднем 23 кадров в секунду. Низкий-средний пресеты графики рассчитаны на Nvidia Geforce 8600-9800 . Высокий пресет - На Nvidia Geforce GTX260 OC при улучшенном полном динамическом освещении на разрешении 1280*1024 в среднем 30 кадров в секунду. Экстремальный пресет рассчитан на Nvidia Geforce GTX460 и выше. Ультра пресет рассчитан на Nvidia Geforce GTX560 и выше. Спойлер Для установки и использования достаточно поместить в корень папки игры содержимое приложенного архива. Также необходимо установить Visual C++ 2019 x86/x64 При установке стоит переименовать оригинальную папку bin и скопировать на её место папку из архив, запускается новый движок при помощи xrEngine.exe Я ищу людей, для того чтобы в дальнейшем разрабатывать проект в команде - если вы хороши хоть в чем-то и хотели бы принять участие в разработке проекта - напишите мне здесь или в ВК (https://vk.com/ns_deathman) Изменено 25 февраля пользователем Deathman 12 7 2 2 8 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
mrmnwar 4 Опубликовано 25 февраля, 2023 Deathman чел, SMAA+FXAA+DLAA так вообще законно? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Deathman 664 Опубликовано 25 февраля, 2023 (изменено) 15 минут назад, mrmnwar сказал: Deathman чел, SMAA+FXAA+DLAA так вообще законно? После провала и высмеивания NSPX в определенных кругах я решил делать в NSPX любую трешню какая только в голову придет. Если додумаюсь как то вообще DX9.0L рендер завезу как R2.5L, все равно DX10/DX11 рендеры мне не светят. Дополнено 6 минуты спустя 15 минут назад, mrmnwar сказал: Deathman чел, SMAA+FXAA+DLAA так вообще законно? Кстати как ни странно, но выглядит это сочетание ещё хуже чем DLAA + FXAA. В принципе SMAA на ультра качестве выглядит даже хуже чем DLAA, не знаю как так вышло, я после добавления вообще ставлю только двупроходный вариант FXAA. Дополнено 16 минуты спустя И да, для всех тех кто говорил мне что у меня отвратительный стиль кода, да и в принципе моя затея провальная - я так и гну свою тему с полной переписью всех шейдеров Изменено 25 февраля, 2023 пользователем Deathman 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
mrmnwar 4 Опубликовано 25 февраля, 2023 Deathman зачем вообще переписывать то, что и так работает как надо? Дополнено 1 минуту спустя Тем более, что в данной работе нет ничего фундаментального, что вынуждало бы переписывать рабочие шейдеры. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Deathman 664 Опубликовано 25 февраля, 2023 1 час назад, mrmnwar сказал: Deathman зачем вообще переписывать то, что и так работает как надо? Дополнено 1 минуту спустя Тем более, что в данной работе нет ничего фундаментального, что вынуждало бы переписывать рабочие шейдеры. У меня на то, чтобы освоить эти омерзительные каракули ушел год и я не хочу мириться с осознанием того что в моем проекте все ещё используется настолько ужасный и омерзительный код во-первых. Во-вторых как я уже и сказал я до этого забыл что я могу в своем проекте творить какую угодно трешанину потому что она никому не нужна. В-третьих так я вообще-то имплементирую новые вещи и делаю код намного более читабельным и осваиваемым для новичков Дополнено 5 минуты спустя 1 час назад, mrmnwar сказал: Deathman зачем вообще переписывать то, что и так работает как надо? Дополнено 1 минуту спустя Тем более, что в данной работе нет ничего фундаментального, что вынуждало бы переписывать рабочие шейдеры. Банально легче работать с разумным кодом типа кода XRAY 2.0, Unreal engine 3, Speedtree и прочим, а не поганой мазней, в которой половина кода это однобуквенные переменные, суть которых понятна не всегда, а вторая половина это закомментированный код, который когда-то использовался и вдруг его решили заменить Дополнено 8 минуты спустя 1 час назад, mrmnwar сказал: Deathman зачем вообще переписывать то, что и так работает как надо? Дополнено 1 минуту спустя Тем более, что в данной работе нет ничего фундаментального, что вынуждало бы переписывать рабочие шейдеры. Да и камон, я просто провожу свое время так, как мне нравится и выкидываю в мир то что из этого выродилось. Я не понимаю зачем я раньше загонялся и строил вокруг NSPX какой-то официоз если он кроме меня никому и не нужен Дополнено 17 минуты спустя 1 час назад, mrmnwar сказал: Deathman зачем вообще переписывать то, что и так работает как надо? Дополнено 1 минуту спустя Тем более, что в данной работе нет ничего фундаментального, что вынуждало бы переписывать рабочие шейдеры. Да кстати, есть вторая ветка проекта, которая ждёт полной переписи шейдеров основной чтобы можно было продолжать работать над ней, специально для нее я и решил развивать систему блоков, из которых строится хаб работы с поверхностями (g_base) которой вдохновился во втором сталкере, чтобы можно было удобно менять полностью всю систему без лишней мороки, правда я не знаю осилю ли я так много разноплановой работы, в том числе и по части текстур, но работать со второй веткой проекта я чувствую будет весело 1 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
mrmnwar 4 Опубликовано 25 февраля, 2023 52 минуты назад, Deathman сказал: омерзительные каракули С такими громкими заявлениями лучше прикладывать какие-нибудь доказательства) 55 минут назад, Deathman сказал: а не поганой мазней, в которой половина кода это однобуквенные переменные Это например? 57 минут назад, Deathman сказал: а вторая половина это закомментированный код, который когда-то использовался и вдруг его решили заменить Опять же, вилами по воде) 59 минут назад, Deathman сказал: специально для нее я и решил развивать систему блоков, из которых строится хаб работы с поверхностями С твоих слов. Сначала ты вырезал "бесполезный" surface loader(sload), а теперь хочешь его воссоздать?) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
imcrazyhoudini 1 126 Опубликовано 26 февраля, 2023 почему к этому проекту до***ваются так, будто автор это главный злодей моддинга? 2 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Deathman 664 Опубликовано 26 февраля, 2023 (изменено) В 26.02.2023 в 00:02, mrmnwar сказал: С такими громкими заявлениями лучше прикладывать какие-нибудь доказательства) Это например? Опять же, вилами по воде) С твоих слов. Сначала ты вырезал "бесполезный" surface loader(sload), а теперь хочешь его воссоздать?) 1 - типичный combine_1 для примера 2 - раз пошло все в этом направлении то я видел твой код объемного света. И где на этих скриншотах хоть одна однобуквенная переменная. Да я эльдарас и не подписываю структуры типа "PixelInputStruct" или "GeometrBufferDataStruct", но это те вещи, которые и так понятны. Для написания своего кода я использую первые два SOLID принципа, заключающиеся в разграничении ответственности каждой функции, создание кода открытым для модификации и закрытым для полного изменения, и также выношу одинаковые действия в каждом шейдере в функции, ответственность которой четко ясна из названия, я использую полные названия переменных без сокращений или же минимальные сокращения, я всегда использую PascalCase для обычных переменных, сейчас я опомнился и начал использовать Snake_Case с большой буквы для названий функций и MACRO_CASE для констант, объявленных дефайнами. Это уже в разы лучше того кода, который был в оригинале. 3 - Опять же тот же первый этап сборки кадра, тот же шейдер SSAO и многие другие, когда я сел добавлять параллаксы в шейдер террейна я был в шоке, ибо это самый отвратительный код из всех что я видел, переписывать его пришлось полностью, open-closed принципу он не следует вообще. 4 - Для людей, с ограниченным запасом слов в английском языке - слово Deprecated, из которого состоит шапка старого шейдера загрузки поверхностей, переводится как "Устаревший", а не "Бесполезный". И нет, я не вырезал и пытаюсь его заменить, я просто написал отчасти новый хаб работы с загрузкой текстур для поверхностей, вдохновился которым я опять же из второго сталкера, он у меня даже назван также, и система мелких файлов с отдельными функциями у меня тоже оттуда. Дополнено 1 минуту спустя В 26.02.2023 в 07:43, imcrazyhoudini сказал: почему к этому проекту до***ваются так, будто автор это главный злодей моддинга? Я просто постоянно им хвастался и говорил что он лучше OGSR в плане графики, потому и стал везде посмешищем с плохой репутацией. И да, я не отрекаюсь от своих слов и сейчас. Изменено 3 августа, 2023 пользователем Deathman Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
mrmnwar 4 Опубликовано 26 февраля, 2023 28 минут назад, Deathman сказал: типичный combine_1 для примера И что там не так?) Я начинаю думать, что отладочные макросы ты посвятил в "неведомую мешанину"😁 29 минут назад, Deathman сказал: раз пошло все в этом направлении то я видел твой код объемного света Раз на то пошло, то я и не писал код объемного света🤔А если ты о саншафтах, дак это "каракули"(нет) крайтек. 37 минут назад, Deathman сказал: 3 - Опять же тот же первый этап сборки кадра, тот же шейдер SSAO и многие другие, когда я сел добавлять параллаксы в шейдер террейна я был в шоке, ибо это самый отвратительный код из всех что я видел, переписывать его пришлось полностью, open-closed принципу он не следует вообще. Начал за ssao, закончил за упокой) Если бы ты хоть немного поработал с СДК и компилятором, то возможно понимание того, зачем так написан шейдер, к тебе бы пришло. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Deathman 664 Опубликовано 26 февраля, 2023 13 минут назад, mrmnwar сказал: И что там не так?) Я начинаю думать, что отладочные макросы ты посвятил в "неведомую мешанину"😁 Раз на то пошло, то я и не писал код объемного света🤔А если ты о саншафтах, дак это "каракули"(нет) крайтек. Начал за ssao, закончил за упокой) Если бы ты хоть немного поработал с СДК и компилятором, то возможно понимание того, зачем так написан шейдер, к тебе бы пришло. ---___--- Я мог бы бесконечно отвечать на эти выпады, но я не хочу продолжать срачи вокруг NSPX. Мой проект, моя жизнь и я свободен делать все что я захочу и в принципе любую трешню в рамках закона и моего здравого смысла. Не нравится - я никому не навязываю свой проект, лично домой не приезжаю и в ходе пыток не заставляю с ним работать. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
CiberZold 884 Опубликовано 26 февраля, 2023 (изменено) 14 часов назад, Deathman сказал: я после добавления вообще ставлю только двупроходный вариант FXAA. да пожалуй FXAA для Сталкера самый лучший вариант из пост-процессинговых сглаживаний, если тебе не светит полноэкранное MSAA как на DX10/11 Дополнено 4 минуты спустя 1 час назад, Deathman сказал: говорил что он лучше OGSR в плане графики, потому и стал везде посмешищем с плохой репутацией. И да, я не отрекаюсь от своих слов и сейчас. ну OGSR действительно в плане графона ничего в модинг не внёс, окромя капель на стекле, которые не работают в половине адаптаций) остальное всё было ещё в ОГСЕ вставках в движок. Изменено 26 февраля, 2023 пользователем CiberZold Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
mrmnwar 4 Опубликовано 26 февраля, 2023 Deathman камон, не будь таких громких заявлений, никто бы и не придирался. Ты обсираешь код разработчиков, хотя сам просто его переписываешь😁У тебя нет ничего фундаментального, что заставило бы кардинально менять принцип построения рендера и переписывать рабочие шейдеры. Не мало было таких разработок века, где и шейдеры шифровали и вообще без регистрации и смс фиг скачаешь, потому что разработка мега некст-ген. Хотя по сути если разобраться, как обычно накидают эффектов постобработки которые в огсе еще 2013 переживали(но мы их перепишем, мы же умнее). Короче все это давно пройдено. Пора делать вещи которые реально нуждаются во внимании, а не бросаться громкими заявлениями и делать всякие ремейки,редаксы,апдейты с кучей постобработки. Где вы все когда нужно сделать нормальное освещение для частиц, нормальное освещение полупрозрачной геометрии, нормальный альфатест, енв пробы для отражений? Когда мы научимся делать освещение форвард рендеринга вообще? А туман вообще кто-нибудь в силах переделать сегодня? А, точно, вы в это время пилите новый sussao) super-ultra-screen-space-ambient-occlusion. Ciao. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Deathman 664 Опубликовано 26 февраля, 2023 (изменено) В 26.02.2023 в 10:33, CiberZold сказал: да пожалуй FXAA для Сталкера самый лучший вариант из пост-процессинговых сглаживаний, если тебе не светит полноэкранное MSAA как на DX10/11 Дополнено 4 минуты спустя ну OGSR действительно в плане графона ничего в модинг не внёс, окромя капель на стекле, которые не работают в половине адаптаций) остальное всё было ещё в ОГСЕ вставках в движок. Я от SMAA вообще ожидал другого. Мой вариант какого-то черта не адаптирован под третью шейдерную модель и использует функцию mad из пятой, а также атрибуты, про которые даже на MSDN написано что они чуть ли не через раз на второй и третьей моделях работают, при этом багует и сглаживает хуже чем просто множественная выборка лесенок при помощи трилинейного фильтра и я сравнивал - это реально так. MSAA можно использовать даже на DX9, но это абсолютнейший ад. Нужно рендерить один и тот же шейдер в два рендертаргета и потом через stretch_rect их прогонять, при этом не все выборки даже будут работать. Я не знаю будет ли кому интересно в будущем то, что я добавил Baked AO карты, параллаксы для детальных текстур и террейнов и прочее, наверное NSPX просто забудется, а сам я в конце концов довыгорю, занимаясь им в одиночку Дополнено 3 минуты спустя В 26.02.2023 в 10:40, mrmnwar сказал: Deathman камон, не будь таких громких заявлений, никто бы и не придирался. Ты обсираешь код разработчиков, хотя сам просто его переписываешь😁У тебя нет ничего фундаментального, что заставило бы кардинально менять принцип построения рендера и переписывать рабочие шейдеры. Не мало было таких разработок века, где и шейдеры шифровали и вообще без регистрации и смс фиг скачаешь, потому что разработка мега некст-ген. Хотя по сути если разобраться, как обычно накидают эффектов постобработки которые в огсе еще 2013 переживали(но мы их перепишем, мы же умнее). Короче все это давно пройдено. Пора делать вещи которые реально нуждаются во внимании, а не бросаться громкими заявлениями и делать всякие ремейки,редаксы,апдейты с кучей постобработки. Где вы все когда нужно сделать нормальное освещение для частиц, нормальное освещение полупрозрачной геометрии, нормальный альфатест, енв пробы для отражений? Когда мы научимся делать освещение форвард рендеринга вообще? А туман вообще кто-нибудь в силах переделать сегодня? А, точно, вы в это время пилите новый sussao) super-ultra-screen-space-ambient-occlusion. Ciao. Забавный факт - ты сам этого не сделал в сталкере чтобы такое заявлять. Про освещение частиц ещё Шишковцов в TODO в 2005 писал, нужно полностью переделывать систему частиц. И также если не видел то что я делаю сам открой мои шейдеры и посмотри чем я занимаюсь, я делаю свое, а если беру чужое или мне кто-то помогает то я указываю авторства Изменено 3 августа, 2023 пользователем Deathman Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
mrmnwar 4 Опубликовано 26 февраля, 2023 5 минут назад, Deathman сказал: И также если не видел то что я делаю сам Я тоже умею переписывать код сталкера) 5 минут назад, Deathman сказал: Забавный факт - ты сам этого не сделал в сталкере чтобы такое заявлять. Забавный факт в том, что ты незнаешь того, что я сделал, потомучто я не кричу об этом налево и направо как вы о новых эффектах постобработки) 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Deathman 664 Опубликовано 26 февраля, 2023 (изменено) 4 минуты назад, mrmnwar сказал: Я тоже умею переписывать код сталкера) Забавный факт в том, что ты незнаешь того, что я сделал, потомучто я не кричу об этом налево и направо как вы о новых эффектах постобработки) Ой, давай ещё за то что у меня RTX нет предъявлять начнёшь, ведь это так умно. Я не называл свой проект редуксом, ремастером и всем остальным чтобы кто-то приходил и такое мне предъявлял, я открыто говорю то, что это трешня, которой я непонятно зачем занимаюсь в свое свободное время, если хочешь того что ты перечислил то иди и наслаждайся этим в своем проекте, а я в NSPX делаю то что я могу, и то что у тебя получится хоть ремейком тени Чернобыля называй Изменено 26 февраля, 2023 пользователем Deathman Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
mrmnwar 4 Опубликовано 26 февраля, 2023 Deathman причем тут вообще ртх не понятно) Сделай ты отдельной разработкой hashed alpha test с темпоральным сглаживанием вместо трех алгоритмов сгладки, тебе бы все сборки на аномали только спасибо сказали😁, и не говори что это не выполнимо на сталкере. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Deathman 664 Опубликовано 26 февраля, 2023 (изменено) В 26.02.2023 в 11:00, mrmnwar сказал: Deathman причем тут вообще ртх не понятно) Сделай ты отдельной разработкой hashed alpha test с темпоральным сглаживанием вместо трех алгоритмов сгладки, тебе бы все сборки на аномали только спасибо сказали😁, и не говори что это не выполнимо на сталкере. Чтобы добавить TAA нужны вектора движения, а я не похож на убер программиста чтобы знать как это делается. И да, я нигде не заявлял того что я программист если вдруг кто-то решит придраться к этому. А RTX я привел чтобы показать градус абсурда, потому что я нигде не заявлял о том что это Некст ген проект или что-то такое и придирки по части того что у меня только постпроцесс потому неуместны Изменено 3 августа, 2023 пользователем Deathman Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
CiberZold 884 Опубликовано 26 февраля, 2023 40 минут назад, Deathman сказал: наверное NSPX просто забудется, а сам я в конце концов довыгорю, занимаясь им в одиночку так обычно и бывает, тут как и в жизни на одного что-то делающего человека находится 10 экспертов диванных, что вообще палец о палец не ударили, на зато в критику они первые - ты не так делаешь, зачем это вообще нужно и так всё работает и т.п., причём они всегда будут в плюсе, если у тебя не получится скажут - вот мы же говорили, а если получится, просто - бесплатно будут пользоваться твоими наработками со своей выгодой, видя такую ситуацию у нас дельные спецы и думают - а нахрена мне что-то делать? если этим кто нифига не делает и так хорошо живётся) так бы всё у нас и загнулось, если бы не пассионарные одиночки, что хоть что-то делают несмотря на критику и отсутствие выгоды. 1 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Deathman 664 Опубликовано 27 февраля, 2023 (изменено) Как вы поняли, когда я говорил про адскую трешню, какую я только захочу сделать, я как бы не шутил Дополнено 5 минуты спустя Предвещая вопросы - нет, это не тот вариант статики на Deffered rendering о котором я говорил, я так и не смог это реализовать, ровно также как и внедрить nvapi от чистого неба чтобы работал sli, а просто режим работы оригинального первого рендера с штуками вроде маски на террейнах, для плавных переходов между текстурами деталей на земле и прочего функционала, для которого DX8.1 или DX8.2 недостаточно в виду ограничения количества инструкций на шейдер или количества семплеров Дополнено 31 минуты спустя Из фич, предлагаемых данным типом рендера Дополнено 36 минуты спустя Мне интересно, а из тех, кто играет на первом рендере на видеокарте с поддержкой DX9, кто-нибудь когда-нибудь хотел глубину резкости на нем? Хочется добавить совсем легкую версию примерно на 6-8 смещений чтобы много не жрала, но не знаю надо ли и не сожрут ли меня "Эксперты" за это Дополнено 36 минуты спустя Ждите еще больше простых и нетребовательных эффектов постобработки на r1.5 в NSPX 1.15 Изменено 27 февраля, 2023 пользователем Deathman 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
mrmnwar 4 Опубликовано 28 февраля, 2023 В 27.02.2023 в 20:01, Deathman сказал: просто режим работы оригинального первого рендера с штуками вроде маски на террейнах, для плавных переходов между текстурами деталей на земле и прочего функционала, для которого DX8.1 или DX8.2 недостаточно в виду ограничения количества инструкций на шейдер или количества семплеров А вот это уже годно, хрен поспоришь😉Надо себе на заметку взять эту фичу. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Deathman 664 Опубликовано 1 марта, 2023 (изменено) Смотрите где появилась поддержка SLI после внедрения HWCAPS и Nvapi от чистого неба с Atigpunum Дополнено 20 минуты спустя Кстати о нововведениях - цветовые абберации и SSAA до 16Х Дополнено 22 минуты спустя Если есть люди, которые бы хотели внезапно помочь проекту по части движка - я всегда на связи Один я не смогу сделать новую статику на основе R2 на Deffered rendering, хотя я могу написать для нее с ноля шейдеры, не смогу добавить DX10/DX11 и многие другие крутые вещи, типа переноса чн\зп формата оружия или инверсной кинематики для ног актеров Изменено 1 марта, 2023 пользователем Deathman 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
I am dead 1 192 Опубликовано 1 марта, 2023 В 26.02.2023 в 12:19, Deathman сказал: когда я сел добавлять параллаксы в шейдер террейна Шейдер террейна хороший, но на всем другом парралакс сломался Дополнено 2 минуты спустя В 26.02.2023 в 12:19, Deathman сказал: говорил что он лучше OGSR в плане графики, потому и стал везде посмешищем с плохой репутацией О да, ты понял это, не кидался бы словами ничего такого бы и не было Дополнено 5 минуты спустя В 26.02.2023 в 13:33, CiberZold сказал: OGSR действительно в плане графона ничего в модинг не внёс Никто и не кидался заявлениями что внес) В 26.02.2023 в 13:33, CiberZold сказал: остальное всё было ещё в ОГСЕ вставках в движок Ну от огсе то ничего как бы и не осталось уже Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Deathman 664 Опубликовано 1 марта, 2023 (изменено) В 01.03.2023 в 20:43, I am dead сказал: Шейдер террейна хороший, но на всем другом парралакс сломался Дополнено 2 минуты спустя О да, ты понял это, не кидался бы словами ничего такого бы и не было Во-первых сломался он потому что я тупой и у меня для всех материалов один алгоритм рельефа, а не разные алгоритмы для разных материалов, с разным тайлом и разными сетками. По той же причине кстати по которой у GSC steep parallax выбирается для отдельных текстур. А во-вторых я считаю так и до сих пор и мне плевать на то что я посмешище, потому что теперь я занимаюсь NSPX для себя и в свое удовольствие, делаю такую трешанину, которую раньше позволить себе бы не решился Изменено 17 декабря, 2023 пользователем Deathman 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
I am dead 1 192 Опубликовано 1 марта, 2023 Только что, Deathman сказал: по которой у GSC steep parallax выбирается для отдельных текстур Но мы сравнивали сидели, на дефолт тч и том же огср, например нету проблемы с паралаксом на моделях Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Deathman 664 Опубликовано 1 марта, 2023 (изменено) В 01.03.2023 в 20:51, I am dead сказал: Но мы сравнивали сидели, на дефолт тч и том же огср, например нету проблемы с паралаксом на моделях Я уже прекрасным образом объяснил по какой причине возникает эта проблема Изменено 17 декабря, 2023 пользователем Deathman Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
I am dead 1 192 Опубликовано 1 марта, 2023 В 26.02.2023 в 14:10, Deathman сказал: не заявлял о том что это Некст ген проект Ну как же, на OXR ты неплохо таки трепался Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты