RenderPearl
Чистые, высокопроизводительные шейдеры для современного оборудования.
Быстрое задание
Как далеко вы сможете убежать, прежде чем вас поймают толпы?
Проверка Minecraft
Подтвердите свой запуск
Пройдите быструю проверку, чтобы получить свой код.
RenderPearl
Современные, легковесные шейдеры для Iris

RenderPearl — это невероятно лёгкий набор шейдеров, использующий новейшие возможности Iris и дополнительные расширения для различных графических драйверов, призванный обеспечить приятное визуальное восприятие и отличную производительность на современном оборудовании.
Если вы хотите сообщить об ошибке или оставить отзыв/предложение, лучший способ сделать это — создать заявку в системе отслеживания ошибок GitHub. Я в значительной степени полагаюсь на отзывы пользователей при исправлении ошибок и разработке дизайна.
Мелочи
Этот проект начинался как продолжение "Luracasmus Shaders" (поэтому его могли называть "LS RenderPearl"), но современные версии практически не имеют общего кода с оригинальным проектом. Остаётся вопрос, сохраняется ли тот же набор шейдеров, если все его части заменены.
Название "RenderPearl" вдохновлено движком RenderDragon из Bedrock Edition.
Особенности
Соответствие требованиям LabPBR 1.3 и данные о материалах
«Да» означает поддержку данных по каждому текселю.
| Требуемый компонент LabPBR 1.3 | Из пакета ресурсов | Настраиваемые нестандартные каналы | Включенные/процедурные | | ----------------------------- | ----------------------------------------- | --------------------------------- | ----------------------- | | Альбедо | Да | Нет | Нет | | Сглаживание | Да, или как линейная или воспринимаемая шероховатость | Да | Да | | f0/отражательная способность | Нет | | Постоянная | | Нормальная | Да | Нет | Да |
| Дополнительный компонент LabPBR 1.3 | Из пакета ресурсов | Включенный/процедурный | | ----------------------------- | ------------------------------ | -------------------------------------- | | Жестко заданный металл | Нет | Нет | | Пористость | Нет | Нет | | Подповерхностное рассеяние | Нет | Постоянное, только для полупрозрачной геометрии | | Излучательная способность | Нет | Да | | Окклюзия окружающей среды | Бинарная, для каждого блока (из модели) | Да | | Высота | Нет | Нет |
* Плавные, цветные тени в реальном времени и объемное освещение с использованием искаженного отображения теней. * Цветной блочный свет с физически корректными отражениями, созданный с помощью списка источников света в сочетании со стандартным освещением и средним цветом текстуры. * Трассировка лучей для каждого источника света. * Широкий спектр высокооптимизированных эффектов постобработки, включая реализацию вычислительных шейдеров FidelityFX Contrast Adaptive Sharpening, SMAA 1x из SMAA-MC, автоматическую экспозицию и различные операторы тонального отображения. * Настраиваемая прозрачность волн и воды. * Встроенные вспомогательные функции, такие как визуализация уровня освещенности и наложение компаса.
Совместимость с модами и ресурс-паками
Большая часть встроенной PBR-информации, включая цвета света, нормали материалов и шероховатость, генерируется практически полностью процедурно и поэтому должна отлично работать с большинством ресурспаков и модов.
Интеграция с Distant Horizons и Voxy поддерживается в последней версии Minecraft, но носит экспериментальный и очень базовый характер. Полная поддержка планируется в будущем обновлении.
Поддержка модификаций, изменяющих конвейер обработки шейдеров Iris, таких как Chunks Fade In, носит экспериментальный характер и может вызывать проблемы, например, сбой компиляции пакета шейдеров.
Требования
Если у вас достаточно современное устройство, не использующее macOS, оно, вероятно, поддерживает все необходимое, но вам, возможно, потребуется обновить драйверы Iris и графической карты.
* Minecraft с поддержкой следующих функций: * `BLOCK_EMISSION_ATTRIBUTE` * `COMPUTE_SHADERS` * `CUSTOM_IMAGES` * `ENTITY_TRANSLUCENT` * `PER_BUFFER_BLENDING` * `SEPARATE_HARDWARE_SAMPLERS` * `SSBO` * Minecraft с поддержкой Minecraft. * Minecraft версии, указанной как поддерживаемая в релизе RenderPearl. Как правило, самая последняя поддерживаемая версия является наиболее стабильной.
Поддержка драйверов
| ОС | Драйверы | Поддержка | | ------- | ----------------- | --------- | | Linux | Mesa RadeonSI | Отлично | | Linux | Nvidia | Очень хорошо | | Linux | Mesa Zink/RADV | Хорошо | | Linux | Mesa Zink/Nvidia | Нестабильно | | Windows | AMD Adrenalin | Хорошо | | Windows | Nvidia Game Ready | Очень хорошо |
Протестированы только последние стабильные версии. Все остальные драйверы не тестировались. Пожалуйста, сообщайте о любых возникших проблемах.
Настройка и меню совместимости
Конфигурация по умолчанию и все значения, выбираемые с помощью профилей, предназначены для работы на всех системах, соответствующих требованиям пакета шейдеров. ТребованияХотя, возможно, вы сможете добиться более высокой производительности и качества, изменив некоторые из этих параметров. Имейте в виду, что некоторые значения могут привести к тому, что пакет шейдеров не скомпилируется, в этом случае вам просто нужно будет сбросить параметр. Обычно они отмечены красным ⚠.
Варианты, ограниченные реализацией
> Доступные значения и эффекты этих параметров зависят от ваших графических драйверов.
* Вместимость светового списка Это значение ограничено объемом памяти Local Data Share, доступной для каждой рабочей группы на вашем графическом процессоре. В зависимости от вашего графического процессора и драйверов, а также функций, включенных в параметр 16/8-битных типов, вы можете установить это значение значительно выше максимального значения, выбираемого в профилях (хотя нет смысла это делать, если список источников света не заполняется полностью, что обычно проявляется в мерцании света, поскольку это негативно влияет на производительность).
* 16/8-битные типы Использует дополнительные типы данных половинного и/или четвертного размера, предоставляемые расширениями OpenGL/GLSL, для уменьшения использования регистров, LDS и VRAM. Влияние на производительность варьируется в зависимости от оборудования и драйверов, поскольку преобразование между типами имеет свою стоимость, но операции с меньшими типами могут быть значительно быстрее.
* Тройной Мин/Макс Выполняет операции троичного минимума и максимума в отдельных вызовах функций, используя необязательное расширение OpenGL/GLSL `AMD_shader_trinary_minmax`, которое может позволить генерировать более оптимальные последовательности инструкций. Рекомендуется использовать это расширение всякий раз, когда это возможно.
* 32×16-битное умножение Выполняет умножение между 32-битными целыми числами и целыми числами в 16-битном диапазоне с использованием специальных функций, предоставляемых необязательным расширением OpenGL/GLSL `INTEL_shader_integer_functions`, которые могут быть быстрее, чем обычные операторы умножения 32-битных чисел. Рекомендуется использовать этот метод, когда это возможно.
* Неизменяемые константы Эта функция помечает все неизменяемые переменные шейдера как константы, что потенциально позволяет оптимизировать процессы. Она требуется спецификацией GLSL, но пока не поддерживается некоторыми графическими драйверами. Рекомендуется использовать её по возможности.
Дизайн и модификация RenderPearl
Исходный код RenderPearl предназначен для модификации и повторного использования. Он написан в соответствии с лучшими практиками, насколько это в моих силах, но с приоритетом производительности над читаемостью. Если у вас возникнут какие-либо вопросы о его работе, не стесняйтесь обращаться ко мне на любой платформе.
Техническую информацию можно найти в репозитории GitHub.
Напишите нам в чат или Email
Это единственные страницы проекта RenderPearl, созданные мной:
* Modrinth * CurseForge * Planet Minecraft * GitHub
Если вы хотите распространять RenderPearl или просто рассказывать о нём, я был бы очень признателен, если бы вы разместили ссылку хотя бы на один из них, причём Modrinth — самый важный из них.