Красота Minecraft с модами)
Создали локальный сервер и играли на нём.
Я помню как мы в новермайне убивали босса ,а я с шахтёрским лазером.
Те кто когда-то играл с модами с кем-то пришлите скриншоты.
Создали локальный сервер и играли на нём.
Я помню как мы в новермайне убивали босса ,а я с шахтёрским лазером.
Те кто когда-то играл с модами с кем-то пришлите скриншоты.
Всем привет, давно ничего не постил, вечно некогда)
Странное название, но я хз как это назвать ещё, но вот пример, это по работе делал анимашку пока идет поиск противника, про партиклы тут вроде особо нечего рассказывать, уже и так эти моменты пояснял, а вот фон на заднем плане, раньше не знал как сделать подобное, долго голову ломал)) Но нашел решение)
Ну в целом, мне кажется можно проще решение найти, но не хочется покадровую анимацию, не знаю, думаю ещё пока, но в целом этот задник сделан шейдером. И кому интересно я записал видос, как подобного плана делать эффекты, можно и лучше сделать конечно, я ещё только учусь, но базовой концепцией поделюсь) Может пригодится кому)
Может не все хорошо получилось, вернусь ещё к этой теме, можно и партиклами добиться примерно такого-же эффекта. Посмотрим ещё.
Спасибо, за внимание.
Красота нелинейной динамического хаоса.
Исходники могу выложить через неделю, слишком устарели.
Захотелось вот поделиться шейдерной анимацией игровой клавиатуры, которую делал пару дней. (Руками без всяких там шейдерграфов.) Кстати, настоящие аниме-пикабушники могут узнать кружочки с монитора.
Вообще я ужасен в шейдерах. Сначала, использовал относительную позицию и "анимация" была овальной, а не круглой.
Затем, перешёл на глобальные координаты экрана и до меня дошло, что анимация стала "круглой", хотя клавиатура наклонена. Исправил обычным костылём: вернулся к относительным координатам и просто сделал текстуру подсветки квадратной вместо того, чтобы париться с умножением матриц.
Привет! Вчера немного посидел, пытаясь намутить эффект остановки времени, вроде вышло что-то похожее)
Год или два назад в Game Maker, на котором я создаю игру завезли эффекты разных видов, под их капотом лежат шейдеры и мне не пришлось писать вручную код шейдера, а взять готовый. Так, я использовал эффект heat haze (нагревания), покрутил его параметры, и получился вот такой прикольный результат. Кроме него еще накладываю небольшую виньетку на экран. На самом деле такие эффекты неплохо могут улучшить картинку в игре)
Страница игры в Steam: https://store.steampowered.com/app/2363760/ReLinked/ (буду благодарен если добавите игру в желаемое)
Решил яя значит поиграть в майн с шейдерами. И не понял почему у меня такие странные тени. Они постоянно мигают и меняются. Очень резкие в общем. Помогите пожалуйста
Привет Пикабу! Фризы. Долгие загрузки. Мы привыкли винить в это разработчиков игр – но далеко не всегда виноваты они. Компиляция шейдеров - бич современных игр. Но что это такое? Как удобная технология стала проблемой?
И сразу же возникает только два вопроса – что такое шейдер и что вообще такое компиляция? Не будем усложнять. Мы постоянно слышим слово шейдер в контексте разработки игр, и на самом деле это просто кусок кода, программа, которая работает на вычислительных блоках видеокарты. В современных графических API, таких как DirectX 12 или Vulkan, существует семь категорий шейдеров.
Вершинные, геометрические, поверхностные и доменные шейдеры используются для формирования границ объектов 3D-мира. Проще говоря - в интернетах картинки, составленные из треугольников-полигонов?
Вот за это и отвечают первые 4 категории шейдеров. В дальнейшем созданную картинку нужно раскрасить и сделать реалистичнее: за это отвечают пиксельные, а теперь еще и лучевые шейдеры. Эти нужны для правильного расчета освещения и затенения, эффектов прозрачности, взрывов, огня, воды – в общем, красивого отображения физики.
Ну и под конец – вычислительные шейдеры. Современные видеокарты отлично подходят для многих математических расчетов, и именно на такой тип шейдеров опирается Nvidia CUDA или OpenCL. А сейчас еще трудятся во всяких генеративных нейросетках рисуя нам картиночки.
Но вернемся в играм. Современные проекты манипулируют тысячами шейдеров для расчета красивой картинки на экране. Часть из этих кусков кода простые и легкие – например, если речь идет о текстурировании, то есть натягивании текстуры объекта на полигоны.
Это одна из тех причин, почему увеличение качества текстур в настройках игры минимально влияет на FPS – разумеется, если хватает видеопамяти. Но при этом существуют, например, лучевые шейдеры, которые нужны для правильной отрисовки освещений и теней при помощи трассировки лучей. И едва ли нужно рассказывать, насколько сильно RTX on роняет FPS.
Хорошо, теперь стало понятно, как тяжелые шейдеры могут негативно влиять на расчет времени кадра и тем самым снижать FPS. Но где связь между ними и фризами или долгой первой загрузкой игры?
Все дело в том, что изначально шейдер пишется на высокоуровневом языке программирования. И прежде чем видеокарта сможет его использовать, процессор должен скомпилировать шейдер, иначе говоря перевести в понятный для GPU двоичный машинный код.
Это не вызывает проблем с десятком-другим шейдеров. Но когда их счет в современных играх идет на тысячи, а то и десятки тысяч, и с каждым кадром нужно подгружать десятки и сотни новых – разработчики оказываются буквально в тупике, вынужденные выбирать один из двух стульев как в том самом анекдоте, а то и пытаться усидеть сразу на обоих.
Самый простой вариант - скомпилировать все шейдеры в лоб при первом запуске игре.
К чему это приводит – заметили бета-тестеры... вернее игроки в ремейк Last of Us, который даже на топовых ПК умудряется грузиться часами.
Хотя, надо сказать, тут очень важно умение программистов правильно распоряжаться библиотекой шейдеров и многоядерностью процессора. В самом худшем случае будут компилироваться абсолютно все шейдеры, даже те, которые не нужны на конкретной системе, и использоваться для этого будет лишь одно ядро. Как показывают тесты, с оптимизацией компиляции консольные программисты из Naughty Dogs справились так себе, что и вызвало бурю негодования от скучающих перед прогресс-барами пк-геймеров.
Второй вариант – комилировать шейдеры по мере необходимости во время самого игрового процесса. Как итог, это здорово снижает время загрузки игры – только вот платить приходится повышенной нагрузкой на процессор и накопитель, которым приходится работать не только с текущими данными, но и думать наперед. С учетом общей высокой вычислительной сложности современных игр это гарантированно вызывает фризы в моментах, когда нужно быстро скомпилировать сразу много шейдеров: например, во время перехода в новую локацию.
На деле современные движки обычно комбинируют оба метода: при первом запуске компилируется основная часть шейдеров за разумное время, и в дальнейшем необходимые шейдеры обсчитываются во время катсцен или загрузочных экранов. Однако и здесь все сделать идеально не получается, особенно когда в игре огромный бесшовный мир: рано или поздно игрок все равно забредет в совершенно новую локации, грузить которую придется на ходу и с фризами.
И тут у многих скорее всего возникает логичный вопрос: а почему бы не скомпилировать шейдеры заранее, и скачивать уже полностью разжеванную игру? Проблема в том, что для улучшения производительности шейдеры приходится компилировать под каждую конкретную систему, видеокарту и даже драйвер для нее. Возможных комбинаций тут тысячи, поэтому в случае с ПК заниматься предварительной компиляцией шейдеров невозможно. Более того, апдейт драйверов вполне может вызвать их перекомпиляцию с новым ожиданием.
К слову, именно поэтому на консолях игры обычно грузятся быстрее и работают плавнее, даже если мы берем пастген с жесткими дисками. Так как на таких игровых устройствах компонентная база и система жестко связаны, это позволяет разработчиками провести предварительную компиляцию и избавить железо консолей от дополнительных расчетов.
Можно ли как-то решить проблему компиляции шейдеров на ПК? Глобально – да, фактически – нет. Современные игры становятся все масштабнее и красивее, что увеличивает и количество, и сложность используемых шейдеров.
А с учетом тенденций по созданию бесшовного мира у разработчиков оказываются буквально связаны руки: используя комбинированный метод рано или поздно возникнет ситуация, когда нужно обсчитать множество шейдеров разом – и это вызовет гарантированный фриз и комментарии о криворуких игроделах. Конечно, можно вернуться к старой доброй компиляции всех шейдеров на старте – это снимет любые проблемы с ними во время игры, но, как показывают отзывы о Last of Us, геймеры не готовы ждать первого запуска по полчаса. С каждой игрой. Особенно с учетом того, что это будет повторяться после каждого обновления драйверов на видеокарту.
Поэтому все, что остается разработчикам – это оптимизировать сам процесс компиляции, лучше раскидывать его по ядрам и прогнозировать, какие шейдеры вскоре потребуются. Также хорошей практикой является внимательное изучение, какие именно шейдеры нужны для каждого конкретного объекта: нередко движки для расчета тех же материалов предлагают сразу полный набор от прозрачности до эффектов ткани, которые едва ли нужны обычной текстуре земли. Выкидывание лишних шейдеров разумеется положительно скажется на времени компиляции.
Можно ли как-то улучшить проблему с фризами самостоятельно? Да. Как минимум стоит отказаться от жестких дисков для установки современных игр – и хотя такой тип накопителей все еще поддерживается, на практике они слишком медленно работают с большим количеством мелких файлов, что гарантированно вызовет множество проблем от фризов при компиляции шейдеров до непрогруженных текстур.
Аналогично это относится и к процессору: именно он в современных играх отдувается за компиляцию шейдеров. Поэтому не стоит ему добавлять фоновых задач, это точно не прибавит плавности игровому процессу.
Также можно использовать хитрость под названием лок кадров. Дело в том, что компиляция шейдеров – процесс второстепенный, и если CPU в игре грузится по-полной, то на эту задачу выделяется слишком мало ресурсов, что и вызывает фризы при появлении новых объектов в кадре. Ограничение количества кадров разгрузит процессор и позволит ему тратить больше времени на шейдеры.
Конечно, такой лайфхак снизит общую плавность картинки, но тут уже решать каждому, что важнее: фризы или высокий FPS. Использовать этот трюк можно вместе с понижением процессорозависимых настроек, таких как плотность толпы, дальность прорисовки, качество частиц и прочих параметров, которые затрагивают физику и качество отрисовки объектов.
Читайте нас в Телеграм - https://t.me/mknewsru/7322
Вконтакте - https://vk.com/mknews
Тогда этот вызов для вас! Мы зашифровали звездных капитанов команд нового юмористического шоу, ваша задача — угадать, кто возглавил каждую из них.
Переходите по ссылке и проверьте свою юмористическую интуицию!