# Работа с шейдерами

### Введение

Как мы знаем, Minecraft — это больше, чем просто игра, и каждый разработчик сборок должен это понимать путём исследования новых возможностей и экспериментов. Одним из способов преобразить игру является использование **шейдеров**, которые вносят в игровой процесс реализм, глубину и уникальные визуальные эффекты. Но насколько это влияет на атмосферу игры и дизайн геймплея?

<div align="left"><figure><img src="https://88247998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwIhyvBxJYLfHMqS8tmat%2Fuploads%2FMqrsZl5du3xAlQ6pVUfX%2F1-min.png?alt=media&#x26;token=0615d3fb-41ff-4f55-aac4-84b85668eb83" alt=""><figcaption></figcaption></figure></div>

В этой статье Вы узнаете, как шейдеры влияют на игровой процесс и позволяют задать геймплею ту визуальную составляющую, которую необходимо передать непосредственно игроку.

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

В этой статье также будут затронуты элементы гейм-дизайна, чтобы понять, что шейдеры - это не просто задача “*сделать картинку красивой, чтобы глаз радовал*”, а полноценный инструмент!

### Что такое шейдеры?

Шейдеры — это графические модификации, которые улучшают визуальные эффекты в игре.

Они **в основном** добавляют:

* Динамическое освещение;
* Реалистичные тени;
* Отражения на воде;
* Детализированные текстуры;
* *и многое другое*; (но всё зависит от автора шейдеров)

### Как их установить?

#### Для Minecraft 1.16.5 и выше

