Commit Graph

303 Commits

Author SHA1 Message Date
Michael Fabian 'Xaymar' Dirks 5d4f88e614 gfx/blur: Reduce code duplication with shared file
A lot of the blur effects share quite a bit of code, which can be offloaded into a single include.
2023-04-05 18:51:01 +02:00
Michael Fabian 'Xaymar' Dirks 1fcd141f10 filter/blur: Don't pass bool as TEXCOORD1
Using a 'bool' as TEXCOORD1 is undefined behavior, so we should not abuse the intermediate shading storage like this.

Fixes #559
2023-04-05 18:51:01 +02:00
Michael Fabian 'Xaymar' Dirks dbfd27860c filters/nv-face-tracking: Apply coding guidelines 2023-04-05 18:50:56 +02:00
Xaymar aacbe53679 locale: New Crowdin updates (#556)
* New translations en-US.ini (Arabic)
* New translations en-US.ini (Chinese Simplified)
* New translations en-US.ini (Czech)
* New translations en-US.ini (Danish)
* New translations en-US.ini (Dutch)
* New translations en-US.ini (Estonian)
* New translations en-US.ini (Faroese)
* New translations en-US.ini (Finnish)
* New translations en-US.ini (French)
* New translations en-US.ini (German)
* New translations en-US.ini (Greek)
* New translations en-US.ini (Hebrew)
* New translations en-US.ini (Hungarian)
* New translations en-US.ini (Icelandic)
* New translations en-US.ini (Irish)
* New translations en-US.ini (Italian)
* New translations en-US.ini (Japanese)
* New translations en-US.ini (Korean)
* New translations en-US.ini (Mongolian)
* New translations en-US.ini (Norwegian)
* New translations en-US.ini (Polish)
* New translations en-US.ini (Portuguese)
* New translations en-US.ini (Portuguese, Brazilian)
* New translations en-US.ini (Romanian)
* New translations en-US.ini (Russian)
* New translations en-US.ini (Spanish)
* New translations en-US.ini (Thai)
* New translations en-US.ini (Turkish)
* New translations en-US.ini (Ukrainian)
* New translations en-US.ini (Vietnamese)
2023-04-05 18:50:54 +02:00
Xaymar ffb8b3f319 locale: New Crowdin updates (#549) 2023-04-05 18:50:54 +02:00
Michael Fabian 'Xaymar' Dirks b06ec71fa3 examples: Improve 'crt-scanlines.effect' 2023-03-28 13:11:22 +02:00
Michael Fabian 'Xaymar' Dirks 8fa1ffc95a examples: Improve 'crt-curvature.effect'
The code of this effect was quite dated and no longer up to my standards of coding, and lacking pretty much all comments that explain what things do. This meant that it was not a great example by default, and couldn't be used by new Effect creators as a reference.

Also the following settings were adjusted:
- 'Strength' now ranges from 0 to 200 %.
- 'Border Color' defaults to Opaque Black.
- 'Feathering' now ranges from 0 to 100 %.
2023-03-28 13:11:22 +02:00
Michael Fabian 'Xaymar' Dirks d2df0fa24f examples: Add base effect for common functionality
Many shader examples share quite a bit of code, and the OBS Studio parser and GPU driver shader compiler actually get rid of unused code quite well. So we can simply share the code between many examples, which drastically improves the quality of the code.
2023-03-28 13:11:22 +02:00
Xaymar 84cff8235f locale: New Crowdin updates (#531)
* New translations en-US.ini (Turkish)
* New translations en-US.ini (Chinese Simplified)
* New translations en-US.ini (Romanian)
* New translations en-US.ini (German)
* New translations en-US.ini (Spanish)
* New translations en-US.ini (French)
2023-03-28 13:11:22 +02:00
Michael Fabian 'Xaymar' Dirks d1747ff403 ui/about: Remove outdated entry roles 2023-03-28 13:11:21 +02:00
Michael Fabian 'Xaymar' Dirks 7e1c2ca80d filters/color-grading: Use explicit matrix initializer for GLSL support
Fixes #510
2023-03-28 13:11:21 +02:00
Xaymar cbb8b9bae3 locale: New Crowdin updates (#521)
* New translations en-US.ini (Turkish)
* New translations en-US.ini (Korean)
* New translations en-US.ini (Sinhala)
* New translations en-US.ini (Chinese Simplified)
* New translations en-US.ini (Russian)
* New translations en-US.ini (Portuguese)
* New translations en-US.ini (Polish)
* New translations en-US.ini (Norwegian)
* New translations en-US.ini (Dutch)
* New translations en-US.ini (Japanese)
* New translations en-US.ini (Romanian)
* New translations en-US.ini (Italian)
* New translations en-US.ini (Finnish)
* New translations en-US.ini (German)
* New translations en-US.ini (Czech)
* New translations en-US.ini (Spanish)
* New translations en-US.ini (French)
* New translations en-US.ini (Thai)
* New translations en-US.ini (Portuguese, Brazilian)
* New translations en-US.ini (Serbo-Croatian)
2023-03-28 13:11:20 +02:00
Michael Fabian 'Xaymar' Dirks 5a65cf3525 plugin: Replace long descriptions with "Open Manual" button
While the long descriptions were useful, keeping the updated and translated is pretty much impossible. Technology moves fast and not everyone that translates the project knows a lot about technology.

Therefore the long descriptions have now been replaced with a button that opens the wiki page for the feature instead. This should drastically reduce the number of help cases, and improve the translation coverage at the same time.
2023-03-28 13:11:20 +02:00
Michael Fabian 'Xaymar' Dirks 083ba935bc filters/color-grading: Fix incorrect Lift logic (#515)
Fixes #515
2023-03-28 13:11:19 +02:00
Michael Fabian 'Xaymar' Dirks 27c3420f31 filters/color-grading: Fix Gamma function and improve code readability
Fixes #510
2023-03-28 13:11:19 +02:00
Michael Fabian 'Xaymar' Dirks fd3d514a20 filters/color-grading: Replace log10 command for GLSL (#510)
Fixes #510
2023-03-28 13:11:18 +02:00
Xaymar 622ae17161 locale: New Crowdin updates (#500) 2023-03-28 13:11:17 +02:00
Xaymar d7d34028a0 locale: New Crowdin updates (#482) 2023-03-28 13:11:16 +02:00
Xaymar 1036d274f6 locale: New Crowdin updates (#464)
* New translations en-US.ini (Japanese)
2023-03-28 13:11:14 +02:00
Michael Fabian 'Xaymar' Dirks 26a76e0451 filters/color-grade: Redesign for use with LUTs
There is hardly any reason for us to recalculate everything all the time. LUTs can cache the work once, and then re-use it every time necessary, drastically reducing the impact of Color Grading by almost 60% (on some GPUs even more). Additionally this fixes the negative gamma issue, which plagued the filter for a while.

In the future, once PR 4199 (https://github.com/obsproject/obs-studio/pull/4199) has been merged, we can cut away one intermediate rendering step currently required to make the effect work. Hopefully this will be with the 27.x release of OBS Studio.
2023-03-28 13:11:11 +02:00
Michael Fabian 'Xaymar' Dirks eba0a467d5 gfx/lut: Add a simple but efficient LUT producer and consumer
For simple image and video editing, LUTs (Look-Up Tables) are vastly superior to running the entire editing operation on each pixel - especially if all the processing can be done inside a single shader.

Due to the post-processing requirements for our LUTs, we are limited to 8 bits per channel - though clever use of the unused Alpha channel may result in additional space. For our purposes however, this is definitely enough.
2023-03-28 13:11:11 +02:00
Michael Fabian 'Xaymar' Dirks 73f9257633 effects: Add RGB, HSV, and YUV conversion functions 2023-03-28 13:11:11 +02:00
Michael Fabian 'Xaymar' Dirks a027a57d09 effects: Add generic shared header with common code 2023-03-28 13:11:11 +02:00
Xaymar 2d878fcb59 locale: New Crowdin updates (#449)
* New translations en-US.ini (French)
2023-03-28 13:11:11 +02:00
kilin a7eac490d5 examples: Add Pixelation filter shader (#418) 2023-03-28 13:11:10 +02:00
Xaymar 49eff4a1cf locale: New Crowdin updates (#401)
* New translations en-US.ini (Turkish)
* New translations en-US.ini (Sinhala)
* New translations en-US.ini (Spanish)
* New translations en-US.ini (Czech)
* New translations en-US.ini (Serbo-Croatian)
2023-03-28 13:11:09 +02:00
Xaymar 781b254d47 locale: New Crowdin updates (#397) 2023-03-28 13:11:07 +02:00
Xaymar 64a2018295 locale: New Crowdin updates (Turkish) (#373) 2023-03-28 13:11:06 +02:00
Michael Fabian 'Xaymar' Dirks ff3f8cff03 encoders/ffmpeg: Implement AMF H.264 and H.265 handlers
Adds support for the AMD Advanced Media Framework H.264 and H.265 encoders via FFmpeg. The majority of settings are supported, and the UI/UX experience mimics that of the NVENC implementation. Various settings are left out due to their complexity and should be controlled via the custom parameters field.
2023-03-28 13:11:06 +02:00
Michael Fabian 'Xaymar' Dirks efc048adcd examples: Fix typo "_Random" -> "Random"
Fixes: #356
2023-03-28 13:11:02 +02:00
Daniel Hodgson 02bdd85ed4 examples: Added adjustable luminance to hexagon size (#364) 2023-03-28 13:11:02 +02:00
Daniel Hodgson ab2b632fb4 examples: Fix incorrect angles for "hexagonize" effect
The value for "deg30" was incorrectly calculated as (pi / 15.0) instead of (tau / 12.0).
2023-03-28 13:11:01 +02:00
Xaymar 2e8bc6210e locale: New Crowdin updates (#342) 2023-03-28 13:11:01 +02:00
Michael Fabian Dirks e95a20f658 locale: New Crowdin updates (#335) 2023-03-28 13:10:59 +02:00
Michael Fabian 'Xaymar' Dirks f907fc80b0 updater: Add functionality to check for updates
Implements a manual and automatic update checker with support for both release and testing update channels, allowing users to stay as up to date as possible. It is fully compliant with privacy regulations around the world, as it stays completely silent and inactive until the user gives the Ok to connect to GitHub for the latest releases.
2023-03-28 12:52:27 +02:00
Michael Fabian Dirks a3b526145c locale: New Crowdin updates (#308) 2023-03-28 12:52:26 +02:00
Charles Fettinger 56d041e1b7 examples: Add colored and inverted luma burn varitions (#283)
Adds colored and inverted colored variations for Luma Burn, enabling some more fancy transitions with it. All variations with color support smooth fading, and allow choosing any possible color for the transition.
2023-03-28 12:52:26 +02:00
Michael Fabian Dirks c51b76a6cb locale: Update with latest Crowdin changes 2023-03-28 12:52:17 +02:00
Michael Fabian 'Xaymar' Dirks b112d6d06e encoders/handlers/nvenc: Update locale text
The new text should make it easier to understand for end-users.
2023-03-28 12:52:16 +02:00
Michael Fabian 'Xaymar' Dirks 75663f73a4 encoders/handlers/nvenc: Don't list 'each' mode for H.264 2023-03-28 12:52:16 +02:00
Michael Fabian 'Xaymar' Dirks c9e8b889b0 encoders/handlers/nvenc: Improve UI/UX for NVENC
* "Quality" Minimum/Maximum is actually QP Minimum/Maximum
* Bitrate Limits is now just Limits
* Buffer Size and Quality Target have been moved into "Limits".
2023-03-28 12:52:16 +02:00
Michael Fabian 'Xaymar' Dirks 0c2d56a81a examples/shaders: Add new per-activation random to sliding bars transition 2023-03-28 12:52:13 +02:00
Michael Fabian 'Xaymar' Dirks d9198211f7 gfx/shader: Add Per-Instance/Activation/Frame Random values 2023-03-28 12:52:13 +02:00
Michael Fabian 'Xaymar' Dirks ce93f96a69 encoders/ffmpeg: Rebase onto obs::encoder_factory 2023-03-28 12:52:11 +02:00
Michael Fabian 'Xaymar' Dirks a2fd4dd2f6 gfx/shader: Inlining, std::string_view and optimizations 2023-03-28 12:40:45 +02:00
Michael Fabian Dirks dfb9400199 locale: New Crowdin translations (#195) 2023-03-28 12:40:43 +02:00
Michael Fabian 'Xaymar' Dirks 5fc95b48d8 filters/nv-face-tracking: Improve tracking and remove high priority CUDA stream
The high priority CUDA stream causes libOBS to be at a lower priority than the tracking, which is not what we want. Instead we want tracking to be incomplete in those cases, rather than slowing down encoding and other things.

Geometry updates are also now done once per frame instead of one per tracking update, which should improve the smoothness without affecting performance too much. Additionally all tracking info is now in the 0..1 range, which drastically simplifies some math - especially with texture coordinates.

To deal with tracking and updates being asynchronous, a very simple approximation of movement velocity has been added. This is mostly wrong, but it can bridge the gap where tracking updates are slower, as the values are all filtered anyway.
2023-03-28 12:40:43 +02:00
Michael Fabian 'Xaymar' Dirks 7ac5670d54 ui/about: Add version information 2023-03-28 12:40:43 +02:00
Michael Fabian 'Xaymar' Dirks 624570b862 examples: Remove broken effects 2023-03-28 12:40:42 +02:00
Michael Fabian 'Xaymar' Dirks 4947d46aa1 gs-mipmapper: Update API usage, remove broken options and optimize
The new libOBS API allows us to directly access the underlying API instead of having to mess around in memory. By using it we can avoid crashing in case the compiler for it is different, or in case the actual back end structure changes.

Additionally the mostly unimplemented and unused options have also been removed, which streamlines the use of this class even further and reduces both shader and code complexity.

Finally by optimizing the use of the internal render target we can achieve a speed up of up to 3000% over the old way, allowing for many more mipmapped filters.
2023-03-28 12:40:40 +02:00
Michael Fabian 'Xaymar' Dirks c2c5afd763 gfx-shader: Actually write alpha channel to render target 2023-03-28 12:40:39 +02:00
Michael Fabian Dirks 0d9b627c1d locale: New Crowdin translations (#178) 2023-03-28 12:40:39 +02:00
Michael Fabian 'Xaymar' Dirks 6c603795db locale: Fix missing '[Alpha]' 2023-03-28 12:40:37 +02:00
Michael Fabian 'Xaymar' Dirks d42d26db3d filter-shader: Add 'semiline' effect
The 'semiline' effect blanks out horizontal lines of increasing size, with some configuration options. Example: https://cdn.xaymar.com/private/2020-04-23/2020-04-23T08-00-37_obs64_HeartyNavyblueAtlanticridleyturtle.png
2020-04-24 01:13:34 +02:00
Michael Fabian 'Xaymar' Dirks 7a929d6af4 locale: Add missing and remove unused strings 2020-04-23 09:14:31 +02:00
Michael Fabian 'Xaymar' Dirks d0941895ad project: Refactor into namespace streamfx 2020-04-23 00:50:39 +02:00
Michael Fabian Dirks fec55909ef
locale: New Crowdin translations (#167) 2020-04-22 23:15:16 +02:00
Michael Fabian Dirks 6794edb223
locale: New Crowdin translations (#153) 2020-04-17 11:13:57 +02:00
Michael Fabian 'Xaymar' Dirks a989709b6f examples: Fix some example shaders and add new ones
* Fixed 'Pixelator's color transition point being off-center and uncontrollable.
* Fixed 'Drunk' filter not working at all.
* Added an inverted mode to 'Luma Burn'.
* Added exponential Luma to 'Luma Burn'.
* Fixed odd color behavior in the 'Color Shift' transition by switching out HSL with HSV.
* Added a new 'Sliding Bars' transition shader, for an example of it see this clip: https://clips.twitch.tv/RacyEndearingHorseradishAMPTropPunch .
2020-04-17 11:13:36 +02:00
Michael Fabian Dirks e16b4f0004
locale: New Crowdin translations (#133) 2020-04-08 23:10:19 +02:00
Michael Fabian 'Xaymar' Dirks 4b5754679e ffmpeg-encoder/prores: Fix typo in english locale 2020-04-05 06:50:54 +02:00
Michael Fabian 'Xaymar' Dirks 9e9e9cbcd5 ffmpeg-encoder/prores: Improve pixel format override logic 2020-04-04 19:34:58 +02:00
Michael Fabian 'Xaymar' Dirks 9ca190c96a gfx-shader: Don't use modified_properties to reload shaders
As OBS Studio locks some mutexes in a different order depending on what actions are being done, using modified_properties for GPU work causes things to freeze in place. Instead have users manually click the refresh button when they changed files in order to prevent this freeze from happening.

Fixes: #118
2020-04-03 18:54:56 +02:00
Michael Fabian Dirks a8b79aa7f8
locale: New Crowdin translations (#128) 2020-04-03 18:44:16 +02:00
Michael Fabian Dirks 0242514184 locale: New Crowdin translations (#121) 2020-04-03 01:25:24 +02:00
Michael Fabian Dirks f87e7859c4
locale: New Crowdin translations (#120) 2020-04-02 06:58:28 +02:00
Michael Fabian 'Xaymar' Dirks 516d48a5a0 locale: Add missing translation for Shader Transitions 2020-04-01 20:33:00 +02:00
Michael Fabian Dirks 29b8c4cd20 locale: New Crowdin translations (#113) 2020-03-31 21:50:40 +02:00
Michael Fabian 'Xaymar' Dirks 43f1dcf205 filter-nv-face-tracking: Nvidia exclusive Face Tracking filter
Ever wished you had a professional camera operator to highlight and follow the action, ensuring the audience never misses a beat? Thanks to NVIDIA, you can now do this at home for free! The new NVIDIA AR SDK unlocks augmented reality features, including motion tracking for faces.

This allows me to provide you with an automated zoom and cropping solution for your video camera to transform your streams into a slick, polished broadcast, where you’ll always be the star of the show. Don’t forget - everything is customizable so the possibilities are endless. You can even recreate that Futurama squinting meme if you wanted to (with some scripting)!

The filter requires compatible Nvidia RTX hardware and the Nvidia AR SDK Runtime to be installed ahead of time. This filter is considered "stable" and shouldn't change much from version to version.
2020-03-31 21:46:47 +02:00
Michael Fabian 'Xaymar' Dirks 4fda7de573 filter-shader: New filter examples
CRT Curvature: Emulate an old CRT TVs curvature ...
CRT Scanlines: ... and emulate an old CRT TVs scanlines, rollbar and bleeding!
Hexagonize: Turn things into hexagons. You know, like the thing you see in my streams.
2020-03-28 22:19:14 +01:00
Michael Fabian 'Xaymar' Dirks 7d5c4361e3 transition-shader: New transition examples
Color Shift: Uses HSL and some math to smoothly shift Hue Saturation and Lightness between A and B.
Luma Burn: "Burns" away the Luminosity of A to reveal the B side.
Pixelator: Classic/Retro pixelation effect often seen in older games to transition between settings.
2020-03-28 20:22:42 +01:00
Michael Fabian 'Xaymar' Dirks ba97ea06b0 filter-color-grade: Fix effect 2020-03-28 20:20:33 +01:00
Michael Fabian 'Xaymar' Dirks 6f2b50b0ad cmake: Redesign for future features 2020-03-20 23:09:46 +01:00
Michael Fabian Dirks aa3c5557a9
locale: New Crowdin translations (#105) 2020-03-17 18:46:49 +01:00
Michael Fabian Dirks 569e39fe3b
locale: New Crowdin translations (#97) 2020-02-13 09:36:31 +01:00
Michael Fabian 'Xaymar' Dirks 403aae4eb9 locale: Fix incorrect string 2020-02-13 05:09:14 +01:00
Michael Fabian 'Xaymar' Dirks 5956a6f7a9 ffmpeg-encoder/nvenc: Add AUD and DPB Size options 2020-01-15 13:43:33 +01:00
Michael Fabian 'Xaymar' Dirks 34b2859dac ffmpeg-encoder/nvenc: Add minimum bitrate, fix target quality and more
Adds support for specifying Minimum Bitrate directly in the UI instead of requiring custom settings to do so. Additionally Adaptive I/B-Frames are now only shown if Look-Ahead is a value greater than 0 frames.

Quality Minimum can also now be left at a default value of -1, the Quality group is no longer toggleable and Quality Target moved into the group. Settings options on the context is now searching children too (if there are any).

Finally, some C++17 formatting was done.

Fixes #101
2020-01-15 05:50:31 +01:00
Michael Fabian 'Xaymar' Dirks 5d5a104819 ffmpeg-encoder: Improve UI, fix acceleration encode, etc 2020-01-15 03:59:03 +01:00
Michael Fabian 'Xaymar' Dirks 0a16ce07dc project: Merged FFmpeg Encoders Step 2 2020-01-13 22:40:15 +01:00
Michael Fabian 'Xaymar' Dirks 3432ab4c1d examples: 3D Raytracing Shader Example
Very very basic 3D raytracing, nowhere close to what people manage to do in combo productions. But it does work to some degree.
2020-01-01 16:02:45 +01:00
Michael Fabian 'Xaymar' Dirks 3cd88abeae examples: Add explanation for basic StreamFX shader files 2019-12-25 20:09:37 +01:00
Michael Fabian 'Xaymar' Dirks 133d8cf599 examples: Fix plasma UV and support for float4 2019-12-22 06:14:56 +01:00
Michael Fabian 'Xaymar' Dirks 0bf4a3ff01 examples: Improve plasma effect settings 2019-12-21 19:09:42 +01:00
Michael Fabian Dirks 68d3146cb8
locale: New Crowdin translations (#93) 2019-12-21 05:02:46 +01:00
Michael Fabian 'Xaymar' Dirks 3f5adab815 examples: New example source shaders 2019-12-18 07:50:49 +01:00
Michael Fabian Dirks 43f0aad930
locale: New Crowdin translations (#91) 2019-12-18 06:49:13 +01:00
Michael Fabian 'Xaymar' Dirks b7f76f5e01 locale: New translatable strings 2019-12-18 06:39:08 +01:00
Michael Fabian Dirks aec057981f New translations en-US.ini (Italian) 2019-12-13 04:04:19 +01:00
Michael Fabian Dirks 7cc87b4997 New translations en-US.ini (Italian) 2019-12-13 03:05:50 +01:00
Michael Fabian Dirks 34389c1899 New translations en-US.ini (Italian) 2019-12-12 04:23:42 +01:00
Michael Fabian Dirks f89887a415 New translations en-US.ini (Italian) 2019-12-12 03:28:11 +01:00
Michael Fabian Dirks fc1abd9d4e
locale: New Crowdin translations (#88) 2019-12-10 03:45:19 +01:00
Michael Fabian Dirks b42ee2e348
locale: New Crowdin translations (#87) 2019-12-06 00:25:18 +01:00
Michael Fabian Dirks a56968f67d
locale: New Crowdin translations (#86) 2019-12-05 22:58:14 +01:00
Michael Fabian Dirks f44fc1b671
locale: Update from Crowdin (#79) 2019-12-04 20:38:18 +01:00
Michael Fabian 'Xaymar' Dirks 4e1dcb533c filter-dynamic-mask: Rebase onto obs::source_factory 2019-12-03 20:11:27 +01:00
Michael Fabian 'Xaymar' Dirks efb6b0b9be filter-transform: Further refactoring 2019-12-03 18:28:42 +01:00
Michael Fabian 'Xaymar' Dirks df8ebd94ea filter-displacement: Refactor onto obs::source_factory
This drastically improves stability and prevents all exceptions from leaking into libobs C code, which prevents crashes and unexpected freezes from exception handlers further down the stack.

Additionally minor work was done to further improve the quality and user experience for the filter.
2019-11-18 03:03:11 +01:00
Michael Fabian 'Xaymar' Dirks aa170c7c54 data: Move example data into examples/ 2019-11-18 03:03:11 +01:00
Michael Fabian 'Xaymar' Dirks bacf52f9b6 source-mirror: Refactor to improve performance
Caching the output of a source is only necessary for really expensive to render sources, so it is disabled by default now. Thanks to that, most Source Mirrors are now "free" instead of requiring two context switches and a texture, while those really expensive can be manually set to cache.

The scaling mode is also set to disabled instead of point when rescaling is off to further improve performance. The previous method would incorrectly cause an extra texture to be used.

Additionally we now have support for debug markers for graphics debugging, allowing us to exactly tell apart improvements in rendering cost for this source.
2019-10-18 22:32:54 +02:00
Michael Fabian 'Xaymar' Dirks 03c704de1a project: Correct usage of exceptions and include stdexcept 2019-09-04 02:59:04 +02:00
Michael Fabian 'Xaymar' Dirks 2e98c2e754 color-grade: Fix and improve advanced options
These new options allow further control over the Tint tool in Color grading.
2019-09-04 02:18:40 +02:00
Michael Fabian 'Xaymar' Dirks 781307fbe6 color-grade: Add further Tint options 2019-09-04 01:41:15 +02:00
Michael Fabian Dirks 6857859252
locale: New translations 2019-09-03 21:20:31 +02:00
Michael Fabian Dirks b83b6fa5a5
locale: New Crowdin translations (#74) 2019-08-16 15:44:41 +02:00
Michael Fabian 'Xaymar' Dirks 458eca143a data/shaders: Displacement filter example 2019-08-07 20:40:14 +02:00
Michael Fabian 'Xaymar' Dirks 747079b8c6 locale: Add texture type translation 2019-08-07 20:22:44 +02:00
Michael Fabian 'Xaymar' Dirks e953932913 data/shaders: Update examples 2019-08-07 20:22:34 +02:00
Michael Fabian 'Xaymar' Dirks aff4b221ba data/shaders: Change fixed to draw 2019-08-07 18:10:54 +02:00
Michael Fabian 'Xaymar' Dirks 76335745b1 data/shaders: New example shaders 2019-08-07 18:07:05 +02:00
Michael Fabian 'Xaymar' Dirks 8cb2ddaa82 source-shader, cmake: 'Shader' source 2019-08-07 18:06:48 +02:00
Michael Fabian 'Xaymar' Dirks 5b9e6f0f1b locale: Add strings for custom shaders 2019-08-07 17:45:22 +02:00
Michael Fabian 'Xaymar' Dirks 2ca15bb28c source-mirror: Allow overriding audio layout 2019-08-04 12:34:42 +02:00
Michael Fabian 'Xaymar' Dirks 93ba39545f filter-color-grade: Implement Tool selection for OBS Studio 24.x 2019-08-03 12:29:47 +02:00
Michael Fabian 'Xaymar' Dirks 721f2bdf8f filter-color-grade: Fully feature Color Grading filter
Allows controlling Lift, Gamma, Gain, Offset, Tint and various Correction factors directly from within OBS without having to create a new LUT.
2019-08-02 23:49:18 +02:00
Michael Fabian Dirks 69f9134749
locale: New Crowdin translations (#69)
* New translations en-US.ini (German)

* New translations en-US.ini (Russian)

* New translations en-US.ini (French)

* New translations en-US.ini (Chinese Simplified)
2019-07-22 11:00:59 +02:00
Michael Fabian 'Xaymar' Dirks 2c94852ba8 source-mirror: Allow changing source alignment
Adds a new property to control the alignment of the source within the calculated boundary when rescaling the source. Also fixes the permanently left aligned mirror at the same time.
2019-05-28 20:04:26 +02:00
Michael Fabian Dirks 3e62416af2
locale: New Crowdin translations (#65) 2019-05-28 18:40:20 +02:00
Michael Fabian 'Xaymar' Dirks ccc4c6ea22 filter-sdf-effects: Fix and improve effect rendering
Fixes the bug that rendering an outline would remove all other effects not directly under the outline, while also improving the rendering speed drastically by only initializing and clearing the rendertarget once instead of for each effect.
2019-05-28 02:51:27 +02:00
Vainock 0e39490284 locale: Delete unused language files (#67) 2019-04-28 18:20:56 +02:00
Vainock 438ce1abf9 locale: Fix mistake in locale (#66) 2019-04-28 17:56:31 +02:00
Michael Fabian Dirks 956df8762c locale: New Crowdin translations (#63) 2019-04-27 17:59:31 +02:00
Michael Fabian 'Xaymar' Dirks 9e7894c9c3 filter-dynamic-mask: Implement Dynamic Mask filter
This filter allows the use of another source as a mask, allowing complex filter graphs and trippy effects, such as creating a text source with three animated videos, each using a different color channel as the mask.

Fixes #18.
2019-04-27 17:56:10 +02:00
Vainock b4341e41b3 locale: Add missing dot at the end of a line (#62) 2019-04-23 12:42:27 +02:00
Michael Fabian Dirks 61d5a0341a
locale: New Crowdin translations (#59) 2019-04-21 20:30:59 +02:00
Michael Fabian 'Xaymar' Dirks 3aa663908a locale: Further improve original translations 2019-04-19 08:20:33 +02:00
Michael Fabian Dirks 870625e8e5
locale: Update translations from CrowdIn (#58) 2019-04-15 12:56:21 +02:00
Michael Fabian 'Xaymar' Dirks e24b9a61fa filter-blur: Update long description of Type and Subtype fields
Automatically updates the long description (hover text) if the Type or Subtype field is changed, allowing for more contextual information about what the selected information does.
2019-04-15 12:54:19 +02:00
Michael Fabian 'Xaymar' Dirks c59ec2511b filter-sdf-effects: Refactor to include Glow and Stroke (#2, #4)
This refactors the SDF Effects to use a normal blend function instead of doing the blend in the effect itself, improving quality and reducing problematic sampling issues. In addition to this, the effect files have been cleaned up slightly and renamed to their proper names. Glow and Stroke are now supported, which solves both #2 and #4 in one go.

The caching optimization has also now been implemented, reducing the number of renders for this filter to 1 for each tick.
2019-04-14 14:19:59 +02:00
Michael Fabian Dirks 982dbc655b
locale: Update translations from CrowdIn (#55) 2019-04-14 13:59:02 +02:00
Michael Fabian Dirks 74f9bc0dbf
locale: Update translations from CrowdIn (#53) 2019-04-02 22:43:37 +02:00
Michael Fabian 'Xaymar' Dirks 8e9e39a88e project: Remove unused content 2019-04-02 04:37:37 +02:00
Michael Fabian 'Xaymar' Dirks 21eef998ec filter-blur: Refactor to use new Blur code
This removes the ridiculous amount of hardcoded values and functions and moves everything to the more modular blur approach.

Fixes #45
Fixes #6
2019-04-02 03:50:01 +02:00
Michael Fabian 'Xaymar' Dirks 7c4d46c1fe gfx/blur/dual-filtering: Implement Dual Filtering Blur
Dual Filtering (or Dual Kawase) is an approximation of Gaussian Blur that can reach much higher Blur sizes at a much lower cost. However it is locked to a 2^n size, which means that currently it isn't possible to use it for blur sizes like 19, 24 and 31.

The Blur works by using the linear sampling of a GPU, combined with down- and upsampling and carefully placed sampling points. This means that there is no need for a linear optimized version of this Blur.

Related: #45, #6
2019-04-02 03:50:01 +02:00
Michael Fabian 'Xaymar' Dirks b6d45ce73c gfx/blur/gaussian-linear: Refactor Linear Gaussian Blur
While Gaussian Blur is not a Blur type that really benefits much from linear sampling, it can be used for a slight quality and gpu usage reduction. However for Area and Directional Blur there is a better alternative: Dual Filtering Blur. And as with all other currently implement Linear versions of Blur, only Area and Directional Blur are supported.

This type of Gaussian Blur also has the loading hitch that exists in normal Gaussian Blur.

Related: #45, #6
2019-04-02 03:50:01 +02:00
Michael Fabian 'Xaymar' Dirks fedc8e075c gfx/blur/gaussian: Refactor Gaussian Blur
Gaussian Blur is another Blur that now supports the new system, increasing the maxium Blur size to 128 and adding support for Rotational and Zoom blur. Various optimizations were done to the actual shader code which further reduced the GPU usage.

Currently the Gaussian curve is recalculated when the blur is first created, which can lead to a short hitch due to it having to search for the correct kernels. This is currently unavoidable and expected behavior until a better solution is found.

Related: #45, #6
2019-04-02 03:50:01 +02:00
Michael Fabian 'Xaymar' Dirks 68a8fb9224 gfx/blur/box-linear: Refactor Linear Box Blur
Box Blur is a prime candidate for Linear optimizations, and as such reducing the total necessary samples by about half. However due to the reduction in samples, only Area and Directional Blur are supported.

Related: #45, #6
2019-04-02 03:50:01 +02:00
Michael Fabian 'Xaymar' Dirks 8c5dc3c630 gfx/blur/box: Refactor Box Blur
Box Blur is the first to be on the new system and has received all the new features and optimizations available. The maximum Blur size has been increased to 128, Rotational and Zoom Blur are supported and a small optimization has been done to the shader.

Related: #45, #6
2019-04-02 03:50:01 +02:00
Michael Fabian Dirks 1bcca6cb33
locale: Update translations from CrowdIn (#50) 2019-04-02 03:49:42 +02:00
Michael Fabian Dirks e5cfc2c70d
locale: New Crowdin translations (#49)
Updated translations for german and french.
2019-03-06 03:09:22 +01:00
Michael Fabian Dirks 516d324187
locale: Update translations from CrowdIn (#43) 2019-02-22 20:38:15 +01:00
Michael Fabian Dirks 48b76d2ba6
locale: Update translations from CrowdIn 2019-01-31 05:23:32 +01:00
Michael Fabian 'Xaymar' Dirks 50f05e72ae filter-displacement: Improve displacement quality
Earlier versions tried using Trilinear as the Filter, but the correct name is Linear. With this the sampling is now set to be Linear instead of undetermined.

Additionally the logic for the displacement was adjusted and now no longer renders incorrectly when going from texel to texel. This was due to the unstable math being performed to retrieve the sign of the number, but the sign() command can do it without this math being required.
2019-01-31 04:47:38 +01:00
Michael Fabian 'Xaymar' Dirks 9b4edc8fb0 filter-sdf-effects: Improve shadow rendering
This works around the incorrect shadow on the edge of the Signed Distance Field, but it does not get rid of it completely. Due to linear sampling it will still show at some point so a different solution has to be found in the future.
2019-01-31 02:25:09 +01:00
Michael Fabian 'Xaymar' Dirks ecd17cff6c filter-sdf-effects: Fix colored shadows changing image
Colored shadows previously had an effect on the image color, but this is incorrect if the image is fully opaque. This fixes it by using premultiplied alpha mixing instead.
2019-01-30 03:37:46 +01:00
Michael Fabian 'Xaymar' Dirks 75009c617a filter-sdf-effects: Support for scaling SDF Texture Size
This allows increasing or decreasing the accuracy of the Signed Distance Field at runtime without requiring the initial source to be resized. Use case for this would be small text where the higher quality would only be noticable on the shadow and not the text itself.
2019-01-30 03:12:12 +01:00
Michael Fabian 'Xaymar' Dirks 7cf3e17b9b filter-sdf-effects: Fix black border and add inverse gradient shadow
Sources were rendering with a black border around them if they had a soft fade, which is due to how the shadow calculated the image sample. With the new shader code this is now fixed and the source looks like it should be. Additionally this removes the bug where enabling any shadow would cause only the texels to draw that were above the threshold.

Additionally this adds support for inverse gradients (min > max) and negative gradients for outer shadows instead of only positive gradients. This technically allows for cleaner shadows.
2019-01-30 02:38:34 +01:00
Michael Fabian 'Xaymar' Dirks a699016c61 locale: Update Translated name for SDFEffects 2019-01-29 07:39:01 +01:00
Michael Fabian 'Xaymar' Dirks 3ebbc84ee2 filter-sdf-effects: Rename Shadow (SDF) Filter (Part 2)
This finalizes the rename started in the previous commit by changing the class name and also updating the locale strings
2019-01-29 07:35:14 +01:00