This is an OpenGL shader node editor based on Dear ImGui and ImNodes, which deals with GLSL shaders, including dynamic creation, linking, uniforms setting, and buffers binding in runtime via GUI operations. Basically it covers most of the C++ OpenGL client coding throughout the rendering pipeline.
-

A program can link multiple shaders for a rendering pipeline. -
-
- On Init
Will be executed once whenever the "start" or "restart" command is sent. - On Frame
Will be executed every frame during "running" state.
- On Init
-
- Attributes
- Dispatch Type:
glDrawArray()orglDispatchCompute() - Framebuffer: screen or user created framebuffer
- Draw Mode: 1st param of
glDrawArray() - Size: 3rd param of
glDrawArray()(The 2nd param will always be 0) - Work Group Size X/Y/Z: params of
glDispatchCompute()
- Dispatch Type:
- Node Inputs
- Flow In
- Uniforms
- Uniform Blocks
- Shader Storage Buffers
- Node Outputs
- Flow Out
- Image Uniforms
- Shader Storage Buffers
- Framebuffer Attachments
- Attributes
-

Can be either a Uniform Block or a Shader Storage Buffer Block.

Only block pins with same sizes can be linked. -
- Node Inputs
- Texture Object
- Node Outputs
- Image Object
- Texture Object
- Node Inputs
-
- You can find a simple example OpenGL application in main.cpp.
- GLEW: https://github.com/nigels-com/glew
- GLFW: https://github.com/glfw/glfw
- OpenGL Mathematics: https://github.com/g-truc/glm
- tiny file dialogs: https://sourceforge.net/projects/tinyfiledialogs/
- stb: https://github.com/nothings/stb
- Source Sans: https://github.com/adobe-fonts/source-sans
- Fork Awesome: https://github.com/ForkAwesome/Fork-Awesome








