All Projects → neolit123 → qml-glsl-coder

neolit123 / qml-glsl-coder

Licence: other
live editor of GLSL fragment shaders based on Qt / QML

Programming Languages

C++
36643 projects - #6 most used programming language
GLSL
2045 projects
QML
638 projects

Projects that are alternatives of or similar to qml-glsl-coder

YALCT
Yet Another Live Coding Tool - Powered by Veldrid and elbow grease
Stars: ✭ 25 (+31.58%)
Mutual labels:  glsl, live-coding, glsl-shaders
Thebookofshaders
Step-by-step guide through the abstract and complex universe of Fragment Shaders.
Stars: ✭ 4,070 (+21321.05%)
Mutual labels:  glsl, glsl-shaders
Webgl Fundamentals
WebGL lessons that start with the basics
Stars: ✭ 3,315 (+17347.37%)
Mutual labels:  glsl, glsl-shaders
ModularMusicVisualizer
Project in Hiatus, unmaintained, being rewritten privately. Will Open Source when stuff is ready. Project will be Renamed.
Stars: ✭ 81 (+326.32%)
Mutual labels:  glsl, glsl-shaders
shader-art
WebGL art with GLSL shaders.
Stars: ✭ 25 (+31.58%)
Mutual labels:  glsl, glsl-shaders
Blotter
A JavaScript API for drawing unconventional text effects on the web.
Stars: ✭ 2,833 (+14810.53%)
Mutual labels:  glsl, glsl-shaders
Bonzomatic
Live shader coding tool and Shader Showdown workhorse
Stars: ✭ 829 (+4263.16%)
Mutual labels:  glsl, live-coding
deffx
A collection of useful shader effects made ready to be used with the Defold game engine
Stars: ✭ 33 (+73.68%)
Mutual labels:  glsl, glsl-shaders
Radiance
Radiance is video art software for VJs. It supports beat detection, animated GIFs, YouTube video, OpenGL shader effects. It is designed for live performance and runs on Linux and MacOS.
Stars: ✭ 109 (+473.68%)
Mutual labels:  glsl, glsl-shaders
Fsynth
Web-based and pixels-based collaborative synthesizer
Stars: ✭ 146 (+668.42%)
Mutual labels:  glsl, live-coding
glNoise
A collection of GLSL noise functions for use with WebGL with an easy to use API.
Stars: ✭ 185 (+873.68%)
Mutual labels:  glsl, glsl-shaders
OptimisedCentresOfRotationSkinning
Library to Compute Centres of Rotation for Optimised Centres of Rotation Skinning by Le and Hodgins 2016 "Real-time Skeletal Skinning with Optimized Centers of Rotation"
Stars: ✭ 28 (+47.37%)
Mutual labels:  glsl, glsl-shaders
python-qt-live-coding
Live coding environment for Python, Qt and QML.
Stars: ✭ 35 (+84.21%)
Mutual labels:  qml, live-coding
Vuh
Vulkan compute for people
Stars: ✭ 264 (+1289.47%)
Mutual labels:  glsl, glsl-shaders
30-days-of-shade
30 days of shaders in GLSL using GLSLCanvas
Stars: ✭ 134 (+605.26%)
Mutual labels:  glsl, glsl-shaders
Shaderkit
A library of fragment shaders you can use in any SpriteKit project.
Stars: ✭ 488 (+2468.42%)
Mutual labels:  glsl, glsl-shaders
kotlin-glsl
Write your GLSL shaders in Kotlin.
Stars: ✭ 30 (+57.89%)
Mutual labels:  glsl, glsl-shaders
ShaderView
ShaderView is an Android View that makes it easy to use GLSL shaders for your app. It's the modern way to use shaders for Android instead of RenderScript.
Stars: ✭ 53 (+178.95%)
Mutual labels:  glsl, glsl-shaders
3d Game Shaders For Beginners
🎮 A step-by-step guide to implementing SSAO, depth of field, lighting, normal mapping, and more for your 3D game.
Stars: ✭ 11,698 (+61468.42%)
Mutual labels:  glsl, glsl-shaders
React Regl
React Fiber Reconciler Renderer for Regl WebGL
Stars: ✭ 171 (+800%)
Mutual labels:  glsl, glsl-shaders
QML GLSL Coder
v1.2.0

