Данная серия туториалов будет посвящена созданию собственных шейдеров на основе языка openGL Shading Language, или GLSL.
Язык GLSL чем-то похож на Java, чем-то — на Си, так что с синтаксисом проблем возникнуть не должно.
Первая часть будет посвящена Фрагментным Шейдерам. Что это такое объясню ниже.
Теория:
Начнём с теории. Что такое шейдер?
Шейдер — это программа, которая выполняется в цикле рендеринга графики, использующаяся для определения и изменения параметров геометрических объектов или изображений (для создания эффектов сдвига, отражения, преломления, затемнения с учётом заданных параметров поглощения и рассеяния света, для наложения текстур на геометрические объекты).
Сложно, тёмно и не особо понятно, да? Давайте попробуем упростить вышесказанное и всё таки дать ответ на главный вопрос «что же делают фрагментные шейдеры? «. Готовы?
В двух словах: определяют цвет
Всё. Это действительно всё, что может сделать этот тип шейдера — определить и вернуть цвет одного-единственного полученного пикселя. Но не спешите закрывать урок. Даже с этим, казалось бы, небольшим функционалом можно делать просто умопомрачительные эффекты. Как?
КАК ПОСТАВИТЬ ШЕЙДЕРЫ НА SODIUM 1.16.5 МАЙНКРАФТ?
Читайте дальше.
На входе фрагментный шейдер действительно получает лишь один пиксель, точнее, его координаты, x и y. А на выходе выдаёт цвет в формате RGBA (красный, зелёный, синий и прозрачность).
Итак, рассмотрим примерный вид программы, которые у вас всех будут в итоге получаться:
Типы переменных:
В GLSL есть практически все стандартные примитивные типы: bool (не boolean!), int, uint (unsigned int, т.е. неотрицательное число), float и double.
В добавок к ним есть контейнеры — векторы: vec2, vec3, vec4 (на 2, 3 и 4 значения соответственно) и матрицы: mat2, mat3, mat4 (2×2, 3×3 и 4×4 соответственно). Стандартый тип переменных в них — float. Если нужен, например, вектор int’ов на три компонента, вначале нужно дописать i — ivec3 (соответственно b — bool, u — uint, d — double).
Грубо говоря, это одно- и двумерные массивы, и доступ к их элементам можно получить через стандартный оператор индексирования — []. Но для нашего удобства был разработан метод swizzling, позволяющий получить доступ к элементам по их идентификаторам (xyzw, rgba или stpq, использующиеся для координат, цветов и точек текстуры соответственно (но не обязательно так)), допустим:
Модификатор uniform — это переменные, передаваемые в шейдер извне (из программы, в которой использовался шейдер). Самый распространённый uniform — time, то есть время. Он используется для анимации, ведь мало кому интересно смотреть на статичные шейдеры, которые проще нарисовать текстурой в фотошопе, чем учить новый язык.
Модификаторы in и out — это входные и выходные данные. Например, переменная gl_FragColor из кода выше как раз таки является переменной с модификатором out, встроенной в GLSL, её тип — vec4. Она используется для извлечения цвета пикселя из шейдера.
«Аннотация» #version указывает версию GLSL, которую вы хотите использовать. Она всегда должна находится на самом верху. Вот небольшая справка соответствия версий OpenGL и GLSL:
Функции:
В GLSL есть множество встроенных функций, очень похожих на их аналоги из библиотеки Math:
sin(a), cos(a), tan(a); min(a, b), max(a, b) — синус, косинус, тангенс углов; минимальное и максимальное значения.
normalize(a) — возвращает нормализованный (с длинной равной 1) вектор a
length(a) — возвращает длину вектора a
distance(a, b) — расстояние между двумя точками (векторами a и b)
И так далее. Полный список можно найти вот тут — *тык* (для OpenGL 4)
Практика:
С теорией покончили, настало время попрактиковаться!
Для этого есть множество удобных и не очень программ и сайтов, лично я при обучении использовал Shader Edit for Android — бесплатная программа из Play Market’а (нет, это не реклама и мне за неё не платили). Для компьютеров можно использовать ShaderToy, но убедитесь, что ваш браузер поддерживает WebGL, иначе ничего не выйдет.
Итак, давайте для начала покрасим весь экран в один цвет, скажем, зелёный.
Для этого нам понадобится всего одна строка в нашей main функции:
gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0); — мы создаём вектор на 4 компонента, отвечающий за цвет текущего пикселя (RGBA), присваивая зелёному цвету значение 1.0 (это максимально допустимое значение. Если вам сложно рассчитать нужное число, используйте конструкцию «n/255» чтобы превратить числа из диапазона 0-255 в 0.0-1.0), а так же устанавливая насыщенность цвета на максимум:
Если ты играл на ранних версиях Майнкрафта, то мог сталкиваться с самыми первыми шейдерами, которые можно было установить только при помощи специальных модов. В шейдерах Nostalgia используется похожий стиль, но…
Шейдеры Molly станут настоящей находкой для любителей сюжетных приключений в Майнкрафте. С ними игра будет похожа на классические RPG. Основной упор сделан на красивое освещение подземелий и интерьеров зданий. Также…
Шейдеры Ebin выглядят действительно впечатляюще и при этом не слишком нагружают компьютер. Их главной особенностью являются очень качественные лучи, которые выглядят довольно реалистично, причём не ослепляют игрока. Кроме того, шейдеры…
Если ты не хочешь сильно изменять графику в Майнкрафте, но при этом есть желание добавить немного реализма, то попробуй установить шейдеры Waving Plants. Они добавляют эффект покачивания для всех растений…
Шейдеры Docteur Dread’s добавляет множество эффектов, но при этом большинство являются ненавязчивым и не сильно отвлекают от игры. С ним Майнкрафте появится реалистичная вода, качественные тени и отражения. Кроме того,…
Шейдеры SFLP заметно улучшат графику в Майнкрафте, но при этом их можно использовать даже на слабых ПК. Они добавляют все основные эффекты: тени, лучи, отражения и блики. Возможно, все это…
Главной целью шейдеров Robobo1221’s Realistic является достижение максимального реализма без лишних эффектов. С ним поверхности в Майнкрафте будут естественно отражать свет, кроме того, в игре появятся качественные динамические тени. Вода…
Создатели шейдеров Conquest of the Sun использовали в качестве основы пак Chocapic Shaders. Они сделали его более мрачным, убрали слишком яркие блики, а также добавили эффекты тумана. Это было проделано…
Шейдеры Radioactive отличаются отличной проработанностью и вниманием к деталям. В них реализовано множество интересных световых эффектов, в том числе радуга, блики, динамические тени и многое другое. Инструкция по установке шейдера Radioactive…
Шейдер QOL не вносит больших изменений в графику Майнкрафта, а лишь добавляет некоторые эффекты, делая мир немного реалистичнее и красивее. Например, с ним вода больше не будет неестественно синей, а…
С шейдерами VOID освещение в Майнкрафте станет намного естественнее. Днем лучи красиво проходят сквозь листву и создают реалистичные тени, а ночью все источники света имеют огромное значение, так как без них…
Шейдеры могут заметно преобразить Minecraft, сделав игру более реалистичной и живой, особенно в сочетании с текстурпаками. Они добавляют множество эффектов, благодаря которым хорошо знакомая пиксельная графика оживает и выглядит совершенно иначе. Например, в воде будут отражаться солнечные лучи и пейзажи, а блоки могут намокать и отображаться по-разному в зависимости от освещения.
При этом они не привязаны к версиям игры. Если ты начинал играть с ранних модификаций, таких как 1.5, 1.6 или 1.7, и нашел для себя идеальный шейдер, ты можешь перейти на новую и продолжить его использовать. В актуальных версиях Minecraft, таких как 1.10, 1.11, 1.12 и даже в 1.13 они будут отображаться точно так же.
Всем привет, с вами Drovosek !
Сегодня я решил выложить свою МЕГА огромную сборку шейдеров, в которую входит 327 самых разных шейдеров ! Делал я её около 3 дней: качал шейдеры с официальных сайтов, вытаскивал из других разных сборок и т.д. и получилась вот такая вот не хилая сборочка.
В сборке есть самые разнообразные шейдеры, начиная от самых легендарных Sonic Ether’s Unbelievable Shaders и заканчивая мало кому известными Stazza85 super Shaders, в общем дофига.
В сборке много шейдеров, есть те, которые идут и на слабые компы, а есть и те которые требуют мощное железо. Есть даже наркоманские шейдеры =))
Сборку делал я сам своей собственной мышкой и собственным интернетом =D
Сборка будет обновляться, т.к. разработчики шейдеров не стоят на месте и постоянно совершенствуются. Обновления будут где-то раз в месяц.
500 ШЕЙДЕРОВ для Майнкрафт — сборка шейдеров от Drovosek
327 ШЕЙДЕРОВ для Майнкрафт — сборка шейдеров от Drovosek
Я не стал заливать скриншоты абсолютно всех шейдеров, только основных, но думаю этих эпичных картинок будет достаточно, чтобы влюбиться в шейдеры =).
* Все скриншоты взяты с официальных тем данных шейдеров на официальном minecraftforum’е.
Источник: minecraft-kak.ru
Мод Optifabric 1.19.2/1.18.2 (Работа Optifine на Fabric)
Optifabric – мод на Майнкрафт 1.19.2/1.18.2 , который добавляет в игру оригинальные шейдеры на новую версию игры. Зачем же нужны шейдеры? Дело в том, что именно шейдеры способны преобразить игру до неузнаваемости, сделать более красивый внешний вид. Также стоит отметить, что для работы данного мода необходимо установить Optifine для запуска.
Что интересного?
Вы получите несколько вариантов шейдеров, сможете выбрать самый подходящий. Кстати, обратите внимание, что некоторые системы могут не потянуть шейдеры.
Особенности мода:
Видео обзор
Как установить мод
Скачать Мод Optifabric 1.19.2/1.18.2 (Работа Optifine на Fabric)
Для 1.19.2 (fabric) optifabric-mod-fabric-1_19_2.jar [ 451.87 Kb 916 02 сентября 2022]
Для 1.19.1 (fabric) optifabric-mod-fabric-1_19_1.jar [ 447.3 Kb 80 02 сентября 2022]
Для 1.19 (fabric) optifabric-mod-fabric-1_19.jar [ 444.08 Kb 226 02 сентября 2022]
Для 1.18.2 (fabric) optifabric-mod-1_18_2.jar [ 412.55 Kb 1563 27 марта 2022]
Для 1.18.1 (fabric) optifabric-mod-1_18_1.jar [ 397.35 Kb 2682 19 декабря 2021]
Для 1.18 (fabric) optifabric-mod-fabric-1_18.jar [ 393.96 Kb 607 03 декабря 2021]
Для 1.17.1 (fabric) optifabric-mod-fabric-1_17_1.jar [ 381.75 Kb 9424 16 июля 2021]
Для 1.17 (fabric) optifabric-mod-fabric-1_17.jar [ 354.14 Kb 9100 10 июня 2021]
Для 1.16.5 (fabric) optifabric-mod-1_16_5.jar [ 342.69 Kb 3171 03 июня 2021]
Для 1.16.4 (fabric) optifabric-mod-1_16_4.jar [ 260.67 Kb 287 03 июня 2021]
Для 1.16.3 (fabric) optifabric-mod-1_16_3.jar [ 245.31 Kb 548 22 сентября 2020]
Для 1.16.2 (fabric) optifabric-mod-1_16_2.jar [ 218.75 Kb 196 04 сентября 2020]
Для 1.16.1 (fabric) optifabric-mod-1_16_1.jar [ 320.12 Kb 345 11 июля 2020]
Для 1.15.2 (fabric) optifabric-1_0_0-beta3.jar [ 304.33 Kb 1734 14 февраля 2020]
Для 1.14.4 (fabric) optifabric-mod-1_14_4.jar [ 351.96 Kb 1396 22 июля 2019]
Для 1.14.3/1.14.2 (fabric) optifabric-mod-1_14_3.jar [ 348.22 Kb 519 18 июля 2019]
Источник: minecraft20.ru
Optifabric мод 1.16.5 (Запуск Optifine на Fabric, шейдеры)
Мод, который запустит Optifine на Fabric версии Майнкрафт. Это действительно полезный мод, ведь так как фабрик отличается по структуре, оптифайн обычный не работает. И поэтому, разработчики выпустили версию для Fabric.
Optifabric мод 1.16.5 (Запуск Optifine на Fabric, шейдеры)
Майнкрафт крайне не оптимизирован и сильно нагружает компьютер. Чтобы это исправить давным давно создали optifine, который предаёт буст вашему фпс и много настроек графики. Теперь ни один средний игрок майнкрафта не может обойтись без данного мода.
Однако, недавно вышла новая библиотека для создания модов Fabric, и многие разработчики начали использовать её для своих проектов. У них есть на это причины, однако до сей поры не было главного мода – Оптифайна. Приходилось перебиваться другими конкурентами, чтобы играть с модами на базе Fabric. Но теперь вы даже шейдеры сможете запустить, и всё благодаря этому моду.
Скриншоты:
Установка:
Данный мод необходимо ставить как fabric, то есть ещё в придачу загрузить fabric api.
Источник: xn--80aa0aehirftcs.xn--p1ai