Commit Graph
80 Commits
Author SHA1 Message Date
Thomas Wilshaw 6464bdfd68 Add an OCIO Grading Transform Node 2022-03-13 23:00:00 +00:00
ThomasWilshaw 5b565e5fa5 Merge branch 'master' into ocio_node 2022-03-08 16:39:14 +00:00
Thomas Wilshaw 979095d2e0 Get OCIO node groundwork working 2022-03-08 14:40:03 +00:00
itsmattkc 63c807b902 implement glsl hack for corner pin 2022-03-04 15:46:08 -08:00
itsmattkc 780342881e cornerpin: add version to frag shader too
This fixes shader compilation issue on some platforms/drivers
2022-03-02 19:45:47 -08:00
ThomasWilshawanditsmattkc f5b4729a19 Corner pin (#1851)
* Start adding a corner pin node

* Start gizmo support

* Correctly setup QVector2d inputs

* Missing breaks were causing incorect data to be set

* Add ability to override vertex coords

* Get perspective pin working

* Cleanup

* Add none perspective corner pin

* Small optimisation

* Improve comments, clean up and fix bug in job optimisation

* [skip ci] cornerpin: Improve description

* Move GL extension from shader to standard preamble.

* Use #version 130 for mobile GPU compatibility

* Cache half resolution

* Use built in NodeInputDragger::GetStartValue

* Pass cnst references to avoid deep copies

Co-authored-by: itsmattkc <itsmattkc@gmail.com>
2022-03-02 19:38:12 -08:00
Thomas Wilshaw ac070dbc1a Actually init GL renderer 2022-02-01 18:44:08 +00:00
Thomas Wilshaw ff2eac55a5 First attempt at adding OCIO to nodes 2022-02-01 16:12:08 +00:00
ThomasWilshawanditsmattkc 953adf856b Add Flip/Flop node (#1850)
* Add Flip/Flop node

* Rename node Flip

* Missed files

Co-authored-by: itsmattkc <34096995+itsmattkc@users.noreply.github.com>
2022-01-25 15:14:54 -08:00
ThomasWilshaw 314167be40 Noise node (#1848)
* Add a noise generator node

* Cleanup

* Correctly name CMakeLists.txt

* Typo
2022-01-25 15:13:32 -08:00
itsmattkc 1412d69de7 reimplemented polygon node on cpu
This is still incomplete, it's a little slow (like text is), gizmos aren't functional, and still no beziers, but hey it works again now
2022-01-22 17:19:33 -08:00
itsmattkc 2ea29f9ea9 shape: center node 2021-09-21 21:32:31 -07:00
itsmattkc cf1cb5e0a9 renderer: move ocio code to separate file 2021-09-01 15:02:07 -07:00
itsmattkc 330a37da92 nodes: implemented shape generator 2021-08-03 11:55:31 -07:00
itsmattkc ae3393f031 opengl: use shared contexts and downgrade to ES 2.0 (BIG CHANGE)
If you run into new OpenGL issues, this is likely the commit that caused it.
I've tested this on as many systems as I have access to (including AMD, Apple,
Intel, and NVIDIA GPUs with a mixture of Windows, Linux, and macOS) and it
appears to work fine, however we all know how unpredictable GPUs can be.
This should help increase GPU performance and compatibility.

Squashed commit of the following:

commit fa3c0ac7c469aebe2941a803736bdc06cdd5a2d8
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Thu May 27 13:17:44 2021 +1000

    viewer: updated pixel sampling for shared contexts

commit 9334261da235f09cb67b193c5bb6169abd7a95f7
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Thu May 27 13:12:39 2021 +1000

    pixelsampler: show color preview box

commit dacd9be6971c5c0312ae45c8db349d47910a80dd
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Thu May 27 12:43:32 2021 +1000

    renderer: interlace on GPU

commit 074cea06cb87e9fdc4e8ea6b09587be6df296057
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Thu May 27 12:43:14 2021 +1000

    renderer: added texture clear option

commit 5d4f86b4cf1b1dcd3fb8e8c854ffa7f6fb8ca346
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Thu May 27 12:42:12 2021 +1000

    renderer: updated scopes for shared textures

commit 6fad96358d189874cf45f7887b7e13cc2b1603c4
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Thu May 27 11:42:05 2021 +1000

    opengl: fixed edge case

commit 1a19ffb53703ac6f30ed210f6d8eb5fc4b7b0f2d
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Thu May 27 10:56:13 2021 +1000

    opengl: fix deinterlace shader

commit 085961aa39cca90ebf51b919a78ef07a4882f0e1
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Thu May 27 10:08:40 2021 +1000

    opengl: downgrade to ES 2.0

    With half-float/float/3D extensions, this should be doable

commit ea1ab45cbcf5e017dfd0d8f28b231ff3255dfe92
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Thu May 27 10:06:59 2021 +1000

    renderer: fixed mutex deadlock

commit ecc2f08b16f03421870c5b61625ecd26f2f96582
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Wed May 26 21:28:13 2021 +1000

    opengl: fixed shared contexts

commit 261c689ea8089463155cf11b9ab15aa3f879f439
Merge: bfd4338a 91c88b1c
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Wed May 26 19:52:00 2021 +1000

    Merge branch 'master' into shared-contexts

commit bfd4338aaa3b09b6fbb7717c637face8d5490721
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Wed May 26 18:52:38 2021 +1000

    viewer: remove debug line

commit 45868d8a396181bf81c24b92a1ac5ce9ffed3426
Merge: 642f8e9d d0bd5e21
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Wed May 26 17:21:48 2021 +1000

    Merge branch 'master' into shared-contexts

commit 642f8e9df7d7d1a9ed4202d428f4d968ff668552
Merge: 861e5b89 4de0a727
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Wed May 26 17:01:38 2021 +1000

    Merge branch 'master' of https://github.com/olive-editor/olive into shared-contexts

commit 861e5b89a38c281897dc44b20e3587d39c4f808c
Merge: 472598a7 ef31c3fb
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Wed May 26 14:28:21 2021 +1000

    Merge branch 'master' into shared-contexts

commit 472598a740a095aa43a4aad5680dd5abcf453a4c
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Fri May 14 16:29:35 2021 +1000

    attempt at sharing contexts
2021-05-29 20:02:45 +10:00
itsmattkc 77d4b18a60 updated copyright year for 2021 [skip ci] 2021-04-17 18:56:50 +10:00
itsmattkc 54cd244801 nodes: added distort nodes
Adds nodes for cropping and transforming
2020-11-22 11:34:37 +11:00
itsmattkc 065fc9e10e miscellaneous shader changes
Since sequence resolution is provided to the nodes now, it no longer needs to be a global in the shaders
Removed some unused shaders
Added default params to ShaderCode to allow skipping types that aren't used
2020-11-22 10:31:37 +11:00
itsmattkc dcf56781b4 removed version macros from shaders and add automatically in compile step 2020-11-19 14:36:05 +11:00
itsmattkc ad2e3d160f added mosaic filter node 2020-11-18 14:21:47 +11:00
itsmattkc d241090a9f finally updated the copyright year 2020-11-17 20:13:22 +11:00
itsmattkc 0429e70fe0 merged all drawing functions into a single shader processing function 2020-11-10 15:50:13 +11:00
itsmattkc 1d61f89920 large scale renderer rework
- Abstracts all OpenGL functionality including UI objects
- Cleans up several rendering codepaths
- Improves threading functionality
- Removes old code and problematic functions
2020-11-10 11:24:51 +11:00
itsmattkc 6ecdb02fd0 okay maybe not 2020-11-08 00:47:59 +11:00
itsmattkc e45174cf51 Merge branch 'histogram-updates' of https://github.com/sobotka/olive into sobotka-histogram-updates 2020-08-07 20:32:35 +10:00
itsmattkc 991f430cc8 Merge pull request #1155 from sobotka/waveform-updates
Waveform Updates
2020-08-07 20:18:30 +10:00
itsmattkc 662d66ad10 transitions: extended transition logic
General code and functionality improvements. Moved more code out of the
OpenGL backend for portability. Implemented audio transitions.
Implemented basic transition animation curve settings.
2020-07-16 00:36:21 +10:00
itsmattkc ae62750d9d various: fix broken transition creation
It's now possible to create transitions! But they're still broken in
a multitude of other ways so plenty more work to do hahahahahahahahaha
2020-07-14 22:31:11 +10:00
itsmattkc dd7af0e6bd nodes: minor overhaul to functionality
The nodes now have more control over how their accelerated shaders/sample
functions are run, as well as how items are popped off the value tables.
This allows for various optimizations that we didn't have access to before.
2020-06-12 00:54:15 +10:00
Troy James Sobotka 80badaa5a8 Waveform Fixes and Modifications
Fixes:
 * Values exceeding the encoded range.
   Future may account for a certain range
   above and below current values.
 * Minor calculation problem that prevented
   the above fix from working properly.
 * Streamlined the shader code.
 * Add a vertex shader to handle the scaling.
 * Use the viewport resolution as the scaled
   version to save performance.
2020-05-19 00:13:13 -07:00
Troy James Sobotka 6ebe0084a3 Implement Histogram
Basic pass at histogram. Uses a power based
scale compared against the total pixel count.
Probably needs a UI toggle to flip lines on
and off as the text and lines in OpenGL are
a large cycles sucker. Could be likely much
faster when migrated to a geometry shader
approach. Uses the scaled viewport resolution
to increase performance as much as possible.
2020-05-19 00:07:34 -07:00
itsmattkc 3ef119c0ab removed shaders.qrc
Accidentally got merged in on this branch.
2020-05-06 23:22:49 +10:00
itsmattkc 1ceefb6dba Merge branch 'master' into gizmos 2020-05-06 16:35:40 +10:00
itsmattkc fb625cb76e nodes: removed XML infrastructure 2020-05-06 15:06:37 +10:00
itsmattkc 0d0d35f025 Merge branch 'ire_lines' of https://github.com/ThomasWilshaw/olive into ThomasWilshaw-ire_lines 2020-05-06 00:12:37 +10:00
itsmattkc 74d252c5c0 nodes: use defined categories rather than arbitrary string based 2020-05-05 22:12:15 +10:00
Thomas Wilshaw 1e81969fca Waveform fixes
- Due to a floating point division error not all the bars on the waveform were
  being drawn.
- Fix ratio in the fragment shader
2020-05-05 11:29:15 +01:00
itsmattkc c387ce1cd7 polygon node: early crude implementation 2020-05-05 00:22:49 +10:00
itsmattkc 544a8855d3 waveform: update for glsl 150 2020-04-29 15:56:46 +10:00
Troy James Sobotka 4af10b2b5c Update Waveform Output
Updates:
 * Added IRE text on 20% increments
 * Added waveform lines that work
 * Scaled waveform to a subsection of the surface
2020-04-28 15:06:22 -07:00
Troy James Sobotka b9a62eb1aa Add lines
Adding waveform lines. Still requires scaling to
fit in arbitrary range.
2020-04-28 15:06:22 -07:00
Troy James Sobotka 5dd999b406 First working pass of Waveform
Remove the sum, add some commments, and
make it scale to the full window.

TODO:
 * Hook up CM.
 * Add UI for intensity
 * Add lines at 20% increments, plus under /
    overshoot?
 * Add UI for increments.
2020-04-28 15:06:22 -07:00
Troy James Sobotka f82bd39f0e Minor tweaks
Cleanup.
2020-04-28 15:06:22 -07:00
Troy James Sobotka c0b4cb28e0 Temp waveform work. 2020-04-28 15:06:22 -07:00
itsmattkc e7e895739b Merge pull request #1138 from olive-editor/BrimsonBhin-patch-1
Gaussian Blur: Use straight multiply
2020-04-29 04:52:22 +10:00
itsmattkc ac3f49a845 nodes: moved matrix input on "video input" elsewhere
Rather than plugging a matrix into the video input node, the matrix is now
multiplied by the video input using a math node. This is probably more
sensible from a user perspective.

This also means the renderer is tolerant of texture sizes that are not equal
to the sequence size, however most nodes will downsample the texture to the
sequence size (and if not, it will be downsampled once it is cached). Textures
will still *always* be in reference space and the sequence's format. This seems
like the best compromise between backend and frontend congruity.
2020-04-27 04:11:24 +10:00
BrimsonBhin 0703a5851b Gaussian Blur: Use straight multiply
Results are identical (tested with Olive 0.1.x). Using a straight multiply is faster if the compiler doesn't optimize pow(). It's also safer because with pow(), [the result is undefined if x<0 or if x=0 and y≤0](https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/pow.xhtml).
2020-04-23 22:02:47 -07:00
Simran Brucherseifer 5da9848de7 Upgrade shaders from GLSL 110 to 150 (OpenGL 3.2) 2020-04-22 11:28:33 +02:00
itsmattkc 258f83d5d3 node: fixed bug that failed to load some default values from shader xml 2020-04-22 18:13:53 +10:00
itsmattkc 6f4bf70d3e scope: implemented waveform scope 2020-04-20 22:58:29 +10:00