适用于Iris的现代轻量级着色器
RenderPearl是一款极其轻量的着色器包,它运用了最新的Iris和GLSL特性,旨在在现代硬件上以卓越的性能呈现赏心悦目的图形效果。
目前它 仅 在NVIDIA显卡驱动上进行过测试。如果你想报告漏洞或提供反馈/建议,最简单的方式是在此处或在Planet Minecraft(PMC)页面留下评论,或者在GitHub问题追踪器上提交问题。在修复漏洞和设计过程中,我非常依赖用户反馈。
这个项目最初是作为“Luracasmus Shaders”的延续(这就是为什么你可能曾看到它被称为“LS RenderPearl”),但现代版本与原始项目几乎没有代码上的共享。当所有部分都被替换后,问题就来了:它是否还是同一个着色器包呢?
“RenderPearl”这个名字的灵感来源于基岩版的RenderDragon引擎。
特性
- 使用简单的阴影映射和双向反射分布函数(BRDF)反射实现详细、带色彩的实时阴影和体积光
- 基于彩色光索引的方块光,并带有BRDF反射
- 一系列几乎零成本的后期处理效果,包括FidelityFX对比度自适应锐化以及多种色调映射操作
- SMAA 1x
- 轻量级高质量抗锯齿,保持清晰度和锐利度
- 基于SMAA-MC实现
- 动态色彩分级会自动调整曝光、黑点和色彩平衡,以提高可见度并更充分地利用显示器有限的色域范围
- 可自定义的原版环境光遮蔽
- 可选的发光红石、青金石和绿宝石方块
- 可自定义的波浪和水的不透明度
- 支持高光和法线贴图,以及自动生成的法线和粗糙度值
- 内置实用功能,如光照等级可视化和罗盘叠加
- 还有更多……
要求
如果你拥有一台性能尚可的非macOS设备,它很可能支持你所需的一切,但你可能需要更新Iris和显卡驱动。
- Iris 1.8+ 及以下特性:
- BLOCK_EMISSION_ATTRIBUTE
- COMPUTE_SHADERS
- CUSTOM_IMAGES
- ENTITY_TRANSLUCENT
- SEPARATE_HARDWARE_SAMPLERS
- SSBO
- GLSL 4.60.8+
调整与兼容性菜单
默认配置以及通过配置文件可选的所有值,旨在适用于所有满足该着色器包 要求 的系统。不过,你或许可以通过更改某些选项来获得更高的性能和质量。请注意,某些值可能会导致着色器包无法编译,在这种情况下,你只需重置该选项即可。这些选项通常会标有⚠。
受实现限制的选项
这些选项的可用值和效果取决于你的OpenGL和GLSL实现。
索引大小 受限于你的GPU每个工作组可用的本地数据共享内存量。根据你的GPU和显卡驱动,以及16/8位类型选项启用的特性,你也许能够将此值设置得显著高于配置文件中可选的最大值(不过,如果索引未被完全填满,通常表现为灯光闪烁,那么这样做就没有意义,因为这会对性能产生负面影响)。
16/8位类型 使用可选的OpenGL扩展提供的半尺寸和/或四分之一尺寸数据类型,以减少寄存器、本地数据共享(LDS)和显存的使用。性能影响因硬件和驱动而异,因为类型之间的转换有一定开销,但使用较小类型的操作可能会显著加快。
三元最小/最大 使用可选的AMD_shader_trinary_minmax OpenGL扩展,在单个函数调用中执行三元最小和最大操作,这可能允许生成更优化的指令序列。建议尽可能使用此选项。
32×16位乘法 使用可选的INTEL_shader_integer_functions OpenGL扩展提供的特殊函数,在32位整数和16位可表示范围内的整数之间执行乘法,这可能比常规的32位乘法运算符更快。建议尽可能使用此选项。
不可变常量 将所有可以设置为不可变的着色器变量标记为常量,这可能实现更好的优化。此功能是GLSL规范所要求的,但在某些显卡驱动上仍不受支持。建议尽可能使用它。
RenderPearl的设计与修改
RenderPearl的源代码旨在可修改和可复用。我尽我所能按照最佳实践编写代码,但优先考虑性能而非可读性。如果你对其工作原理有任何疑问,欢迎在任何平台上联系我。
技术信息可在GitHub代码库中找到。
- 基于v2.2.0-beta.3的索引方块光系统说明:GitHub Gist
- 基于RenderPearl的扩展支持和兼容性前奏:GitHub Gist
此页面、Modrinth页面、PMC页面以及GitHub代码库都是我制作的RenderPearl项目页面。 如果你想分发RenderPearl,或者只是宣传它,若你能至少链接到其中一个页面,最好是Modrinth页面,我将不胜感激。
Modern, lightweight shaders for Iris
RenderPearl is an incredibly lightweight shader pack using the latest Iris and GLSL features, aiming to deliver pleasant graphics with excellent performance on modern hardware
It is currently only tested with NVIDIA graphics drivers. If you want to report a bug or give feedback/suggestions, the easiest way to do so is by leaving a comment here or on the PMC page, or opening an issue on the GitHub issue tracker. I rely heavily on user feedback in bug fixing and design
This project started as a continuation of "Luracasmus Shaders" (which is why you might have seen it called "LS RenderPearl"), but modern versions share little to no code with the original project. The question remains as to whether the same shader pack remains throughout, when all parts are replaced
The name "RenderPearl" is inspired by the Bedrock Edition RenderDragon engine
Features
- Detailed, colored real-time shadows and volumetric light using simple shadow mapping and BRDF reflections
- Colored light index-based block light with BRDF reflections
- A wide range of almost zero-cost post-processing effects, including FidelityFX Contrast Adaptive Sharpening and a variety of tone mapping operators
- SMAA 1x
- Lightweight high-quality anti-aliasing preserving sharpness and clarity
- Implementation based on SMAA-MC
- Dynamic Color Grading automatically adjusts exposure, black point and color balance to improve visibility and more fully utilize the display's limited range
- Customizable Vanilla Ambient Occlusion
- Optionally emissive Redstone, Lapis and Emerald Blocks
- Customizable waves and water opacity
- Specular and normal map support as well as automatically generated normals and roughness values
- Built-in utility features such as light level visualization and a compass overlay
- And more…
Requirements
If you have a decently modern non-macOS device it probably supports everything you need, but you might have to update your Iris and graphics drivers
- Iris 1.8+ with features:
- BLOCK_EMISSION_ATTRIBUTE
- COMPUTE_SHADERS
- CUSTOM_IMAGES
- ENTITY_TRANSLUCENT
- SEPARATE_HARDWARE_SAMPLERS
- SSBO
- GLSL 4.60.8+
Tuning & The Compatibility Menu
The default configuration and all values selectable with profiles are intended to work on all systems that meet the shader pack's Requirements, though you may be able to achieve higher performance and quality by changing some of these options. Beware that some values may cause the shader pack to not compile, in which case you simply have to reset the option. These are usually marked with a ⚠
Implementation-Limited Options
The usable values and effects of these options depend on your OpenGL and GLSL implementations
Index Size is limited by the amound of Local Data Share memory usable per work group on your GPU. Depending on your GPU and graphics drivers, and the features enabled by the 16/8-Bit Types option, you may be able to set this significantly higher than the maximum value selectable with profiles (though there is no reason to do so if the index isn't being filled completely, usually indicated by lights flickering, as it impacts performance negatively)
16/8-Bit Types uses optional OpenGL extension-provided half- and/or quarter-sized data types to reduce register, LDS and VRAM usage. Performance impact varies depending on hardware and drivers, as conversion between types has a cost, but operations with smaller types can be significantly faster
Trinary Min/Max performs trinary minimum and maximum operations in singular function calls using the optional AMD_shader_trinary_minmax OpenGL extension, which may allow generation of more optimal instruction sequences. It's recommended to use this whenever possible
32×16-Bit Multiplication performs multiplication between 32-bit integers and integers in the 16-bit-representable range using special functions provided by the optional INTEL_shader_integer_functions OpenGL extension, that may be faster than regular 32-bit multiplication operators. It's recommended to use this whenever possible
Immutable Constants marks all shader variables that can be immutable as constant, possibly enabling better optimizations. This feature is required by the GLSL specification, but still unsupported on some graphics drivers. It's recommended to use it whenever possible
Design & Modding RenderPearl
RenderPearl's source code is intended to be modifiable and re-usable. It's written according to best practice to the best of my ability, but prioritizing performance over readability. If you have any questions about how it works, feel free to contact me on any platform
Technical information can be found in the GitHub repository
- Explanation of the Indexed Block Light system based on v2.2.0-beta.3: GitHub Gist
- Extension support and compatibility prelude based on RenderPearl: GitHub Gist
This, the Modrinth page, the PMC page and the GitHub repository are the RenderPearl project pages made by me. If you want to distribute RenderPearl, or just spread the word of it, I would greatly appreciate if you would link to at least one of them, preferrably Modrinth
本站是资源分享站,资源均来自于互联网和用户自发分享,仅供学习和交流使用。如有版权问题,请联系管理员删除。
操作
创作者
待认领资源
成为此资源的创作者
其他链接
最近更新资源
新:模拟大都市
275次下载 | 1 小时前更新
【CAF】齿轮与腐肉
236次下载 | 1 天前更新
剑与王国
452次下载 | 1 天前更新
天煞孤星·魔女的末路
43次下载 | 3 天前更新
锻造之旅
14715次下载 | 1 周前更新
虚饰作品-Fictional
60次下载 | 1 周前更新
无限遗产II - Infinity Legacy II
34次下载 | 2 周前更新
耕云钓月 - Kumo O Tagayasu
30次下载 | 2 周前更新
机械动力:工业与牧歌 - Create: Industry and Pastoral
58次下载 | 2 周前更新
Immersed With Shaders
44次下载 | 3 周前更新
石头世界4 FTB StoneBlock 4
75次下载 | 3 周前更新
阳光谷 - Society: Sunlit Valley
55次下载 | 3 周前更新
评论区 (0)
登录 后才能发表评论
快来发表第一条评论吧!