通用型 driftwm 物理锁死与真缩放 GLSL 壁纸 Prompt
请为我编写一个运行在 Linux 窗口管理器(如 driftwm 背景环境)下的顶尖级 GLSL Fragment Shader 壁纸。
这个 Shader 必须严格遵循以下【硬件与数学对齐规范】,以确保在无限画布漫游和双指捏合缩放时,图形具有完美的物理连续性:
### 1. 🛠️ driftwm 视口与画布物理锁死(通用公式)
- 必须引入:#extension GL_OES_standard_derivatives : enable
- 输入 uniforms 声明且仅使用:
uniform vec2 size; // 屏幕窗口实时像素宽高
uniform vec2 u_camera; // driftwm 相机世界平移绝对坐标
uniform float u_zoom; // driftwm 视口画布→屏幕物理真缩放系数
- 【核心像素级真缩放与漫游矩阵】:
必须在 main() 顶层将屏幕归一化比例还原为绝对像素,融入 u_camera 和 u_zoom。为了防止缩放时图形反向、卡死在左上角或缩放圆心漂移,必须对齐以下原厂规范公式:
vec2 screenCenter = v_coords * size - size * 0.5;
vec2 p = (screenCenter + u_camera * u_zoom) / (min(size.x, size.y) * u_zoom) * {缩放因子};
【注:后续所有的几何图形、纹理、格子的划分计算,必须严格基于这个平移缩放后的统一世界空间坐标 `p` 来展开。】
### 2. ⚡ 极客壁纸性能与渲染死命令
- 【单批次代数运算(Single-pass Math)】:严禁使用多重 for 循环、分形噪声(FBM循环)以及外部纹理采样(texture2D)。完全依靠纯数学代数(fract、floor、sin、cos、hash)实时生成几何,保证显卡占用率极低,适合作为壁纸长年后台挂机。
- 【拒绝任何软雾气与软渐变】:整个画面的图形、边缘、色彩碰撞必须具有 100% 的硬朗边缘。去除所有软过渡,洗掉塑料感,保持极致干净。
- 【细腻去断层噪点】:在 gl_FragColor 输出前,必须引入基于 v_coords 或 gl_FragCoord 的极轻微高频低幅噪点,消除色彩断层:col += (hash(v_coords) - 0.5) * (1.2 / 255.0);
### 3. 🎨 空间解构与层次美学(核心手法)
- 【双层/多层几何视差(Multi-layer Parallax)】:
画面必须分为前景(Foreground)与背景(Background)。前景的几何元件之间必须切出明显的“物理空气裂缝”(空气断层),通过裂缝隐约暴露出底层另一套尺寸、速度或颜色完全错开的“背景结构层”。
- 【纯几何侧翼切面(Geometric Thickness)】:
为了在不引入复杂光照和渐的前提下制造体积感和悬浮感,必须利用局部坐标(如局部 fract 范围),为几何元件的边缘切出纯色的“迎光切面(微幅提亮)”和“背光切面(微幅压暗)”,纯靠色块碰撞挤出物理厚度。
- 【利落纯黑硬投影(Clean Hard Shadows)】:
高低或前后错落的图形层级之间,必须使用最锋利的 step 函数切出绝对不模糊、干净利落的纯黑色几何硬阴影。
### 4. 📐 今日具体的图形风格与图案逻辑
[在此处替换你想要的图形,例如:
选项 A:包豪斯失重积木矩阵隧道,中心带有个代表无限深处的深邃小黑块洞口。
选项 B:纯平面的蒙德里安非对称方块大色块拼贴,随着缩放方块等比例变大变小。
选项 C:45度斜切构成主义的平整钢轨与夹层叠片,在空间中交错重叠。]
包豪斯 3D 悬浮回廊
请为我编写一个运行在 Linux 窗口管理器(如 driftwm 背景环境)下的顶尖级 GLSL Fragment Shader。
这个 Shader 必须严格遵循以下【硬件对齐规范】与【核心美学死命令】,不接受任何妥协:
### 1. 🛠️ 硬件与 driftwm 规范对齐
- 必须引入:#extension GL_OES_standard_derivatives : enable
- 输入 uniforms 必须声明且仅使用:
uniform vec2 size; // 屏幕窗口实时像素宽高
uniform vec2 u_camera; // 相机/视口世界平移绝对坐标
uniform float u_zoom; // 视口物理真缩放系数
- 【真缩放与抗漂移公式】:必须先进行屏幕像素居中映射,并将平移与缩放系数在最顶层打包:
vec2 screenCenter = v_coords * size - size * 0.5;
vec2 p = (screenCenter + u_camera * u_zoom) / (min(size.x, size.y) * u_zoom);
这能确保当双指捏合缩放/拖拽时,图形是以屏幕正中央为轴心,等比例、连续地产生“笔直走入/远离黑洞”的真 3D 视差穿梭感,绝不产生反向放大、位置偏歪或左上角卡死。
### 2. 📐 核心视觉死命令(拒绝平庸)
- 【只要直线,不要曲线】:完全删除任何 FBM 噪声循环、弯曲域扭曲(Warp)和软雾气。整个画面必须是绝对笔直、干净利落的 3D 矩形透视隧道结构。
- 【隧道核心小黑块】:通过限制深度/距离(如 z = 1.0/max(d, 0.0001)),在屏幕正中央留出一个代表无限深处的纯净、深邃的“小黑块”洞口,以此撑开极致的纵深。
- 【高性能长期挂机】:严禁使用多重 for 循环或复杂的纹理采样。利用纯单批次代数数学映射实时计算,确保显卡占用率极低,适合当作桌面壁纸长期常驻。
### 3. 🎨 终极重工业悬浮美学
- 【色彩体系】:使用极简通透的包豪斯(Bauhaus)高级平整纯色板(燕麦白、陶土砖红、普鲁士深蓝、赭石深黄、炭黑),各色块内部保持100%平整,无拉丝无软渐变。
- 【双层几何视差衬底】:前景方块四周必须通过 fract 切出 12% 左右的宽幅物理悬浮裂缝。裂缝中不能是一黑到底的死黑,必须隐约暴露出第二层尺寸更大、颜色更深(深蓝/炭黑交错)的平整几何矩阵底衬。
- 【离散 3D 立体失重矩阵】:
1. 引入方位角将隧道肢解为 24 条在纵深上异速、长短错落滑动(非对称拉伸)的纵向长轨。
2. 每一块单独的彩色方块必须拥有专属的离散深度值(voxelElevation),使其一前一后、或阶梯状向内塌陷/向外暴突,彻底断裂开来。
- 【纯几何多面立体折角与硬影】:
1. 严禁使用任何光照或软渐变。必须通过局部 UV 区域划分(如 frontMask 判定),为方块最外层侧壁切出纯色的“迎光面(1.15倍提亮)”和“背光面(0.68倍压暗)”,纯靠纯色块撞击挤出物理厚度感。
2. 高低阶梯错落处必须使用最锋利的 step 函数切出绝对不模糊、干净利落的黑色几何硬投影。