Material Maker 正弦波(Sine Wave)图案节点:参数含义与着色器实现原理
桌面应用图形学3D渲染图像处理【免费下载链接】material-makerA procedural textures authoring and 3D model painting tool based on the Godot game engine项目地址https://gitcode.com/gh_mirrors/ma/material-maker点击查看免费下载本文面向 Material Maker 用户与 Godot 开发者围绕 Pattern 节点族中的Sine Wave节点展开完整讲解其输入输出约定、amplitude/frequency/phase三个参数的作用范围与默认值并结合节点模板文件中的 GLSL 表达式剖析其灰度波形生成的底层原理帮助你精确控制波形形态并理解.mmg节点模板的编写规范。节点概览一个零输入的灰度波形生成器Sine Wave 节点属于 Material Maker 的 Pattern图案节点族。根据 nodes_pattern.rst 中的定义Pattern 节点是典型的生成器节点generator nodes它们不接受任何输入直接生成一张或多张图像。Sine Wave 正是这一类节点的代表其功能一句话即可概括——输出一张灰度正弦函数波形图。在节点库中它注册于Pattern/Sine Wave分组下显示名为 Sine Wave类型为sine_wave其注册条目位于 base.json{ display_name: Sine Wave, icon: pattern_sine_wave, name: sine_wave, parameters: { amplitude: 0.5, frequency: 2.0, phase: 0.0 }, tree_item: Pattern/Sine Wave, type: sine_wave }从节点库把 Sine Wave 拖入画布时它会以amplitude 0.5、frequency 2.0、phase 0.0作为初始参数值。上图为节点在编辑器中的实际形态标题栏显示节点名 Sine Wave主体面板中只有三个参数滑块Amplitude、Frequency、Phase没有输入端口符合其零输入生成器的定位。输入与输出约定根据关联文档 node_pattern_sine_wave.rst 及节点模板定义输入InputsSine Wave 节点不接受任何输入。它不依赖其他节点的数据属于纯粹的图案源节点可作为节点图中图案生成的起点。输出Outputs节点生成单个灰度输出纹理grayscale output texture。在 nodes_common.rst 中说明灰度图像输出在节点图中以灰色端口表示并且灰度、彩色与 RGBA 类型的输入/输出可以互相连接并自动完成转换——因此该节点的灰度输出可以直接接入其他节点的灰度、彩色甚至 RGBA 输入端口。其输出效果如下图所示node_sine_wave_samples.png可以看到输出是一幅横贯图像的水平波形条纹图波线所在位置呈现高亮接近白色偏离波线越远灰度越暗形成类似示波器波形的灰度带。三个参数详解振幅、频率与相位Sine Wave 节点的全部可调参数只有三个均由节点模板 sine_wave.mmg 中的shader_model.parameters数组声明。下表汇总了官方声明包含 longdesc 原始说明中的取值范围与默认值参数含义来自官方 longdesc最小值最大值默认值步进amplitude振幅正弦波函数的振幅010.50.01frequency频率正弦波函数的频率即生成图像中显示的振荡次数01611phase相位正弦波函数的相位偏移0100.01结合源码定义逐项说明其实际效果amplitude振幅在公式中amplitude直接乘以正弦项见下文公式控制波峰与波谷偏离图像中心线的距离。振幅越大波峰越高、波谷越低图像中波形的摆动幅度越大振幅为 0 时正弦项消失输出退化为一条位于图像中线的恒定亮线。声明范围为0 ~ 1步进0.01默认0.5。frequency频率官方 longdesc 明确说明其语义是生成图像中显示的振荡次数the number of oscillations shown in the generated image。取值范围0 ~ 16、步进1、默认1。每增加 1波形在图像宽度范围内多完成一个完整周期。这也是 Pattern 系列中通用的重复次数式频率语义。phase相位相位偏移取值范围0 ~ 1、步进0.01、默认0。需要注意其取值单位在着色器公式中相位会被乘以2π因此phase 每增加 1 相当于在 x 方向平移一个完整周期2π 弧度。利用该参数可以让波形在水平方向上整体平移或与其他节点/时间变量配合制作动画。底层实现模板文件中的 GLSL 输出表达式Sine Wave 节点的图形化参数背后实际是节点模板shader_model.outputs中一段完整的 GLSL 表达式。模板文件 sine_wave.mmg 中输出端口定义为{ f: 1.0-abs(2.0*($uv.y-0.5)-$amplitude*sin(($frequency*$uv.x$phase)*6.28318530718)), longdesc: Shows a grayscale image of a sine wave, shortdesc: Output, type: f }这段表达式是理解该节点行为的关键逐项拆解如下坐标映射2.0*($uv.y-0.5)将 UV 坐标的 y 分量从[0, 1]线性映射到[-1, 1]使图像中心线y 0.5对应数值 0。波形构造$amplitude*sin((...)*6.28318530718)是标准的正弦振荡。其中常量6.28318530718即2π一个完整周期这与 Godot/GLSL 中TAU 2.0*PI的惯用定义一致可参见 buffer_compute.tres 中的const float TAU 2.0*PI;。频率乘在$uv.x上控制周期数相位做整体平移。灰度映射对映射后的 y 值与正弦值之差取绝对值再用 1 减去。其结果是恰好落在波形线上的像素输出为 1白色偏离波形线越远输出越接近 0黑色从而把数学曲线渲染成肉眼可见的灰度波形带。模板文件中还完整声明了三个参数的元数据label、shortdesc、longdesc、min/max/step/default并给出节点级别的描述节点 longdescDraws a grayscale sine wave pattern节点 shortdescSine wave pattern从.mmg模板到实际渲染参数如何被注入着色器shader_model.outputs[].f中的$amplitude、$frequency、$phase是参数占位符。Material Maker 的引擎在渲染时会将其替换为实际数值数值或 GLSL 表达式结果再交给计算着色器执行最终输出为灰度纹理。这一机制体现在引擎核心 gen_base.gd 中get_parameter()优先读取节点实例保存的参数值否则回退到模板声明的defaultcalculate_float_parameter()支持把参数值当作 GLSL 表达式求值这正是 nodes_common.rst 中提到的float 参数支持以$前缀引用其他参数/命名参数的表达式功能并支持$rnd()/$rndi()随机函数与$time动画变量。渲染流程由render_output_to_texture()gen_base.gd驱动生成着色器源码 → 交给MMComputeShader→ 渲染到指定尺寸的MMTexture。因此 Sine Wave 节点本质上是一条零输入 → 单灰度输出的计算着色器链路。由于该节点属于零输入的生成器接入方式非常自由它的灰度输出可以直接驱动各类纹理节点的输入端口例如与色带Colorize节点结合把波形映射为彩色条纹、与位移/法线相关节点结合生成起伏表面或与数学运算节点组合调制出更复杂的图案。需要更多波形形态时Pattern 节点族中的通用 Pattern 节点还提供了 Sine、Triangle、Square、Sawtooth 等多种波形以及 XY 组合函数见 node_pattern_generic.rst可与 Sine Wave 节点互为补充。小结Sine Wave 是 Material Maker 中最简单直接的波形图案生成器无输入、单灰度输出仅靠amplitude振幅、frequency频率/振荡次数、phase相位/周期平移三个参数即可精确控制波形。其输出由模板 sine_wave.mmg 中的 GLSL 表达式1.0-abs(2.0*($uv.y-0.5)-$amplitude*sin(($frequency*$uv.x$phase)*6.28318530718))决定灰度值表示像素与波线的距离。节点注册于 base.json 的Pattern/Sine Wave分组参数表达式机制与渲染链路由 gen_base.gd 等引擎源码支撑可作为自定义 Pattern 类节点的编写参考。赞分享桌面应用图形学3D渲染图像处理【免费下载链接】material-makerA procedural textures authoring and 3D model painting tool based on the Godot game engine项目地址https://gitcode.com/gh_mirrors/ma/material-maker点击查看免费下载相关推荐Material Maker 剪切Shear节点完全指南原理、参数与着色器实现Material Maker 剪切Shear节点完全指南原理、参数与着色器实现 导读 本文以 Shear 节点官方文档 https://link.git桌面应用图形学3D渲染图像处理Material Maker 中 Adjust HSV 节点的参数与 HSV 着色器实现解析Material Maker 中 Adjust HSV 节点的参数与 HSV 着色器实现解析 Material Maker 是一款基于 Godot 引擎的程序化桌面应用图形学3D渲染图像处理Material Maker Edge Detect 节点详解四款边缘检测滤镜的参数与着色器实现原理Material Maker Edge Detect 节点详解四款边缘检测滤镜的参数与着色器实现原理 Material Maker基于 Godot 的过程式桌面应用图形学3D渲染图像处理创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

