example
example

资源 FiveM NUI GLSL PoC | 开发资源

Yann

站长
管理成员
GTAOS管理组
认证卖家
认证用户
本 月 名 人 榜 最 佳

FiveM GLSL渲染POC来操控游戏画面。​

7d6cff183b79fbeda4437125422a2c58316fcb05.gif

概述​

该项目演示了在游戏渲染中应用基于 GLSL 的模糊效果的概念验证 (POC)。它使用 WebGL 在游戏用户界面上的指定元素上创建可自定义的实时模糊效果。

功能(内置)​

  • GLSL 支持
  • 支持圆形和矩形模糊区域
  • 使用 GLSL 着色器实现实时模糊效果
  • 可自定义模糊强度
  • 响应式适应窗口大小调整

实现细节​

该项目由三个主要文件组成:

  1. index.html:定义基本结构和模糊效果元素
  2. gamerender.js:包含 glsl 和模糊效果逻辑的 WebGL 实现
  3. styles.css:基本 CSS 样式(例如)
或者将其包含gamerender.js在您的项目中!

  1. gamerender.js:包含在您的项目中
  2. 在您希望 glsl 渲染的位置设置数据值data-hlsl
  3. 控制强度的示例data-blur-strength="5"

工作原理(示例:玻璃态/模糊)​

该脚本创建了一个 WebGL 上下文,并在指定元素后面渲染游戏屏幕的模糊版本。它使用片段着色器应用高斯模糊效果,该效果可针对每个元素进行自定义。

用法​

要将模糊效果应用于元素,请添加以下数据属性:

  • data-hlsl:标记要应用模糊效果的元素
  • data-blur-strength="5":设置模糊强度(可选,默认为 5)
例子:



HTML:
<div id="glass-square" data-hlsl data-blur-strength="20"></div>

<div id="glass-circle" data-hlsl data-blur-strength="5"></div>


性能注意事项​

需要注意的是,这在某种程度上是一种不成熟的解决方案,并不适合长期使用。性能影响可能很明显,尤其是在低端系统上或多个模糊区域处于活动状态时。

实现此效果时请考虑以下事项:

  • 谨慎使用,仅在必要时使用
  • 调整resolutionScale配置以平衡质量和性能(这主要用于使用模糊着色器)
  • 监控帧速率并进行相应调整

示例​

以下是我如何使用此资源的一些示例!

玻璃态效应!​

1724559948498.png1724559953137.png
1724559959656.png
1724559966786.png

其他效果​

1724559978153.png1724559982992.png

动画效果​

gif.gif


配置​

config中的对象允许gamerender.js您调整各种参数:



lua:
const config = {

resolutionScale: 0.5, // Scale of the rendering resolution i would keep this at 0.2-1.0

defaultBlurStrength: 5.0, // Default blur strength

zindex: '-1', // z-index of game render

renderColour: [0.0, 0.0, 0.0, 0.0], // RGBA (for debugging cutouts)

maxBlurSize: 20, // Maximum blur size (affects performance and quality)

};


结论​

此 GLSL 支持效果提供了一种独特的方式来增强 FiveM NUI 的视觉吸引力。但是,由于其对性能有影响,因此应谨慎使用,并仔细考虑目标受众的硬件能力。

还请注意,“撕裂”是画布渲染时出现的问题(如果客户端游戏的性能良好,则这几乎是不可见的)

随意尝试不同的配置并创建新的 glsl 着色器!

如果您在 FiveM 平台上使用它,请提及我<3
我很想看看您的用例!

享受我的混乱吧!​

gtasnail/fivem-glsl:在 FiveM 客户端游戏屏幕上运行 glsl 的 POC
 
顶部