Commit graph

210 commits

Author SHA1 Message Date
Michael Fabian 'Xaymar' Dirks
8971bad218 gfx/blur/gaussian: Fix Gaussian Kernel generation
While the previous method worked, it matches no other implementation including a reference implementation. The new implementation almost perfectly matches the reference implementation and uses oversampling to achieve the goal. This has the downside of limiting the blur size to just 64, but it is necessary in order to achieve correct results.

Fixes #573
2021-06-09 03:46:14 +02:00
Michael Fabian 'Xaymar' Dirks
edd1162a48 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.
2021-06-09 03:46:14 +02:00
Michael Fabian 'Xaymar' Dirks
f6b662ff21 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
2021-06-08 06:02:01 +02:00
Michael Fabian 'Xaymar' Dirks
b365884181 filters/nv-face-tracking: Apply coding guidelines 2021-06-08 05:44:22 +02:00
Xaymar
8d6172b4a1
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)
2021-05-28 23:49:33 +02:00
Xaymar
a4930aa4b6
locale: New Crowdin updates (#549) 2021-05-22 03:24:01 +02:00
Michael Fabian 'Xaymar' Dirks
a1dbb2e75b examples: Improve 'crt-scanlines.effect' 2021-04-25 15:37:32 +02:00
Michael Fabian 'Xaymar' Dirks
a755809805 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 %.
2021-04-25 15:37:32 +02:00
Michael Fabian 'Xaymar' Dirks
95ae20e504 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.
2021-04-25 15:37:32 +02:00
Xaymar
30f18faaba
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)
2021-04-25 01:16:15 +02:00
Michael Fabian 'Xaymar' Dirks
2ba94dabbc ui/about: Remove outdated entry roles 2021-04-24 00:05:28 +02:00
Michael Fabian 'Xaymar' Dirks
ffc14e1d2d filters/color-grading: Use explicit matrix initializer for GLSL support
Fixes #510
2021-04-22 12:12:49 +02:00
Xaymar
9a107de1ce
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)
2021-04-18 14:57:43 +02:00
Michael Fabian 'Xaymar' Dirks
5baf8524d5 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.
2021-04-17 03:34:39 +02:00
Michael Fabian 'Xaymar' Dirks
36b12d971b filters/color-grading: Fix incorrect Lift logic (#515)
Fixes #515
2021-04-14 13:41:52 +02:00
Michael Fabian 'Xaymar' Dirks
895b1a06e6 filters/color-grading: Fix Gamma function and improve code readability
Fixes #510
2021-04-14 13:41:52 +02:00
Michael Fabian 'Xaymar' Dirks
bd0831bf9b filters/color-grading: Replace log10 command for GLSL (#510)
Fixes #510
2021-04-14 13:41:52 +02:00
Xaymar
42f47898bf
locale: New Crowdin updates (#500) 2021-04-08 09:48:15 +02:00
Xaymar
f25123f717 locale: New Crowdin updates (#482) 2021-03-28 08:48:41 +02:00
Xaymar
aad4835fe9
locale: New Crowdin updates (#464)
* New translations en-US.ini (Japanese)
2021-02-21 04:35:36 +01:00
Michael Fabian 'Xaymar' Dirks
e436d22367 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.
2021-02-06 16:22:22 +01:00
Michael Fabian 'Xaymar' Dirks
f396f52054 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.
2021-02-06 16:22:22 +01:00
Michael Fabian 'Xaymar' Dirks
92e0c03008 effects: Add RGB, HSV, and YUV conversion functions 2021-02-06 16:22:22 +01:00
Michael Fabian 'Xaymar' Dirks
6d1d85ae2b effects: Add generic shared header with common code 2021-02-06 16:22:22 +01:00
Xaymar
7b2da84ded
locale: New Crowdin updates (#449)
* New translations en-US.ini (French)
2021-02-06 13:35:50 +01:00
kilin
999362b5f9
examples: Add Pixelation filter shader (#418) 2021-02-06 13:18:05 +01:00
Xaymar
e10d4d106b
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)
2021-01-31 17:21:14 +01:00
Xaymar
9300acec84
locale: New Crowdin updates (#397) 2020-12-04 13:37:29 +01:00
Xaymar
6d1492e57f
locale: New Crowdin updates (Turkish) (#373) 2020-12-04 08:34:05 +01:00
Michael Fabian 'Xaymar' Dirks
cbd75767fa 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.
2020-12-04 08:32:20 +01:00
Michael Fabian 'Xaymar' Dirks
ad249a8e73 examples: Fix typo "_Random" -> "Random"
Fixes: #356
2020-11-02 01:49:49 +01:00
Daniel Hodgson
96ea36e07a
examples: Added adjustable luminance to hexagon size (#364) 2020-11-01 17:28:45 +01:00
Daniel Hodgson
6841e883a9
examples: Fix incorrect angles for "hexagonize" effect
The value for "deg30" was incorrectly calculated as (pi / 15.0) instead of (tau / 12.0).
2020-10-31 11:28:18 +01:00
Xaymar
a769bc4548
locale: New Crowdin updates (#342) 2020-10-09 22:01:11 +02:00
Michael Fabian Dirks
01ce07327b
locale: New Crowdin updates (#335) 2020-09-25 21:34:17 +02:00
Michael Fabian 'Xaymar' Dirks
81a970473f 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.
2020-09-24 02:01:40 +02:00
Michael Fabian Dirks
7c55202140
locale: New Crowdin updates (#308) 2020-09-07 22:39:47 +02:00
Charles Fettinger
1794a8c7dd
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.
2020-09-07 22:06:30 +02:00
Robert Moggach
f2ec4200cf
examples/sahders: Add concentric rings shader (ShaderToy: Xsl3RX) (#310) 2020-08-10 02:29:32 +02:00
Michael Fabian Dirks
c9c6f1803d
locale: Update with latest Crowdin changes 2020-07-26 19:24:24 +02:00
Charles Fettinger
60686e7f23
examples/shaders: Add Shadertoy effects and conversion template (#270) 2020-07-14 16:59:00 +02:00
Michael Fabian 'Xaymar' Dirks
d5f34f5a41 encoders/handlers/nvenc: Update locale text
The new text should make it easier to understand for end-users.
2020-07-06 01:28:30 +02:00
Michael Fabian 'Xaymar' Dirks
f10258becb encoders/handlers/nvenc: Don't list 'each' mode for H.264 2020-07-06 01:28:30 +02:00
Michael Fabian 'Xaymar' Dirks
1ba3db5719 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".
2020-07-06 01:28:30 +02:00
Michael Fabian 'Xaymar' Dirks
2f9eeb3e6a examples/shaders: Add new per-activation random to sliding bars transition 2020-07-06 01:27:23 +02:00
Michael Fabian 'Xaymar' Dirks
717b38f3f7 gfx/shader: Add Per-Instance/Activation/Frame Random values 2020-07-06 01:27:23 +02:00
Michael Fabian 'Xaymar' Dirks
6e0f85d3f7 encoders/ffmpeg: Rebase onto obs::encoder_factory 2020-06-21 19:24:58 +02:00
Michael Fabian 'Xaymar' Dirks
7b8774b834 gfx/shader: Inlining, std::string_view and optimizations 2020-05-31 01:41:07 +02:00
Michael Fabian Dirks
5aed075978
locale: New Crowdin translations (#195) 2020-05-13 04:21:14 +02:00
Michael Fabian 'Xaymar' Dirks
f111330f8e 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.
2020-05-13 02:30:15 +02:00