littlebot
Published on 2025-04-15 / 0 Visits
0

【源码】基于SFML和ImGui库的UV纹理分割与着色器生成系统

项目简介

本项目是基于SFML和ImGui库构建的图形应用程序,主要处理UVBSP算法。可对UV纹理进行二进制分割分区,将纹理岛分割成不同片段,为每个片段分配索引,设置独特颜色或参数。还支持导出着色器代码,用于Unreal引擎等环境的光照贴图计算。

项目的主要特性和功能

  1. UV纹理分割:将纹理的UV岛分割成多个片段并分配独立索引。
  2. 参数设置:为分割后的片段设置单独颜色或其他参数。
  3. 着色器代码导出:支持导出GLSL、HLSL或Unreal格式的着色器代码,复制到剪贴板并打印到控制台。
  4. 图形界面操作:利用ImGui库创建友好图形用户界面,含菜单、按钮等。
  5. 文件操作:支持项目的保存与打开,保存分割结果到特定文件格式,也可加载已有项目。
  6. 实时渲染展示:实时更新并渲染UVBSP树,展示分割结果。
  7. 艺术绘制与导出:允许用户进行艺术绘制并将结果导出到ShaderToy。

安装使用步骤

环境准备

安装SFML库和ImGui库,正确配置环境变量。

项目获取

已从代码仓库下载本项目的源码文件。

编译项目

使用合适的C++编译器(如Visual Studio、GCC等)编译源代码。

运行项目

运行编译后生成的可执行文件,打开应用程序界面。

具体操作

  1. UV分割:对纹理的UV岛进行分割,尽量使树的左右分支数量相近。
  2. 导出代码:按Ctrl + Shift + E,再按G(GLSL)、H(HLSL)或U(Unreal)导出相应格式的着色器代码。
  3. 保存与打开项目:按Ctrl + S保存项目,按Ctrl + O打开已保存的项目文件。
  4. 艺术绘制与导出:进行艺术绘制,完成后将结果导出到ShaderToy。

注意:项目依赖SFML和ImGui库,编译和运行前需确保正确配置这些库的路径和依赖关系。同时,GPU常量寄存器大小会限制分割数量。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】