给大模型装上长期记忆:claude-mem跨会话记忆层实现指南

给大模型装上长期记忆:claude-mem跨会话记忆层实现指南

每次新开会话,我都得像重新入职第一天那样,把名字、技术栈、正在做的项目、甚至喝咖啡还是喝茶的习惯事无巨细再交代一遍。跟对话模型聊天时间越久,这个感觉就越强烈——它明明几分钟前还跟你讨论到某个方案的关键细节,换个会话再…

2026/10/12 11:34:30 阅读更多 →
claude-mem:为Claude Code装上持久化记忆,打破会话失忆困境

claude-mem:为Claude Code装上持久化记忆,打破会话失忆困境

如果你一直在用 Claude 做开发,一定遇到过这种体验:聊了一下午终于把 bug 根因和修复方案全部理清,关掉终端去泡了杯咖啡,回来继续干的时候,它像初次见面的陌生人,昨天的结论一条都不记得。头一回遇到这种情…

2026/10/12 11:34:30 阅读更多 →
四旋翼欠驱动控制与轨迹规划难点解析:建模、级联控制到状态估计

四旋翼欠驱动控制与轨迹规划难点解析:建模、级联控制到状态估计

空中机器人这门课我是在学完基础控制和刚体运动学之后才碰的,前后拖了三周才把那两周的作业完整啃完。第34周表面上看是一个“建模—控制—规划”的推进过程,真正难的地方却在于:所有公式背后都默认你已经理解了“四旋翼是一个欠驱动系统”这…