project URL:
https://github.com/neolit123/qml-glsl-coder

--------------------------------------------------------------------------------
INFORMATION

"QML GLSL Coder" is a live editor of GLSL fragment shaders based on Qt / QML.

the project is inspired by the following tools:
- ShaderToy (by IQ)
- Quint (by Andrew Baldwin)
- GLSL-Sandbox (by various contributors)

a couple of years ago i saw that easy, on-the-spot GLSL shader compilation was
possible with Qt / QML in the Quint project, but it had some issues and was
not very usable. in the meantime, i was playing with writing some effects in
the other listed tools which are WebGL based.

this project is not a port of Quint but rather a written from scratch, fully
functional editor that i started writing a while back.

public domain license - see the file LICENSE!

--------------------------------------------------------------------------------
SCREENSHOTS

https://tinyurl.com/ycl39h8p
https://tinyurl.com/y8d7rf6j
https://tinyurl.com/y9j9hlc8
https://tinyurl.com/y6vfpc42

--------------------------------------------------------------------------------
WHAT WORKS

only tested on Win32 desktop!
press F1 for the help screen and a list of keyboard shortcuts.

*) has a pretty usable text editor
- the editor is defined in qml/Editor.qml
- the editor can be toggled with F4
- everything that QML's TextEdit has, this editor has as well
- mouse wheel and page up/down support
- shows the current line and compilation errors
- has a syntax highlighter defined in cpp/highlighter.cpp/.h

*) loading/saving .glsl files
- F7/F8 open the file load/save dialogs

*) loading of a single image that can be used as a texture
- controlled with F6
- see shaders/greyscaleTexture.glsl for an example

*) dynamic quality and interpolation
- controlled with F9, F10, F11

*) toggleable FPS counter and mouse cursor
- controlled with F2, F3

*) fullscreen support
- controlled with F12

--------------------------------------------------------------------------------
WHAT DOESN'T WORK (THAT WELL)

here are some issues which are caused by Qt / QML bugs or missing features:

*) Qt 5.5 has some sort of a bug in QQuickShaderEffect that prevents on-the-spot
changes of the .fragmentShader property. this forced me to write a custom
QQuickItem named ShaderItem which is a stripped down QQuickShaderEffect
replacement.

*) auto-compile-on-edit actually works quite well on the ShaderItem side,
but the onTextChanged() signal from TextEdit is a bit sporadic.
therefore, i have disabled auto-compile-on-edit and you have to press F5 to
recompile. at some point this could become an option.

*) on Win32 the file open/save dialogs don't show in fullscreen unless the UI
is clicked. to solve the issue the file dialogs are opened in window-mode
and when closed, the original mode (e.g. fullscreen) is restored.

*) for some reason, when the application window is open it makes certain
tools on Win32 sluggish, while the CPU remains almost IDLE.

*) lines with bold text have more height than lines without bold text, which
breaks the estimation to fit exactly N lines of text in the editor visible
area and the last line may be cut. QML's TextEdit has no easy means to set
a fixed line height which is not very convenient.

--------------------------------------------------------------------------------
QMAKE VS CMAKE

cmake is more potent, while qmake is easier for a fast project setup. period.
this project is qmake based.

hopefully qmake will not be deprecated soon.

--------------------------------------------------------------------------------
DEPLOYMENT SIZE

40MB on Win32 is a bit too much but that's how Qt works.
if i wrote the same in SDL and some sort of a simplified widgets toolkit
it could have been in the lines of 10MB but it might have taken more time.

--------------------------------------------------------------------------------
BUILDING

install the latest Qt version
cd <path-where-the-coder-source-is>
qmake
make

--------------------------------------------------------------------------------
PRE-BUILD BINARIES

qml-glsl-coder-1.0.0-win32-qt5.5.0.zip:
https://tinyurl.com/y8h5c22h
qml-glsl-coder-1.2.0-win32-qt5.5.1.zip:
https://tinyurl.com/y9om8f6b

--------------------------------------------------------------------------------
EOF
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].