烟花显示设计软件
Pyrotechnic Display Design Software

原始链接: https://github.com/giuseppe-coco/FireShow

## FireShow:实时3D烟花模拟器 FireShow 是一款基于 C++ 和 OpenGL 的软件,用于设计和可视化 3D 烟花表演。它灵感源自专业工具,允许用户在实时环境中创建复杂的烟火秀。 主要功能包括用于逼真烟花模拟的高级粒子系统(带有级联轨迹)、预定义烟花类型库(如牡丹、柳树等)以及专门的编辑器,用于自定义烟花的颜色和速度等属性。交互式时间线便于精确同步事件,并结合使用 miniaudio 库集成音频效果。 该项目使用了 GLFW 库进行窗口管理,GLAD 和 GLM 库用于 OpenGL 功能,Dear ImGui 库用于用户界面,以及 stb_image 库用于纹理加载。它使用 `make` 系统构建,需要一个兼容 C++17 的编译器(如 g++)和 OpenGL 3.3+。提供了使用 MinGW-w64 的详细 Windows 设置指南,以便本地执行。

## FireShow:开源烟花设计软件 Giuseppe_Coco最近在Hacker News上分享了**FireShow**,这是一款使用C++和OpenGL构建的3D烟花展示设计和可视化软件。FireShow的灵感来自FWsim和Finale 3D等专业工具,它允许用户实时创建和可视化复杂的烟火效果。 讨论涉及了与过去展示中出现的“一次性全部点燃”错误相关的潜在安全问题(例如2012年圣地亚哥的事件),并提出了模拟测试环境以防止此类问题的建议。目前,FireShow纯粹是一个设计工具,但开发者计划将其与实际控制单元集成。 Giuseppe_Coco正在积极寻找贡献者,以帮助集成OpenStreetMap数据以创建逼真的环境,并改进软件的代码架构,该架构最初是由AI引导的。一位在烟火技术方面有经验的用户分享了行业见解,强调了安全、时机和现场表演的刺激性。该项目是开源的,引发了人们对通过WASM进行潜在的网络移植以提高可访问性的兴趣。
相关文章

原文

FireShow Demo

FireShow is a 3D fireworks display design and visualization software developed in C++ and OpenGL. Inspired by professional tools like FWsim and Finale 3D, this project allows designers to create, synchronize, and visualize complex pyrotechnic effects in a real-time 3D environment.

  • Real-Time 3D Viewer: A scene rendered with OpenGL
  • Advanced Particle System: Simulates the physics of various firework types, including cascading effects (trails) for enhanced realism.
  • Pre-defined Firework Types: Includes a library of classic effects such as Peonies, Chrysanthemums, Willows, and Volcanoes, ready to be used.
  • Firework Editor: An integrated user interface (built with Dear ImGui) that allows creating and modifying the properties of each firework type (color, velocity, particle count, etc.).
  • Interactive Timeline: A control panel for placing pyrotechnic events on a timeline, with full playback controls (play, pause, reset).
  • Integrated Audio: Each effect can be associated with launch and explosion sounds for a more immersive experience, powered by the miniaudio library.
  • Language: C++17
  • Graphics: OpenGL 3.3+
  • Core Libraries:
    • GLFW: For window and input management.
    • GLAD: For loading OpenGL functions.
    • GLM: For graphics-related mathematical operations.
    • Dear ImGui: For the graphical user interface.
    • stb_image: For texture loading.
    • miniaudio: For audio playback.
  • Build System: make (with g++)

🚀 How to Run Locally (Windows Guide)

This project uses make and g++. The easiest way to get these tools on Windows is by using MinGW-w64 (distributed via MSYS2).

  1. Install MSYS2:

    • Download and install MSYS2 from the official website.
    • Follow the instructions to update the base system (usually running pacman -Syu followed by pacman -Su).
  2. Install the Development Toolchain:

    • Open an MSYS2 UCRT64 (or MINGW64) terminal.
    • Install the g++ compiler, make, and git with the following command:
      pacman -S --needed base-devel mingw-w64-ucrt-x86_64-toolchain git
  3. Download GLFW:

    • This project requires the pre-compiled GLFW libraries.
    • Go to the GLFW download page and download the "64-bit Windows binaries" for MinGW-w64.
    • Extract the zip file.
  1. Clone the Repository:

    git clone https://github.com/YOUR_USERNAME/YOUR_REPOSITORY.git
    cd YOUR_REPOSITORY
  2. Configure Dependencies (GLFW):

    • Inside the project's root folder, create the following directories: libs/glfw/include and libs/glfw/lib.
    • From the downloaded GLFW files, copy the GLFW folder (which contains glfw3.h) into libs/glfw/include/.
    • From the downloaded lib-mingw-w64 folder (or similar), copy the files libglfw3.a and libglfw3dll.a into libs/glfw/lib/.

    The final folder structure for the dependencies should look like this:

    /YOUR_REPOSITORY
    |-- /libs
    |   |-- /GLFW
    |       |-- /include
    |       |   |-- /GLFW
    |       |       |-- glfw3.h
    |       |-- /lib
    |           |-- libglfw3.a
    |   |-- /glad
    |       .......
    |..............
    |-- /src
    |-- /vendors
    |-- Makefile
    ...
    

Compilation and Execution

  1. Compile the Project:

    • Make sure you are in the root directory of the repository within your MSYS2 terminal.
    • Run the make command:
    • This will compile all source files and create the final executable FireworksSimulator.exe in the bin/ directory.
  2. Run the Software:

    • Execute the program with:
      ./bin/FireworksSimulator.exe

To remove all generated build files (objects and the executable), run:

联系我们 contact @ memedata.com