NoodlesPlate
NoodlesPlate是一款离线着色器编辑器。
其特点是为用户提供多种类型的小部件,让您轻松实时调整着色器。
整个系统的设计让用户可以选择自己的文本编辑器。NoodlesPlate在每次代码更改(文件保存)后更新所有界面。
如果您想了解更多信息,可以查看wiki。
一些可用功能:
- 多种统一变量小部件:
- 滑块
- 按钮
- 复选框
- 下拉框
- 单选按钮
- 时间/日期/时间增量
- 帧
- 变换控件(平移/旋转/缩放),通过ImGuizmo实现
- 游戏手柄(在设置对话框中调整和分配游戏手柄按钮/摇杆)
- 鼠标
- 颜色选择器
- MIDI设备
- 时间轴,方便创建动画(基于Blender 3D的行为)
- 将所有帧导出为图片
- 可折叠/展开的统一变量部分,或隐藏(在代码中定义)
- 顶点/片段/几何/曲面细分控制/曲面细分评估着色器 => 全部在一个文件中
- 图元实例化
- 代码内配置(可在界面中选择)
- 包含文件
- 多通道渲染:
- 在多个文件中
- 或在一个文件中
- 计算着色器 => 尚未完成,仅支持2D/3D纹理,不支持网格生成
- 导入ShaderToy / GlslSandbox / VertexShaderArt
- 现在可以将ShaderToy导入到单个文件中
- 多附件缓冲区
- 统一变量配置切换器 => 允许保存/加载统一变量配置文件
- 通过变换控件实现图元剔除系统
- 网格与SDF合并
- 世界相机(透视/正交)在您的着色器中
- 全屏窗口或完全全屏
- 透明窗口(通过着色器的alpha值控制)
- 为每次代码修改保存图片(让您创建着色器设计的视频)
- 像素调试,提供RGBA值检查(通过鼠标,屏幕上的下划线)
- 检查GPU指标(温度/负载/内存等,目前仅支持NVIDIA)
- GPU实时性能分析器(火焰图类型)
- 支持变换反馈,从顶点/几何/曲面细分阶段提取网格
- 高级UI系统,可将面板提取到窗口(得益于Dear ImGui的停靠/视口系统)
- 高级主题系统(得益于Dear ImGui)
- 支持VR(通过OpenXR):
- 左侧工具栏有一个按钮可启用/禁用VR
- 在屏幕上显示左眼视图
- 支持控制器:
- 通用手柄(已测试 => 确认)
- Oculus Touch(已测试 => 确认)
- Valve Index(未测试 => 但应该能正常工作)
- 当启用VR相机控制并且仅在按下侧边扳机时,相机可以通过VR控制器控制:
- 左控制器摇杆X轴可用于相机滚动(Z轴)
- 左控制器扳机可用于向后移动相机
- 右控制器扳机可用于向前移动相机
- 右控制器摇杆上/下可用于相机俯仰(X轴)
- 右控制器摇杆左/右可用于相机偏航(Y轴)
- 扳机、摇杆和侧边扳机作为统一变量可用。 如果未启用VR相机控制,可以使用侧边扳机 查看左侧工具栏中的帮助,了解统一变量语法
计划中的功能:
- 节点图(进行中,不稳定)
- 视频/音频(播放/录制)
- BVH播放器用于统一变量
二进制文件 => https://github.com/aiekick/NoodlesPlate/releases
已测试并成功构建于:
- Win 7 x64(32位/64位版本)
- Win 10 x64(64位版本)
- Linux Debian/Ubuntu(32位/64位版本)
- Linux Debian/RaspberryOs(x86/x64版本)
- macOS Mojave(x86版本)
要求
- CMake
- OpenSSH
- C++17
如何构建
第一步:克隆仓库并初始化子模块
git clone https://github.com/aiekick/NoodlesPlate.git
cd NoodlesPlate
git submodule update --init --recursive
第二步:使用CMake构建
您需要使用CMake。 对于三种操作系统(Windows、Linux、macOS),CMake的使用方法完全相同。
- 选择一个构建目录。(这里以 my_build_directory 为例)
- 选择一个构建模式:"Release" / "MinSizeRel" / "RelWithDebInfo" / "Debug"(这里以 BuildMode 为例)
- 在控制台中运行 cMake:(第一条命令用于生成 cmake 构建文件,第二条命令用于构建二进制文件)
cmake -B my_build_directory -DCMAKE_BUILD_TYPE=BuildMode
cmake --build my_build_directory
Windows 系统:
你需要安装 opengl 库
Linux 系统:
你需要多个库:(X11, xrandr, xinerama, xcursor, mesa)
如果你使用的是 Debian 系统,可以运行:
sudo apt-get update
sudo apt-get install libssl-dev libgl1-mesa-dev libx11-dev libxi-dev libxrandr-dev libxinerama-dev libxcursor-dev libasound2-dev
MacOS 系统:
你需要多个库:opengl, openssl 和 cocoa 框架
许可证:
NoodlesPlate 是一个开源软件,采用 GPL-3.0 许可
使用的库:
- Glfw - ZLIB
- Dear ImGui - Docking 分支 - MIT
- Glad - MIT
- Stb - MIT
- tinyxml2 - ZLIB
- cTools - MIT
- ImGuiFileDialog - MIT
- Curl - MIT
- ImGuizmo MIT
- imgui_markdown MIT
- AlphaNum MIT
一些截图:
NoodlesPlate v0.6.660
VR 模式(在屏幕上显示左眼视图),使用 Shane 的 Dual 3D Truchet Tiles 着色器
NoodlesPlate v0.5.897
NoodlesPlate v0.1.3075