* Установите [Fabric](https://fabricmc.net) и [Fabric API](https://modrinth.com/mod/fabric-api).
  * *Или можете установить* [*NeoForge*](https://neoforged.net)*, если Ваша версия игры выше 1.21.1.*
* Установите [Sodium](https://modrinth.com/mod/sodium).
* Установите [Iris Shaders](https://modrinth.com/mod/iris)
* После установки всех модификаций запустите игру.
* Зайдите в **“Настройки” → “Настройки графики” → “Шейдерпаки…” (Shader Packs…)**
* Нажмите на кнопку “**Открыть папку шейдеров…**” (**Open Shader Pack Folder…**)
* Скачайте любой шейдер, который Вам понравился.
  * [Доступные шейдеры на CurseForge](https://www.curseforge.com/minecraft/shaders)
  * [Доступные шейдеры на Modrinth](https://modrinth.com/shaders)
* Положите скачанный .zip-архив в открытую ранее папку с шейдерами.
* Выберите нужный шейдер в игре в меню.
* Нажмите “**Применить**” (**Apply**). Теперь шейдеры установлены.

#### Для Minecraft 1.16.4 и ниже

* Установите [Optifine](https://optifine.net/downloads).
* После установки запустите игру.
* Зайдите в **“Настройки” → “Настройки графики” → “Шейдеры…”**
* Нажмите на кнопку “**Папка шейдеров**” (**Shaders Folder**)
* Скачайте любой шейдер, который Вам понравился.
  * [Доступные шейдеры на CurseForge](https://www.curseforge.com/minecraft/shaders)
  * [Доступные шейдеры на Modrinth](https://modrinth.com/shaders)
* Положите скачанный .zip-архив в открытую ранее папку с шейдерами.
* Выберите нужный шейдер в игре в меню.
* Нажмите “**Готово**”. Теперь шейдеры установлены.

### Атмосферность как идея преобразования мира

В данной главе будут рассмотрены причины существования шейдеров и методы их использования

Как правило, шейдеры просто используют для улучшения картинки. В нашем случае, они будут нашим инструментом. Нужно понять, чего мы хотим добиться в нашей сборке в плане визуальной составляющей. Хотим ли мы, чтобы мир казался более мрачным? Или наоборот, более ярким и живописным?

Есть несколько направлений шейдеров:

* **Реализм**; Реалистичные шейдеры добавляют ощущение погружения за счёт отражения воды, объемного света, покачивания листвы, тумана, теней и так далее.

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

  Примеры:

  * [Kappa Shader](https://modrinth.com/shader/kappa-shader) (довольно требовательный, но красивый)
  * [FastPBR](https://modrinth.com/shader/fastpbr) (не такой требовательный, но тоже красивый)
  * [Noble Shaders](https://modrinth.com/shader/noble) (довольно требовательный и красивый, если есть ресурспаки и он сам правильно настроен)

  <div align="left"><figure><img src="https://88247998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwIhyvBxJYLfHMqS8tmat%2Fuploads%2Fu6lqvqLJDzObybbJLu1y%2F2-min.png?alt=media&#x26;token=86a06708-da5e-4fa4-9479-86d3e879aec6" alt=""><figcaption></figcaption></figure></div>
* **Фэнтези**; Фэнтези шейдеры создают чувство погружения за счёт необычных образов, нестандартных цветовых палитр или различных элементов, которые не встречаются в реальной жизни и, соответственно, **придают миру более яркие цвета, т.е. “фэнтезийность”**; **различные виды неба и соответствующие ему явления, такие как&#x20;*****северные сияния*****,&#x20;*****звёзды*****,&#x20;*****чёрные дыры***;

  Также подобные шейдеры пользуются различными фильтрами и позволяют управлять **глубиной резкости**, **размытием**, **свечением** ***и не только***!

  Примеры:

  * [Complementary Reimagined](https://modrinth.com/shader/complementary-reimagined) (не сильно требовательный, красивый, имеет огромное количество настроек, более заточен под ваниллу)
  * [Complementary Unbound](https://modrinth.com/shader/complementary-unbound) (не сильно требовательный, красивый, имеет огромное количество настроек, более заточен под фэнтези стиль)
  * [Solas Shader](https://modrinth.com/shader/solas-shader) (не сильно требовательный, красивый и атмосферный)
  * [Potato Shaders](https://modrinth.com/shader/potato-shaders) (крайне нетребовательный и красивый)

  <div align="left"><figure><img src="https://88247998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwIhyvBxJYLfHMqS8tmat%2Fuploads%2FX5No27rexzkLvArPgDTP%2F3-min.png?alt=media&#x26;token=df54fc55-c040-4630-9c80-2af5c8bd0cca" alt=""><figcaption></figcaption></figure></div>
* **Хоррор-шейдеры**; Хоррор-шейдеры относятся к категории тех, что заставляют погрузить игрока в более мрачную атмосферу и заставить его бояться совершать какие-либо действия в разных обстановках. Такие шейдеры, как правило, создают чувство погружения за счёт урезанной ***палитры цветов***, ***нагнетающих элементов***, таких как **густые туманы**, **чёрно-белые фильтры** и так далее. Благодаря таким шейдерам можно придать сборке атмосферу мрака и ужаса.

  Примеры:

  * [Spooklementary](https://modrinth.com/shader/spooklementary) (является производными от Complementary Unbound, более мрачная и атмосферная его вариация)
  * [Insanity Shader](https://modrinth.com/shader/insanity-shader) (не сильно требовательный, мрачный и одновременно красивый шейдерпак) !

  <div align="left"><figure><img src="https://88247998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwIhyvBxJYLfHMqS8tmat%2Fuploads%2FH4RnNQ0mxqLQOpjK2MdI%2F4-min.png?alt=media&#x26;token=f6c86535-691b-488d-bc80-33874c224f6c" alt=""><figcaption></figcaption></figure></div>
* **Улучшающие картинку**; Такие шейдеры также называют “vanilla-like”. Их задача просто *чуть-чуть улучшить картину* и представить пользователю мир с более яркими красками, при этом не отходя от идеи оригинальной песочницы и, соответственно, не нагружая сильно компьютер игрока.

  Существуют шейдеры, которые просто добавляют **немного теней** или внедряют **контрастный фильтр**. Такие шейдеры позволяют придать сборке более приятный вид за счёт каких-либо простых элементов и трюков.

  Примеры:

  * [Mellow](https://modrinth.com/shader/mellow) (простой и нетребовательный шейдер)
  * [Miniature Shader](https://modrinth.com/shader/miniature-shader) (довольно простой и нетребовательный шейдер)
  * [RenderPearl](https://modrinth.com/shader/renderpearl) (неплохой шейдер для Iris)

  <div align="left"><figure><img src="https://88247998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwIhyvBxJYLfHMqS8tmat%2Fuploads%2FCTo4i5ywwurl9cRMg5J2%2F5-min.png?alt=media&#x26;token=5bd380bb-da84-4fb5-b6a7-b3d664bc604b" alt=""><figcaption></figcaption></figure></div>

#### Влияние на эмоции игрока

Шейдеры меняют не только внешний вид игры, но и то, как игрок ощущает мир вокруг. Они способны превратить простую прогулку по лесу в настоящую историю, полную эмоций.

***Представьте:** солнце медленно садится за горизонт, небо окрашивается в тёплые оранжевые тона, а вода у ног игрока отражает это великолепие. Мир, который раньше был кубическим и упрощённым, вдруг оживает, становясь почти реальным. Такие моменты не просто визуально красивы — они вызывают у игрока ощущение уюта и покоя, будто он находится в любимом месте в реальной жизни.*

Шейдеры работают как художник, добавляющий краски в картину, чтобы игрок не просто существовал, а именно что *жил* в этом мире. Они создают эмоциональную связь с игровым процессом, будь то радость от красивого заката, напряжение в битве или умиротворение под звёздным небом. Это больше, чем просто графика — это чувства, которые остаются с игроком даже после того, как он закроет игру.

<div align="left"><figure><img src="https://88247998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwIhyvBxJYLfHMqS8tmat%2Fuploads%2FozSnwnj5Gw9Iep0uukGH%2F6-min.png?alt=media&#x26;token=9adde07b-0b99-47d1-be65-2c6f9579a6c3" alt=""><figcaption></figcaption></figure></div>

### Как шейдеры влияют на игровой процесс

В этой главе будут рассмотрены шейдеры со стороны гейм-дизайна. Шейдеры трансформируют способ взаимодействия игрока с миром, добавляя новый уровень сложности и уникальные особенности сборке, которые напрямую влияют на сам геймплей.

<div align="left"><figure><img src="https://88247998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwIhyvBxJYLfHMqS8tmat%2Fuploads%2F00MBkjAPfpcG8tJ3oxPx%2F7-min.png?alt=media&#x26;token=2b4f34f4-15b6-47d9-a5a7-264713f67f0c" alt=""><figcaption></figcaption></figure></div>

#### Освещение как инструмент гейм-дизайна

Одно из самых очевидных изменений, которые вносят шейдеры — это работа с освещением. Динамические источники света, например, солнце или факел, делают игровой мир более живым, но в то же время меняют поведение игрока.

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

**Пример:** *В темных или засветлённых подземельях с шейдерами гораздо сложнее заметить скелета в углу или распознать ресурсы в каменной стене. Это делает исследование сложным, но и более вознаграждающим за тактичность и подход человека к его внутриигровой задаче.*

<div align="left"><figure><img src="https://88247998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwIhyvBxJYLfHMqS8tmat%2Fuploads%2FrJSrqVzHFCTklGfowQq9%2F8-min.png?alt=media&#x26;token=0e5c5cba-3016-47c2-9255-b7eb316c3f05" alt=""><figcaption></figcaption></figure></div>

Также возможна работа с трассировкой лучей. Конечно, контролировать этот аспект шейдеров довольно проблематично, но всё же, при определённых настройках шейдеров это возможно.

Если мы хотим работать над кастомными аспектами шейдеров и добавить своей сборке уникальности, то это возможно со знаниями о GLSL и некоторого понимания того, как работает компьютерная графика.

*В данной статье не будет представлено подробное создание шейдеров!*

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

<div align="left"><figure><img src="https://88247998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwIhyvBxJYLfHMqS8tmat%2Fuploads%2FXrMGKRcWV9YlOV5mvK09%2F9-min.png?alt=media&#x26;token=deb6d4c1-7a5d-430f-ab05-7f08d3102abc" alt=""><figcaption></figcaption></figure></div>

#### Атмосфера и чувство пространства

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

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

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

<div align="left"><figure><img src="https://88247998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwIhyvBxJYLfHMqS8tmat%2Fuploads%2FRk5vW542d99W5UfDIv0w%2F10-min.png?alt=media&#x26;token=c0e1b2e3-6065-4634-b5b3-7006c654b456" alt=""><figcaption></figcaption></figure></div>

#### Новые вызовы и сценарии

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

**Пример 1:** *Дождь с шейдерами не просто выглядит красиво, но и ухудшает видимость. Это меняет стратегию передвижения, особенно в незнакомой местности.* **Пример 2:** *На поверхности реки отражения могут быть настолько реалистичными, что игроку сложнее определить её глубину, что добавляет элемент неожиданности.*

<div align="left"><figure><img src="https://88247998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwIhyvBxJYLfHMqS8tmat%2Fuploads%2F42f7BIZPspPp60Z2jbsR%2F11-min.png?alt=media&#x26;token=e6fadd73-7684-4305-bbf8-1e4ba0916fff" alt=""><figcaption></figcaption></figure></div>

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

#### Производительность и её влияние на геймплей

Шейдеры часто требуют **значительных** ресурсов компьютера, что может повлиять на плавность игры. С одной стороны, они добавляют реалистичности и красоту. С другой, снижение производительности может усложнить некоторые аспекты геймплея, как бои с мобами и боссами, исследование территории и иную деятельность игрока.

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

### Как выбрать шейдеры для своей цели?

#### Вопросы, которые стоит себе задать:

* *Какой визуальный стиль я хочу передать?*
* *Важна ли мне производительность?*
* *Какие элементы геймплея я хочу улучшить за счёт шейдеров?*

Чтобы вам было проще, Вы можете посетить [раздел Modrinth с шейдерами](https://modrinth.com/shaders) и найти тот, который будет близок Вам по душе или подойдёт к замыслу сборки.

### Настройка шейдеров

В данной главе немного поговорим о настройках. Они являются ключевой составляющей шейдеров. И **далеко не всегда** будет так, что Вы поставили какой-то шейдер и он с коробки будет Вас удовлетворять.

У каждого шейдера настройки **полностью свои**. Где-то настроить можно хоть что угодно, а где-то всего парочка переключателей или вообще нет настроек и Вам придётся жить *“как есть”*.

Если Вам повезёт, то у настроек шейдера будет перевод, и Вы сможете спокойно разобраться с ними, просто прочитав описание, где указано, какая настройка за что отвечает. Если хотите почитать описание, то просто наведите на нужную Вам настройку в *Iris/Optifine*. В противном случае, у Вас будет всё на английском, и тогда Вам придётся пользоваться каким-либо переводчиком, если у Вас есть сложности с пониманием английского.

Если разобрать текущий пример с тем же Solas Shader, то в настройках есть возможность поработать с **атмосферой**, **водой**, **светом**, **PBR** (Physically Based Renderer, *метод компьютерной графики, который позволяет отображать объекты более достоверно, моделируя поток света в реальном мире*), **цветами**, **пост-обработкой** и *прочим* (туда, как правило, входят: **покачивания листвы**, **блоков**, **светлячки** и *то, что не вошло в предыдущие категории*). Внутри каждой из категорий огромное количество полезных настроек и подкатегорий.

Однако, если Вы не фанат заморачиваться, и Вам надо просто, чтобы “было красиво и не лагало”, то о Вас уже скорее всего позаботились. В некоторых шейдерах встроена уже кнопка “**Профиль**” (**Profile**), которая может переключать огромное количество одним кликом. Разные профили созданы специально для разных сборок компьютеров. Для тех, у кого слабое железо - можно выбрать специально упрощённые профили, оптимизированные под слабые видеокарты.

А для тех, у кого хорошее железо - есть максимальные профили, которые выкручивают графику на максимум.

<div align="left"><figure><img src="https://88247998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwIhyvBxJYLfHMqS8tmat%2Fuploads%2FNq1Y1H7lUBPOahTnz800%2F12-min.png?alt=media&#x26;token=39de826a-7796-4616-a042-c6d4b0da2593" alt=""><figcaption></figcaption></figure></div>

### Дополнительные ресурсы

* [Iris для Minecraft](https://modrinth.com/mod/iris) (рекомендуется использовать для версий выше 1.16.5)
* [OptiFine для Minecraft](https://optifine.net/) (для старых версий, ниже 1.16.5)
* [Доступные шейдеры на CurseForge](https://www.curseforge.com/minecraft/shaders)
* [Доступные шейдеры на Modrinth](https://modrinth.com/shaders)