2026/10/12 11:34:30 阅读更多 →

最新新闻

Scrapy日志系统实战:配置、优化与常见问题排查

Scrapy日志系统实战:配置、优化与常见问题排查

1. 为什么日志系统是爬虫项目的生命线做爬虫的朋友大概都有过这种经历:脚本跑了一整夜,早上起来一看,数据没入库,控制台一片空白,或者满屏都是红色的报错信息,但你根本不知道是哪一步出了问题。更让人头疼的…

2026/10/12 13:19:27 阅读更多 →
Ubuntu离线中文语音识别实战:从环境搭建到效果调优

Ubuntu离线中文语音识别实战:从环境搭建到效果调优

1. 为什么要在 Ubuntu 上折腾离线中文语音识别把语音转文字这件事放到本地来做,最直接的驱动力就三个字:可控性。在线接口用起来确实省事,但一旦网络抖动、服务限流、或者你处理的音频本身就不适合往外传,整条链路立刻卡死。我最早…

2026/10/12 13:19:26 阅读更多 →
Jaspersoft Studio 7.0.6 环境配置全指南:JDK8、JDBC驱动与中文字体嵌入

Jaspersoft Studio 7.0.6 环境配置全指南:JDK8、JDBC驱动与中文字体嵌入

简介:Jaspersoft Studio 7.0.6 是面向企业级报表开发者的专业BI报表设计IDE,专为高效构建、调试与部署JasperReports报表而优化,适用于Java开发者、BI工程师及需要深度定制报表逻辑的中高级技术用户。资源包共1346个文件,含413个j…

2026/10/12 13:19:26 阅读更多 →
开源代码评审工具实战:从流程标准化到自动化检查的完整落地指南

开源代码评审工具实战:从流程标准化到自动化检查的完整落地指南

1. 为什么团队需要一套开源代码评审方案先说一个我在多个项目里反复撞见的场景:代码评审完全靠口头沟通,开发同事在群里喊一句"帮我看看这个分支",然后几个人围在屏幕前你一言我一语,当场改完就提交合并。整个过程没有记…

2026/10/12 13:19:26 阅读更多 →
蓝桥杯四平方和:从O(N²)暴力到O(N)哈希与数组优化

蓝桥杯四平方和:从O(N²)暴力到O(N)哈希与数组优化

1. 从一道竞赛题看算法优化的本质四平方和定理是数论里一个很经典的结论:任何一个正整数都能表示成四个整数的平方和。这个结论早在几百年前就被拉格朗日证明过了,但把它搬进编程竞赛里,就变成了另一回事——不是让你证明存在性,而…

2026/10/12 13:19:26 阅读更多 →
不得不看!OpenClaw 爆火背后的三个真相与 TaoToken 统一 Key 接入实践

不得不看!OpenClaw 爆火背后的三个真相与 TaoToken 统一 Key 接入实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 13:18:25 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →