Coder Social home page Coder Social logo

aiekick / noodlesplate Goto Github PK

View Code? Open in Web Editor NEW
248.0 15.0 16.0 87.21 MB

Offline Shader Editor with many cool features

Home Page: https://aiekick.github.io/NoodlesPlate/

License: GNU General Public License v3.0

CMake 1.90% C 4.54% C++ 93.55%
uniforms gizmo widgets shaders picture glsl shadertoy import transform-feedback free-software

noodlesplate's Introduction

Win Osx Linux GitHub Pages

NoodlesPlate

NoodlesPlate is a offline Shader Editor.

His particularity is to offer to the user many type of widgets, let you easilty tune in real time your shader.

all the system is designed for let the user choose his text editor. NoodlespLate update all ui after each code change (file save)

you can check the wiki if you want more infos

Some features availables :

  • many uniforms widgets :
    • sliders
    • buttons
    • checkbox
    • combobox
    • radio buttons
    • time / date / deltatime
    • frame
    • gizmo (translate / rotate / scale) via ImGuizmo
    • gamepad (go in settings dialog for tune and affect your gamepad buttons / sticks)
    • mouse
    • color picker
    • midi devices
  • Time Line for easy animation crration (based on the behavior of blender3D)
    • export all frames in pictures
  • uniforms collapsable / expandable by section or hidden (defined in code)
  • Vertex / Fragment / Geometry / tesselation control / tesselation eval shaders => all in one file
  • primitive instancing
  • in code config (selectable in ui)
  • include files
  • multipass :
    • in many files
    • or in one file
  • compute shader => not finalized, support only 2d/3d texture. no mesh generation
  • import of ShaderToy / GlslSandbox / VertexShaderArt
    • import fo shadertoy now possible in one file only
  • multi attachments buffers
  • uniforms config switcher => lets you save/load uniforms conf file
  • Primitve Culling System via Gizmo
  • sdf merge with mesh
  • wold camera (perspective / orthographic) in your shaders
  • fullscreen windowed or full
  • transparant window (controled with the alpha value of your shader)
  • save picture for each code modification (let you create video of your shader design)
  • pixel debugging, offer rgba value inspection (with mouse, under line on screen)
  • inspect gpu metrics (temperature / load / memory / etc.. only support nvidia for the moment)
  • gpu live profiler (flamegraph type)
  • support of transform feedback for extrac mesh from vertex/geometry/tesselation stage
  • Advanced UI system for extract panes to windows (thanks to Dear Imgui Docking/Viewport system)
  • Advanced theming system (thanks to Dear Imgui)
  • support of the VR (via OpenXR) :
    • a button in the left toolbar is available for enable/disable the vr
    • display the left eye on the screen
    • support of controllers :
      • Generic pads (tested => OK)
      • Occulus touch (tested => OK)
      • Valve index (not tested => but will work as expected i guess)
    • camera can be controlled via VR controllers, if the camera vr control is checked and only when swizzle (side trigger) is pressed :
      • left controller thumbstick x can be used for roll (axis z) the camera
      • left controller trigger can be used for move the camera backward
      • right controller trigger can be used for move the camera forward
      • right controller thumbstick up/down can be used for pitch (axis x) the camera
      • right controller thumbstick left/right can be used for yaw (axis y) the camera
    • the triggers, thumbsticks, and swizzle are available as uniforms. swizzle can be used if the camera vr control is unchecked check the help avaialble in elft toolabr for have the unifomrs syntax

Features planned :

  • Node Graph (wip, not stable)
  • video / audio (playback / recording)
  • bvh player for uniforms

Binaries => https://github.com/aiekick/NoodlesPlate/releases

Build tested and succeded on :

  • On Win 7 x64 (in version x32/x64)
  • On Win 10 x64 (in version x64)
  • On Linux Debian/Ubuntu (in version x32/x64)
  • On Linux Debian/RaspberryOs (in version x86/x64)
  • MacOs Mojave (in version x86)

requirements

  • Cmake
  • OpenSSH
  • C++17

how to build

first : clone the repo and initialize their submodules

git clone https://github.com/aiekick/NoodlesPlate.git
cd NoodlesPlate
git submodule update --init --recursive

second : build with cmake

You need to use cMake. For the 3 Os (Win, Linux, MacOs), the cMake usage is exactly the same,

  1. Choose a build directory. (called here my_build_directory for instance) and
  2. Choose a Build Mode : "Release" / "MinSizeRel" / "RelWithDebInfo" / "Debug" (called here BuildMode for instance)
  3. Run cMake in console : (the first for generate cmake build files, the second for build the binary)
cmake -B my_build_directory -DCMAKE_BUILD_TYPE=BuildMode
cmake --build my_build_directory

On Windows :

You need to have the opengl library installed

On Linux :

You need many lib : (X11, xrandr, xinerama, xcursor, mesa)

If you are on debian you can run :

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

On MacOs :

you need many lib : opengl, openssl and cocoa framework

License :

NoodlesPlate is an open source software under GPL-3.0

Library used :

Some screenshots :

NoodlesPlate v0.6.660

VR Mode (show left eye in screen) with the shader Dual 3D Truchet Tiles of Shane 0.6.660.1

NoodlesPlate v0.5.897

0.5.897.1 0.5.897.2 0.5.897.3 0.5.897.4

NoodlesPlate v0.1.3075

0.1.3075.1 0.1.3075.2

noodlesplate's People

Contributors

aiekick avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

noodlesplate's Issues

Wrong screen resolution on Windows 10

When I open NoodlesPlate on Windows 10, the window appears to have the wrong resolution. The text is almost too small to read:
image
Is it possible to change the resolution of this window?

Wrong Error Code when no uniforms to import

t:7.388s thread(00A4EB90) ShaderUrlLoader::AddUniformsFromCode 1488 Error : the two's tags must be present : @NOTE_START and @NOTE_END
t:7.388s thread(00A4EB90) ShaderUrlLoader::AddUniformsFromCode 1527 Error : the three tags must be present : @UNIFORMS_START, @UNIFORMS_ELSE and @UNIFORMS_END
t:7.389s thread(00A4EB90) ShaderUrlLoader::AddUniformsFromCode 1488 Error : the two's tags must be present : @NOTE_START and @NOTE_END
t:7.389s thread(00A4EB90) ShaderUrlLoader::AddUniformsFromCode 1527 Error : the three tags must be present : @UNIFORMS_START, @UNIFORMS_ELSE and @UNIFORMS_END
t:7.39s thread(00A4EB90) ShaderUrlLoader::AddUniformsFromCode 1488 Error : the two's tags must be present : @NOTE_START and @NOTE_END
t:7.39s thread(00A4EB90) ShaderUrlLoader::AddUniformsFromCode 1527 Error : the three tags must be present : @UNIFORMS_START, @UNIFORMS_ELSE and @UNIFORMS_END
t:7.391s thread(00A4EB90) ShaderUrlLoader::AddUniformsFromCode 1488 Error : the two's tags must be present : @NOTE_START and @NOTE_END
t:7.392s thread(00A4EB90) ShaderUrlLoader::AddUniformsFromCode 1527 Error : the three tags must be present : @UNIFORMS_START, @UNIFORMS_ELSE and @UNIFORMS_END

Crash on Windows 8?

As a Mac User, I tried to run the x86 version in in my Windows 8 32bit under Parallels. It crashed with the following message:

Error 65543: WGL: Failed to create OpenGL context
Error 65538: Cannot set swap interval without a current OpenGL or OpenGL ES context

OpenGL in general is available on my Virtual machine. For checking, I tested it by running my own syfluid, which also uses GLSL shaders. This worked.

Do I maybe need some additional DLLs? Or is maybe Windows 8 just too old?

BTW: Do you plan a portable version that supports Mac? (And Linux) :-)

(Screenshot attached)
2019-03-24_12-40-04

License?

I 'd like to include your work in my video editor as a plugin to edit shaders. Can we work that out? It's not very much clear from your license what I may do.

Good job btw.
Best,

errors executing linux binary

./NoodlesPlate_GCC_x64_Release 
t:0s thread(0x11eb580) /home/aiekick/Documents/SdfPrograms/NoodlesPlate/lib/SoGLSL/src/FileHelper.cpp GetExistingFilePathForFile 247 Cant found file space3d.glsl
t:0.007s thread(0x11eb580) /home/aiekick/Documents/SdfPrograms/NoodlesPlate/lib/SoGLSL/src/FileHelper.cpp GetExistingFilePathForFile 247 Cant found file 3dAxis.glsl
t:0.01s thread(0x11eb580) /home/aiekick/Documents/SdfPrograms/NoodlesPlate/lib/SoGLSL/src/FileHelper.cpp GetExistingFilePathForFile 247 Cant found file 3dGrid.glsl
t:0.011s thread(0x11eb580) /home/aiekick/Documents/SdfPrograms/NoodlesPlate/lib/SoGLSL/src/FileHelper.cpp GetExistingFilePathForFile 247 Cant found file mesh.glsl
t:0.013s thread(0x11eb580) /home/aiekick/Documents/SdfPrograms/NoodlesPlate/lib/SoGLSL/src/FileHelper.cpp GetExistingFilePathForFile 247 Cant found file culling.glsl
t:0.013s thread(0x11eb580) /home/aiekick/Documents/SdfPrograms/NoodlesPlate/lib/SoGLSL/src/FileHelper.cpp GetExistingFilePathForFile 247 Cant found file GizmoCulling.glsl
t:0.013s thread(0x11eb580) /home/aiekick/Documents/SdfPrograms/NoodlesPlate/lib/SoGLSL/src/FileHelper.cpp LoadFileToString 117 File  Not Found !
------------------------------------------------
Start Scan for Templates
------------------------------------------------
------------------------------------------------
End Scan for Templates
------------------------------------------------
Try to Load RenderPack main
RenderPack main Is Loaded !
Try to Load RenderPack 3d Axis
RenderPack 3d Axis Is Loaded !
Try to Load RenderPack 3d Grid
RenderPack 3d Grid Is Loaded !
Try to Load RenderPack 3d Mesh
t:0.049s thread(0x11eb580) /home/aiekick/Documents/SdfPrograms/NoodlesPlate/lib/SoGLSL/src/Shader.cpp LogToOutput 527 FRAGMENT SHADER COMPILING => FAIL !!!
t:0.049s thread(0x11eb580) /home/aiekick/Documents/SdfPrograms/NoodlesPlate/lib/SoGLSL/src/Shader.cpp LogToOutput 527 0:55(1): error: #extension directive is not allowed in the middle of a shader

RenderPack 3d Mesh Is Loaded !
Try to Load RenderPack GizmoCulling
RenderPack GizmoCulling Is Loaded !
t:0.061s thread(0x11eb580) /home/aiekick/Documents/SdfPrograms/NoodlesPlate/src/RenderFarm.cpp DoShaderCodeUpdate 413 DoShaderCodeUpdate fail to update. paths not corresponds with shaderkey paths

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.