noobs 0.0.115 → 0.0.131

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (209) hide show
  1. package/dist/data/obs-plugins/obs-filters/LUTs/black_and_white.png +0 -0
  2. package/dist/data/obs-plugins/obs-filters/LUTs/grayscale.cube +32769 -0
  3. package/dist/data/obs-plugins/obs-filters/LUTs/grayscale.png +0 -0
  4. package/dist/data/obs-plugins/obs-filters/LUTs/invert.png +0 -0
  5. package/dist/data/obs-plugins/obs-filters/LUTs/original.cube +33 -0
  6. package/dist/data/obs-plugins/obs-filters/LUTs/original.png +0 -0
  7. package/dist/data/obs-plugins/obs-filters/LUTs/posterize.png +0 -0
  8. package/dist/data/obs-plugins/obs-filters/LUTs/red_isolated.png +0 -0
  9. package/dist/data/obs-plugins/obs-filters/LUTs/teal_lows_orange_highs.png +0 -0
  10. package/dist/data/obs-plugins/obs-filters/blend_add_filter.effect +54 -0
  11. package/dist/data/obs-plugins/obs-filters/blend_mul_filter.effect +54 -0
  12. package/dist/data/obs-plugins/obs-filters/blend_sub_filter.effect +54 -0
  13. package/dist/data/obs-plugins/obs-filters/chroma_key_filter.effect +99 -0
  14. package/dist/data/obs-plugins/obs-filters/chroma_key_filter_v2.effect +111 -0
  15. package/dist/data/obs-plugins/obs-filters/color.effect +95 -0
  16. package/dist/data/obs-plugins/obs-filters/color_correction_filter.effect +74 -0
  17. package/dist/data/obs-plugins/obs-filters/color_grade_filter.effect +177 -0
  18. package/dist/data/obs-plugins/obs-filters/color_key_filter.effect +65 -0
  19. package/dist/data/obs-plugins/obs-filters/color_key_filter_v2.effect +77 -0
  20. package/dist/data/obs-plugins/obs-filters/crop_filter.effect +95 -0
  21. package/dist/data/obs-plugins/obs-filters/hdr_tonemap_filter.effect +97 -0
  22. package/dist/data/obs-plugins/obs-filters/locale/af-ZA.ini +89 -0
  23. package/dist/data/obs-plugins/obs-filters/locale/ar-SA.ini +133 -0
  24. package/dist/data/obs-plugins/obs-filters/locale/az-AZ.ini +1 -0
  25. package/dist/data/obs-plugins/obs-filters/locale/ba-RU.ini +19 -0
  26. package/dist/data/obs-plugins/obs-filters/locale/be-BY.ini +134 -0
  27. package/dist/data/obs-plugins/obs-filters/locale/bg-BG.ini +71 -0
  28. package/dist/data/obs-plugins/obs-filters/locale/bn-BD.ini +106 -0
  29. package/dist/data/obs-plugins/obs-filters/locale/ca-ES.ini +128 -0
  30. package/dist/data/obs-plugins/obs-filters/locale/cs-CZ.ini +130 -0
  31. package/dist/data/obs-plugins/obs-filters/locale/da-DK.ini +119 -0
  32. package/dist/data/obs-plugins/obs-filters/locale/de-DE.ini +113 -0
  33. package/dist/data/obs-plugins/obs-filters/locale/el-GR.ini +128 -0
  34. package/dist/data/obs-plugins/obs-filters/locale/en-GB.ini +12 -0
  35. package/dist/data/obs-plugins/obs-filters/locale/en-US.ini +138 -0
  36. package/dist/data/obs-plugins/obs-filters/locale/eo-UY.ini +1 -0
  37. package/dist/data/obs-plugins/obs-filters/locale/es-ES.ini +129 -0
  38. package/dist/data/obs-plugins/obs-filters/locale/et-EE.ini +132 -0
  39. package/dist/data/obs-plugins/obs-filters/locale/eu-ES.ini +127 -0
  40. package/dist/data/obs-plugins/obs-filters/locale/fa-IR.ini +137 -0
  41. package/dist/data/obs-plugins/obs-filters/locale/fi-FI.ini +127 -0
  42. package/dist/data/obs-plugins/obs-filters/locale/fil-PH.ini +111 -0
  43. package/dist/data/obs-plugins/obs-filters/locale/fr-FR.ini +124 -0
  44. package/dist/data/obs-plugins/obs-filters/locale/gd-GB.ini +94 -0
  45. package/dist/data/obs-plugins/obs-filters/locale/gl-ES.ini +132 -0
  46. package/dist/data/obs-plugins/obs-filters/locale/he-IL.ini +135 -0
  47. package/dist/data/obs-plugins/obs-filters/locale/hi-IN.ini +134 -0
  48. package/dist/data/obs-plugins/obs-filters/locale/hr-HR.ini +80 -0
  49. package/dist/data/obs-plugins/obs-filters/locale/hu-HU.ini +131 -0
  50. package/dist/data/obs-plugins/obs-filters/locale/hy-AM.ini +130 -0
  51. package/dist/data/obs-plugins/obs-filters/locale/id-ID.ini +112 -0
  52. package/dist/data/obs-plugins/obs-filters/locale/it-IT.ini +130 -0
  53. package/dist/data/obs-plugins/obs-filters/locale/ja-JP.ini +134 -0
  54. package/dist/data/obs-plugins/obs-filters/locale/ka-GE.ini +133 -0
  55. package/dist/data/obs-plugins/obs-filters/locale/kaa.ini +41 -0
  56. package/dist/data/obs-plugins/obs-filters/locale/kab-KAB.ini +56 -0
  57. package/dist/data/obs-plugins/obs-filters/locale/kmr-TR.ini +126 -0
  58. package/dist/data/obs-plugins/obs-filters/locale/ko-KR.ini +134 -0
  59. package/dist/data/obs-plugins/obs-filters/locale/ms-MY.ini +131 -0
  60. package/dist/data/obs-plugins/obs-filters/locale/nb-NO.ini +115 -0
  61. package/dist/data/obs-plugins/obs-filters/locale/nl-NL.ini +111 -0
  62. package/dist/data/obs-plugins/obs-filters/locale/nn-NO.ini +19 -0
  63. package/dist/data/obs-plugins/obs-filters/locale/pl-PL.ini +127 -0
  64. package/dist/data/obs-plugins/obs-filters/locale/pt-BR.ini +128 -0
  65. package/dist/data/obs-plugins/obs-filters/locale/pt-PT.ini +130 -0
  66. package/dist/data/obs-plugins/obs-filters/locale/ro-RO.ini +125 -0
  67. package/dist/data/obs-plugins/obs-filters/locale/ru-RU.ini +135 -0
  68. package/dist/data/obs-plugins/obs-filters/locale/si-LK.ini +44 -0
  69. package/dist/data/obs-plugins/obs-filters/locale/sk-SK.ini +131 -0
  70. package/dist/data/obs-plugins/obs-filters/locale/sl-SI.ini +133 -0
  71. package/dist/data/obs-plugins/obs-filters/locale/sr-CS.ini +90 -0
  72. package/dist/data/obs-plugins/obs-filters/locale/sr-SP.ini +97 -0
  73. package/dist/data/obs-plugins/obs-filters/locale/sv-SE.ini +129 -0
  74. package/dist/data/obs-plugins/obs-filters/locale/szl-PL.ini +94 -0
  75. package/dist/data/obs-plugins/obs-filters/locale/ta-IN.ini +28 -0
  76. package/dist/data/obs-plugins/obs-filters/locale/th-TH.ini +132 -0
  77. package/dist/data/obs-plugins/obs-filters/locale/tl-PH.ini +64 -0
  78. package/dist/data/obs-plugins/obs-filters/locale/tr-TR.ini +129 -0
  79. package/dist/data/obs-plugins/obs-filters/locale/tt-RU.ini +27 -0
  80. package/dist/data/obs-plugins/obs-filters/locale/ug-CN.ini +133 -0
  81. package/dist/data/obs-plugins/obs-filters/locale/uk-UA.ini +135 -0
  82. package/dist/data/obs-plugins/obs-filters/locale/vi-VN.ini +131 -0
  83. package/dist/data/obs-plugins/obs-filters/locale/zh-CN.ini +138 -0
  84. package/dist/data/obs-plugins/obs-filters/locale/zh-TW.ini +136 -0
  85. package/dist/data/obs-plugins/obs-filters/luma_key_filter.effect +52 -0
  86. package/dist/data/obs-plugins/obs-filters/luma_key_filter_v2.effect +54 -0
  87. package/dist/data/obs-plugins/obs-filters/mask_alpha_filter.effect +54 -0
  88. package/dist/data/obs-plugins/obs-filters/mask_color_filter.effect +55 -0
  89. package/dist/data/obs-plugins/obs-filters/rtx_greenscreen.effect +183 -0
  90. package/dist/data/obs-plugins/obs-filters/sharpness.effect +76 -0
  91. package/dist/data/obs-plugins/obs-nvenc/locale/ar-SA.ini +60 -0
  92. package/dist/data/obs-plugins/obs-nvenc/locale/be-BY.ini +59 -0
  93. package/dist/data/obs-plugins/obs-nvenc/locale/bg-BG.ini +2 -0
  94. package/dist/data/obs-plugins/obs-nvenc/locale/ca-ES.ini +59 -0
  95. package/dist/data/obs-plugins/obs-nvenc/locale/cs-CZ.ini +55 -0
  96. package/dist/data/obs-plugins/obs-nvenc/locale/da-DK.ini +54 -0
  97. package/dist/data/obs-plugins/obs-nvenc/locale/de-DE.ini +55 -0
  98. package/dist/data/obs-plugins/obs-nvenc/locale/en-GB.ini +9 -0
  99. package/dist/data/obs-plugins/obs-nvenc/locale/en-US.ini +75 -0
  100. package/dist/data/obs-plugins/obs-nvenc/locale/es-ES.ini +59 -0
  101. package/dist/data/obs-plugins/obs-nvenc/locale/et-EE.ini +36 -0
  102. package/dist/data/obs-plugins/obs-nvenc/locale/fa-IR.ini +60 -0
  103. package/dist/data/obs-plugins/obs-nvenc/locale/fi-FI.ini +59 -0
  104. package/dist/data/obs-plugins/obs-nvenc/locale/fr-FR.ini +59 -0
  105. package/dist/data/obs-plugins/obs-nvenc/locale/gl-ES.ini +60 -0
  106. package/dist/data/obs-plugins/obs-nvenc/locale/he-IL.ini +60 -0
  107. package/dist/data/obs-plugins/obs-nvenc/locale/hi-IN.ini +60 -0
  108. package/dist/data/obs-plugins/obs-nvenc/locale/hu-HU.ini +60 -0
  109. package/dist/data/obs-plugins/obs-nvenc/locale/id-ID.ini +55 -0
  110. package/dist/data/obs-plugins/obs-nvenc/locale/is-IS.ini +2 -0
  111. package/dist/data/obs-plugins/obs-nvenc/locale/it-IT.ini +60 -0
  112. package/dist/data/obs-plugins/obs-nvenc/locale/ja-JP.ini +59 -0
  113. package/dist/data/obs-plugins/obs-nvenc/locale/ka-GE.ini +60 -0
  114. package/dist/data/obs-plugins/obs-nvenc/locale/kaa.ini +13 -0
  115. package/dist/data/obs-plugins/obs-nvenc/locale/kmr-TR.ini +20 -0
  116. package/dist/data/obs-plugins/obs-nvenc/locale/ko-KR.ini +58 -0
  117. package/dist/data/obs-plugins/obs-nvenc/locale/ms-MY.ini +58 -0
  118. package/dist/data/obs-plugins/obs-nvenc/locale/nb-NO.ini +24 -0
  119. package/dist/data/obs-plugins/obs-nvenc/locale/nl-NL.ini +54 -0
  120. package/dist/data/obs-plugins/obs-nvenc/locale/nn-NO.ini +1 -0
  121. package/dist/data/obs-plugins/obs-nvenc/locale/pl-PL.ini +55 -0
  122. package/dist/data/obs-plugins/obs-nvenc/locale/pt-BR.ini +58 -0
  123. package/dist/data/obs-plugins/obs-nvenc/locale/pt-PT.ini +60 -0
  124. package/dist/data/obs-plugins/obs-nvenc/locale/ru-RU.ini +60 -0
  125. package/dist/data/obs-plugins/obs-nvenc/locale/sk-SK.ini +56 -0
  126. package/dist/data/obs-plugins/obs-nvenc/locale/sv-SE.ini +58 -0
  127. package/dist/data/obs-plugins/obs-nvenc/locale/th-TH.ini +59 -0
  128. package/dist/data/obs-plugins/obs-nvenc/locale/tr-TR.ini +60 -0
  129. package/dist/data/obs-plugins/obs-nvenc/locale/tt-RU.ini +2 -0
  130. package/dist/data/obs-plugins/obs-nvenc/locale/ug-CN.ini +60 -0
  131. package/dist/data/obs-plugins/obs-nvenc/locale/uk-UA.ini +60 -0
  132. package/dist/data/obs-plugins/obs-nvenc/locale/vi-VN.ini +60 -0
  133. package/dist/data/obs-plugins/obs-nvenc/locale/zh-CN.ini +60 -0
  134. package/dist/data/obs-plugins/obs-nvenc/locale/zh-TW.ini +60 -0
  135. package/dist/data/obs-plugins/obs-qsv11/locale/af-ZA.ini +19 -0
  136. package/dist/data/obs-plugins/obs-qsv11/locale/ar-SA.ini +20 -0
  137. package/dist/data/obs-plugins/obs-qsv11/locale/ba-RU.ini +2 -0
  138. package/dist/data/obs-plugins/obs-qsv11/locale/be-BY.ini +20 -0
  139. package/dist/data/obs-plugins/obs-qsv11/locale/bg-BG.ini +7 -0
  140. package/dist/data/obs-plugins/obs-qsv11/locale/bn-BD.ini +8 -0
  141. package/dist/data/obs-plugins/obs-qsv11/locale/ca-ES.ini +20 -0
  142. package/dist/data/obs-plugins/obs-qsv11/locale/cs-CZ.ini +19 -0
  143. package/dist/data/obs-plugins/obs-qsv11/locale/da-DK.ini +19 -0
  144. package/dist/data/obs-plugins/obs-qsv11/locale/de-DE.ini +19 -0
  145. package/dist/data/obs-plugins/obs-qsv11/locale/el-GR.ini +20 -0
  146. package/dist/data/obs-plugins/obs-qsv11/locale/en-GB.ini +1 -0
  147. package/dist/data/obs-plugins/obs-qsv11/locale/en-US.ini +21 -0
  148. package/dist/data/obs-plugins/obs-qsv11/locale/es-ES.ini +19 -0
  149. package/dist/data/obs-plugins/obs-qsv11/locale/et-EE.ini +20 -0
  150. package/dist/data/obs-plugins/obs-qsv11/locale/eu-ES.ini +11 -0
  151. package/dist/data/obs-plugins/obs-qsv11/locale/fa-IR.ini +20 -0
  152. package/dist/data/obs-plugins/obs-qsv11/locale/fi-FI.ini +20 -0
  153. package/dist/data/obs-plugins/obs-qsv11/locale/fil-PH.ini +11 -0
  154. package/dist/data/obs-plugins/obs-qsv11/locale/fr-FR.ini +20 -0
  155. package/dist/data/obs-plugins/obs-qsv11/locale/gd-GB.ini +8 -0
  156. package/dist/data/obs-plugins/obs-qsv11/locale/gl-ES.ini +20 -0
  157. package/dist/data/obs-plugins/obs-qsv11/locale/he-IL.ini +20 -0
  158. package/dist/data/obs-plugins/obs-qsv11/locale/hi-IN.ini +20 -0
  159. package/dist/data/obs-plugins/obs-qsv11/locale/hr-HR.ini +14 -0
  160. package/dist/data/obs-plugins/obs-qsv11/locale/hu-HU.ini +20 -0
  161. package/dist/data/obs-plugins/obs-qsv11/locale/hy-AM.ini +13 -0
  162. package/dist/data/obs-plugins/obs-qsv11/locale/id-ID.ini +18 -0
  163. package/dist/data/obs-plugins/obs-qsv11/locale/is-IS.ini +1 -0
  164. package/dist/data/obs-plugins/obs-qsv11/locale/it-IT.ini +20 -0
  165. package/dist/data/obs-plugins/obs-qsv11/locale/ja-JP.ini +16 -0
  166. package/dist/data/obs-plugins/obs-qsv11/locale/ka-GE.ini +20 -0
  167. package/dist/data/obs-plugins/obs-qsv11/locale/kaa.ini +10 -0
  168. package/dist/data/obs-plugins/obs-qsv11/locale/kab-KAB.ini +5 -0
  169. package/dist/data/obs-plugins/obs-qsv11/locale/kmr-TR.ini +12 -0
  170. package/dist/data/obs-plugins/obs-qsv11/locale/ko-KR.ini +20 -0
  171. package/dist/data/obs-plugins/obs-qsv11/locale/ms-MY.ini +20 -0
  172. package/dist/data/obs-plugins/obs-qsv11/locale/nb-NO.ini +16 -0
  173. package/dist/data/obs-plugins/obs-qsv11/locale/nl-NL.ini +18 -0
  174. package/dist/data/obs-plugins/obs-qsv11/locale/nn-NO.ini +2 -0
  175. package/dist/data/obs-plugins/obs-qsv11/locale/oc-FR.ini +1 -0
  176. package/dist/data/obs-plugins/obs-qsv11/locale/pl-PL.ini +16 -0
  177. package/dist/data/obs-plugins/obs-qsv11/locale/pt-BR.ini +20 -0
  178. package/dist/data/obs-plugins/obs-qsv11/locale/pt-PT.ini +20 -0
  179. package/dist/data/obs-plugins/obs-qsv11/locale/ro-RO.ini +20 -0
  180. package/dist/data/obs-plugins/obs-qsv11/locale/ru-RU.ini +20 -0
  181. package/dist/data/obs-plugins/obs-qsv11/locale/si-LK.ini +8 -0
  182. package/dist/data/obs-plugins/obs-qsv11/locale/sk-SK.ini +19 -0
  183. package/dist/data/obs-plugins/obs-qsv11/locale/sl-SI.ini +20 -0
  184. package/dist/data/obs-plugins/obs-qsv11/locale/sr-CS.ini +6 -0
  185. package/dist/data/obs-plugins/obs-qsv11/locale/sr-SP.ini +10 -0
  186. package/dist/data/obs-plugins/obs-qsv11/locale/sv-SE.ini +20 -0
  187. package/dist/data/obs-plugins/obs-qsv11/locale/ta-IN.ini +2 -0
  188. package/dist/data/obs-plugins/obs-qsv11/locale/th-TH.ini +20 -0
  189. package/dist/data/obs-plugins/obs-qsv11/locale/tl-PH.ini +5 -0
  190. package/dist/data/obs-plugins/obs-qsv11/locale/tr-TR.ini +20 -0
  191. package/dist/data/obs-plugins/obs-qsv11/locale/tt-RU.ini +3 -0
  192. package/dist/data/obs-plugins/obs-qsv11/locale/ug-CN.ini +20 -0
  193. package/dist/data/obs-plugins/obs-qsv11/locale/uk-UA.ini +20 -0
  194. package/dist/data/obs-plugins/obs-qsv11/locale/vi-VN.ini +20 -0
  195. package/dist/data/obs-plugins/obs-qsv11/locale/zh-CN.ini +20 -0
  196. package/dist/data/obs-plugins/obs-qsv11/locale/zh-TW.ini +20 -0
  197. package/dist/noobs.node +0 -0
  198. package/dist/obs-plugins/image-source.dll +0 -0
  199. package/dist/obs-plugins/obs-filters.dll +0 -0
  200. package/dist/obs-plugins/obs-nvenc.dll +0 -0
  201. package/dist/obs-plugins/obs-qsv11.dll +0 -0
  202. package/dist/obs-plugins/obs-x264.dll +0 -0
  203. package/dist/obs-plugins/win-capture.dll +0 -0
  204. package/dist/obs-plugins/win-wasapi.dll +0 -0
  205. package/index.d.ts +5 -8
  206. package/package.json +1 -1
  207. package/src/main.cpp +34 -65
  208. package/src/obs_interface.cpp +322 -215
  209. package/src/obs_interface.h +29 -27
@@ -0,0 +1,177 @@
1
+ uniform float4x4 ViewProj;
2
+ uniform texture2d image;
3
+
4
+ uniform texture2d clut_1d;
5
+ uniform texture3d clut_3d;
6
+ uniform float clut_amount;
7
+ uniform float3 clut_scale;
8
+ uniform float3 clut_offset;
9
+ uniform float3 domain_min;
10
+ uniform float3 domain_max;
11
+
12
+ sampler_state textureSampler {
13
+ Filter = Linear;
14
+ AddressU = Clamp;
15
+ AddressV = Clamp;
16
+ AddressW = Clamp;
17
+ };
18
+
19
+ struct VertDataIn {
20
+ float4 pos : POSITION;
21
+ float2 uv : TEXCOORD0;
22
+ };
23
+
24
+ struct VertDataOut {
25
+ float4 pos : POSITION;
26
+ float2 uv : TEXCOORD0;
27
+ };
28
+
29
+ VertDataOut VSDefault(VertDataIn v_in)
30
+ {
31
+ VertDataOut vert_out;
32
+ vert_out.uv = v_in.uv;
33
+ vert_out.pos = mul(float4(v_in.pos.xyz, 1.0), ViewProj);
34
+ return vert_out;
35
+ }
36
+
37
+ float srgb_linear_to_nonlinear_channel(float u)
38
+ {
39
+ return (u <= 0.0031308) ? (12.92 * u) : ((1.055 * pow(u, 1.0 / 2.4)) - 0.055);
40
+ }
41
+
42
+ float3 srgb_linear_to_nonlinear(float3 v)
43
+ {
44
+ return float3(srgb_linear_to_nonlinear_channel(v.r), srgb_linear_to_nonlinear_channel(v.g), srgb_linear_to_nonlinear_channel(v.b));
45
+ }
46
+
47
+ float4 LUT1D(VertDataOut v_in) : TARGET
48
+ {
49
+ float4 textureColor = image.Sample(textureSampler, v_in.uv);
50
+ textureColor.rgb *= (textureColor.a > 0.) ? (1. / textureColor.a) : 0.;
51
+ float3 nonlinear = srgb_linear_to_nonlinear(textureColor.rgb);
52
+
53
+ if (nonlinear.r >= domain_min.r && nonlinear.r <= domain_max.r) {
54
+ float u = nonlinear.r * clut_scale.r + clut_offset.r;
55
+ float channel = clut_1d.Sample(textureSampler, float2(u, 0.5)).r;
56
+ textureColor.r = lerp(textureColor.r, channel, clut_amount);
57
+ }
58
+
59
+ if (nonlinear.g >= domain_min.g && nonlinear.g <= domain_max.g) {
60
+ float u = nonlinear.g * clut_scale.g + clut_offset.g;
61
+ float channel = clut_1d.Sample(textureSampler, float2(u, 0.5)).g;
62
+ textureColor.g = lerp(textureColor.g, channel, clut_amount);
63
+ }
64
+
65
+ if (nonlinear.b >= domain_min.b && nonlinear.b <= domain_max.b) {
66
+ float u = nonlinear.b * clut_scale.b + clut_offset.b;
67
+ float channel = clut_1d.Sample(textureSampler, float2(u, 0.5)).b;
68
+ textureColor.b = lerp(textureColor.b, channel, clut_amount);
69
+ }
70
+
71
+ return textureColor;
72
+ }
73
+
74
+ float4 LUT3D(VertDataOut v_in) : TARGET
75
+ {
76
+ float4 textureColor = image.Sample(textureSampler, v_in.uv);
77
+ float3 nonlinear = srgb_linear_to_nonlinear(textureColor.rgb);
78
+
79
+ float3 clut_uvw = nonlinear * clut_scale + clut_offset;
80
+ textureColor.rgb = clut_3d.Sample(textureSampler, clut_uvw).rgb;
81
+
82
+ return textureColor;
83
+ }
84
+
85
+ float4 LUTAlpha3D(VertDataOut v_in) : TARGET
86
+ {
87
+ float4 textureColor = image.Sample(textureSampler, v_in.uv);
88
+ textureColor.rgb *= (textureColor.a > 0.) ? (1. / textureColor.a) : 0.;
89
+ float3 nonlinear = srgb_linear_to_nonlinear(textureColor.rgb);
90
+
91
+ float3 clut_uvw = nonlinear * clut_scale + clut_offset;
92
+ textureColor.rgb = clut_3d.Sample(textureSampler, clut_uvw).rgb;
93
+
94
+ textureColor.rgb *= textureColor.a;
95
+ return textureColor;
96
+ }
97
+
98
+ float4 LUTAmount3D(VertDataOut v_in) : TARGET
99
+ {
100
+ float4 textureColor = image.Sample(textureSampler, v_in.uv);
101
+ textureColor.rgb *= (textureColor.a > 0.) ? (1. / textureColor.a) : 0.;
102
+ float3 nonlinear = srgb_linear_to_nonlinear(textureColor.rgb);
103
+
104
+ float3 clut_uvw = nonlinear * clut_scale + clut_offset;
105
+ float3 luttedColor = clut_3d.Sample(textureSampler, clut_uvw).rgb;
106
+ textureColor.rgb = lerp(textureColor.rgb, luttedColor, clut_amount);
107
+
108
+ textureColor.rgb *= textureColor.a;
109
+ return textureColor;
110
+ }
111
+
112
+ float4 LUTDomain3D(VertDataOut v_in) : TARGET
113
+ {
114
+ float4 textureColor = image.Sample(textureSampler, v_in.uv);
115
+ textureColor.rgb *= (textureColor.a > 0.) ? (1. / textureColor.a) : 0.;
116
+ float3 nonlinear = srgb_linear_to_nonlinear(textureColor.rgb);
117
+
118
+ float r = nonlinear.r;
119
+ float g = nonlinear.g;
120
+ float b = nonlinear.b;
121
+ if (r >= domain_min.r && r <= domain_max.r &&
122
+ g >= domain_min.g && g <= domain_max.g &&
123
+ b >= domain_min.b && b <= domain_max.b)
124
+ {
125
+ float3 clut_uvw = nonlinear * clut_scale + clut_offset;
126
+ float3 luttedColor = clut_3d.Sample(textureSampler, clut_uvw).rgb;
127
+ textureColor.rgb = lerp(textureColor.rgb, luttedColor, clut_amount);
128
+ }
129
+
130
+ textureColor.rgb *= textureColor.a;
131
+ return textureColor;
132
+ }
133
+
134
+ technique Draw1D
135
+ {
136
+ pass
137
+ {
138
+ vertex_shader = VSDefault(v_in);
139
+ pixel_shader = LUT1D(v_in);
140
+ }
141
+ }
142
+
143
+ technique Draw3D
144
+ {
145
+ pass
146
+ {
147
+ vertex_shader = VSDefault(v_in);
148
+ pixel_shader = LUT3D(v_in);
149
+ }
150
+ }
151
+
152
+ technique DrawAlpha3D
153
+ {
154
+ pass
155
+ {
156
+ vertex_shader = VSDefault(v_in);
157
+ pixel_shader = LUTAlpha3D(v_in);
158
+ }
159
+ }
160
+
161
+ technique DrawAmount3D
162
+ {
163
+ pass
164
+ {
165
+ vertex_shader = VSDefault(v_in);
166
+ pixel_shader = LUTAmount3D(v_in);
167
+ }
168
+ }
169
+
170
+ technique DrawDomain3D
171
+ {
172
+ pass
173
+ {
174
+ vertex_shader = VSDefault(v_in);
175
+ pixel_shader = LUTDomain3D(v_in);
176
+ }
177
+ }
@@ -0,0 +1,65 @@
1
+ uniform float4x4 ViewProj;
2
+ uniform texture2d image;
3
+
4
+ uniform float4 color;
5
+ uniform float contrast;
6
+ uniform float brightness;
7
+ uniform float gamma;
8
+
9
+ uniform float4 key_color;
10
+ uniform float similarity;
11
+ uniform float smoothness;
12
+
13
+ sampler_state textureSampler {
14
+ Filter = Linear;
15
+ AddressU = Clamp;
16
+ AddressV = Clamp;
17
+ };
18
+
19
+ struct VertData {
20
+ float4 pos : POSITION;
21
+ float2 uv : TEXCOORD0;
22
+ };
23
+
24
+ VertData VSDefault(VertData v_in)
25
+ {
26
+ VertData vert_out;
27
+ vert_out.pos = mul(float4(v_in.pos.xyz, 1.0), ViewProj);
28
+ vert_out.uv = v_in.uv;
29
+ return vert_out;
30
+ }
31
+
32
+ float4 CalcColor(float4 rgba)
33
+ {
34
+ return float4(pow(rgba.rgb, float3(gamma, gamma, gamma)) * contrast + brightness, rgba.a);
35
+ }
36
+
37
+ float GetColorDist(float3 rgb)
38
+ {
39
+ return distance(key_color.rgb, rgb);
40
+ }
41
+
42
+ float4 ProcessColorKey(float4 rgba, VertData v_in)
43
+ {
44
+ float colorDist = GetColorDist(rgba.rgb);
45
+ rgba.a *= saturate(max(colorDist - similarity, 0.0) / smoothness);
46
+
47
+ return CalcColor(rgba);
48
+ }
49
+
50
+ float4 PSColorKeyRGBA(VertData v_in) : TARGET
51
+ {
52
+ float4 rgba = image.Sample(textureSampler, v_in.uv);
53
+ rgba.rgb *= (rgba.a > 0.) ? (1. / rgba.a) : 0.;
54
+ rgba *= color;
55
+ return ProcessColorKey(rgba, v_in);
56
+ }
57
+
58
+ technique Draw
59
+ {
60
+ pass
61
+ {
62
+ vertex_shader = VSDefault(v_in);
63
+ pixel_shader = PSColorKeyRGBA(v_in);
64
+ }
65
+ }
@@ -0,0 +1,77 @@
1
+ uniform float4x4 ViewProj;
2
+ uniform texture2d image;
3
+
4
+ uniform float opacity;
5
+ uniform float contrast;
6
+ uniform float brightness;
7
+ uniform float gamma;
8
+
9
+ uniform float4 key_color;
10
+ uniform float similarity;
11
+ uniform float smoothness;
12
+
13
+ sampler_state textureSampler {
14
+ Filter = Linear;
15
+ AddressU = Clamp;
16
+ AddressV = Clamp;
17
+ };
18
+
19
+ struct VertData {
20
+ float4 pos : POSITION;
21
+ float2 uv : TEXCOORD0;
22
+ };
23
+
24
+ VertData VSDefault(VertData v_in)
25
+ {
26
+ VertData vert_out;
27
+ vert_out.pos = mul(float4(v_in.pos.xyz, 1.0), ViewProj);
28
+ vert_out.uv = v_in.uv;
29
+ return vert_out;
30
+ }
31
+
32
+ float4 CalcColor(float4 rgba)
33
+ {
34
+ return float4(pow(rgba.rgb, float3(gamma, gamma, gamma)) * contrast + brightness, rgba.a);
35
+ }
36
+
37
+ float GetNonlinearChannel(float u)
38
+ {
39
+ return (u <= 0.0031308) ? (12.92 * u) : ((1.055 * pow(u, 1.0 / 2.4)) - 0.055);
40
+ }
41
+
42
+ float3 GetNonlinearColor(float3 rgb)
43
+ {
44
+ return float3(GetNonlinearChannel(rgb.r), GetNonlinearChannel(rgb.g), GetNonlinearChannel(rgb.b));
45
+ }
46
+
47
+ float GetColorDist(float3 rgb)
48
+ {
49
+ return distance(key_color.rgb, GetNonlinearColor(rgb));
50
+ }
51
+
52
+ float4 ProcessColorKey(float4 rgba, VertData v_in)
53
+ {
54
+ float colorDist = GetColorDist(rgba.rgb);
55
+ rgba.a *= saturate(max(colorDist - similarity, 0.0) / smoothness);
56
+
57
+ return CalcColor(rgba);
58
+ }
59
+
60
+ float4 PSColorKeyRGBA(VertData v_in) : TARGET
61
+ {
62
+ float4 rgba = image.Sample(textureSampler, v_in.uv);
63
+ rgba.rgb *= (rgba.a > 0.) ? (1. / rgba.a) : 0.;
64
+ rgba.a *= opacity;
65
+ rgba = ProcessColorKey(rgba, v_in);
66
+ rgba.rgb *= rgba.a;
67
+ return rgba;
68
+ }
69
+
70
+ technique Draw
71
+ {
72
+ pass
73
+ {
74
+ vertex_shader = VSDefault(v_in);
75
+ pixel_shader = PSColorKeyRGBA(v_in);
76
+ }
77
+ }
@@ -0,0 +1,95 @@
1
+ #include "color.effect"
2
+
3
+ uniform float4x4 ViewProj;
4
+ uniform texture2d image;
5
+
6
+ uniform float2 mul_val;
7
+ uniform float2 add_val;
8
+ uniform float multiplier;
9
+
10
+ sampler_state textureSampler {
11
+ Filter = Linear;
12
+ AddressU = Border;
13
+ AddressV = Border;
14
+ BorderColor = 00000000;
15
+ };
16
+
17
+ struct VertData {
18
+ float4 pos : POSITION;
19
+ float2 uv : TEXCOORD0;
20
+ };
21
+
22
+ VertData VSCrop(VertData v_in)
23
+ {
24
+ VertData vert_out;
25
+ vert_out.pos = mul(float4(v_in.pos.xyz, 1.0), ViewProj);
26
+ vert_out.uv = v_in.uv * mul_val + add_val;
27
+ return vert_out;
28
+ }
29
+
30
+ float4 PSCrop(VertData v_in) : TARGET
31
+ {
32
+ return image.Sample(textureSampler, v_in.uv);
33
+ }
34
+
35
+ float4 PSCropMultiply(VertData v_in) : TARGET
36
+ {
37
+ float4 rgba = image.Sample(textureSampler, v_in.uv);
38
+ rgba.rgb *= multiplier;
39
+ return rgba;
40
+ }
41
+
42
+ float4 PSCropTonemap(VertData v_in) : TARGET
43
+ {
44
+ float4 rgba = image.Sample(textureSampler, v_in.uv);
45
+ rgba.rgb = rec709_to_rec2020(rgba.rgb);
46
+ rgba.rgb = reinhard(rgba.rgb);
47
+ rgba.rgb = rec2020_to_rec709(rgba.rgb);
48
+ return rgba;
49
+ }
50
+
51
+ float4 PSCropMultiplyTonemap(VertData v_in) : TARGET
52
+ {
53
+ float4 rgba = image.Sample(textureSampler, v_in.uv);
54
+ rgba.rgb *= multiplier;
55
+ rgba.rgb = rec709_to_rec2020(rgba.rgb);
56
+ rgba.rgb = reinhard(rgba.rgb);
57
+ rgba.rgb = rec2020_to_rec709(rgba.rgb);
58
+ return rgba;
59
+ }
60
+
61
+ technique Draw
62
+ {
63
+ pass
64
+ {
65
+ vertex_shader = VSCrop(v_in);
66
+ pixel_shader = PSCrop(v_in);
67
+ }
68
+ }
69
+
70
+ technique DrawMultiply
71
+ {
72
+ pass
73
+ {
74
+ vertex_shader = VSCrop(v_in);
75
+ pixel_shader = PSCropMultiply(v_in);
76
+ }
77
+ }
78
+
79
+ technique DrawTonemap
80
+ {
81
+ pass
82
+ {
83
+ vertex_shader = VSCrop(v_in);
84
+ pixel_shader = PSCropTonemap(v_in);
85
+ }
86
+ }
87
+
88
+ technique DrawMultiplyTonemap
89
+ {
90
+ pass
91
+ {
92
+ vertex_shader = VSCrop(v_in);
93
+ pixel_shader = PSCropMultiplyTonemap(v_in);
94
+ }
95
+ }
@@ -0,0 +1,97 @@
1
+ #include "color.effect"
2
+
3
+ uniform float4x4 ViewProj;
4
+ uniform texture2d image;
5
+
6
+ uniform float multiplier;
7
+ uniform float input_maximum_nits;
8
+ uniform float output_maximum_nits;
9
+
10
+ sampler_state textureSampler {
11
+ Filter = Linear;
12
+ AddressU = Clamp;
13
+ AddressV = Clamp;
14
+ };
15
+
16
+ struct VertData {
17
+ float4 pos : POSITION;
18
+ float2 uv : TEXCOORD0;
19
+ };
20
+
21
+ struct VertOut {
22
+ float2 uv : TEXCOORD0;
23
+ float4 pos : POSITION;
24
+ };
25
+
26
+ struct FragData {
27
+ float2 uv : TEXCOORD0;
28
+ };
29
+
30
+ VertOut VSHdrTonemap(VertData v_in)
31
+ {
32
+ VertOut vert_out;
33
+ vert_out.pos = mul(float4(v_in.pos.xyz, 1.0), ViewProj);
34
+ vert_out.uv = v_in.uv;
35
+ return vert_out;
36
+ }
37
+
38
+ float4 PSReinhard(FragData f_in) : TARGET
39
+ {
40
+ float4 rgba = image.Sample(textureSampler, f_in.uv);
41
+ rgba.rgb *= multiplier;
42
+ rgba.rgb = rec709_to_rec2020(rgba.rgb);
43
+ rgba.rgb = reinhard(rgba.rgb);
44
+ rgba.rgb = rec2020_to_rec709(rgba.rgb);
45
+ return rgba;
46
+ }
47
+
48
+ float4 PSMaxrgb(FragData f_in) : TARGET
49
+ {
50
+ float4 rgba = image.Sample(textureSampler, f_in.uv);
51
+ rgba.rgb *= multiplier;
52
+ rgba.rgb = rec709_to_rec2020(rgba.rgb);
53
+ rgba.rgb = maxRGB_eetf_linear_to_linear(rgba.rgb, input_maximum_nits, output_maximum_nits);
54
+ rgba.rgb = rec2020_to_rec709(rgba.rgb);
55
+ rgba.rgb *= 1. / multiplier;
56
+ return rgba;
57
+ }
58
+
59
+ float4 PSMaxrgbSdr(FragData f_in) : TARGET
60
+ {
61
+ float4 rgba = image.Sample(textureSampler, f_in.uv);
62
+ rgba.rgb *= multiplier;
63
+ rgba.rgb = rec709_to_rec2020(rgba.rgb);
64
+ rgba.rgb = maxRGB_eetf_linear_to_linear(rgba.rgb, input_maximum_nits, output_maximum_nits);
65
+ rgba.rgb = rec2020_to_rec709(rgba.rgb);
66
+ rgba.rgb *= 10000. / output_maximum_nits;
67
+ rgba.rgb = pow(saturate(rgba.rgb), float3(1. / 2.4, 1. / 2.4, 1. / 2.4));
68
+ rgba.rgb = srgb_nonlinear_to_linear(rgba.rgb);
69
+ return rgba;
70
+ }
71
+
72
+ technique Reinhard
73
+ {
74
+ pass
75
+ {
76
+ vertex_shader = VSHdrTonemap(v_in);
77
+ pixel_shader = PSReinhard(f_in);
78
+ }
79
+ }
80
+
81
+ technique MaxRGB
82
+ {
83
+ pass
84
+ {
85
+ vertex_shader = VSHdrTonemap(v_in);
86
+ pixel_shader = PSMaxrgb(f_in);
87
+ }
88
+ }
89
+
90
+ technique MaxRGBSDR
91
+ {
92
+ pass
93
+ {
94
+ vertex_shader = VSHdrTonemap(v_in);
95
+ pixel_shader = PSMaxrgbSdr(f_in);
96
+ }
97
+ }
@@ -0,0 +1,89 @@
1
+ ColorFilter="Kleurkorreksie"
2
+ CropFilter="Snoei/Aanvul"
3
+ ScrollFilter="Rol"
4
+ SharpnessFilter="Verskerp"
5
+ Sharpness="Skerpte"
6
+ ScaleFilter="Verskaling/Aspekverhouding"
7
+ NoiseSuppress="Ruisonderdrukking"
8
+ InvertPolarity="Keer polariteit om"
9
+ DelayMs="Vertraging"
10
+ Type="Tipe"
11
+ MaskBlendType.MaskColor="Alfamasker (Kleurkanaal)"
12
+ MaskBlendType.MaskAlpha="Alfamasker (Alfakanaal)"
13
+ MaskBlendType.BlendMultiply="Meng (Vermenigvuldig)"
14
+ MaskBlendType.BlendAddition="Meng (Toevoeging)"
15
+ MaskBlendType.BlendSubtraction="Meng (Verskil)"
16
+ Path="Pad"
17
+ Color="Kleur"
18
+ ColorMultiply="Kleur vermenigvuldiging"
19
+ ColorAdd="Kleur toevoeging"
20
+ Opacity="Ondeursigtigheid"
21
+ Contrast="Kontras"
22
+ Brightness="Helderheid"
23
+ BrowsePath.Images="Alle beeldlêers"
24
+ BrowsePath.AllFiles="Alle lêers"
25
+ Similarity="Toleransie (1-1000)"
26
+ Smoothness="Gladheid (1-1000)"
27
+ Crop.Left="Links"
28
+ Crop.Right="Regs"
29
+ Crop.Top="Bo"
30
+ Crop.Bottom="Onder"
31
+ Crop.Width="Breedte"
32
+ Crop.Height="Hoogte"
33
+ Crop.Relative="Relatief"
34
+ HdrTonemap.Description="OBS kan outomaties HDR na SDR omsit. Gebruik net hierdie filter as u ekstra invloed benodig vir ’n bepaalde bron.\nHierdie filter het geen effek op SDR-bronne nie."
35
+ HdrTonemap.SdrWhiteLevel="SDR witvlak"
36
+ ScrollFilter.SpeedX="Horisontale snelheid"
37
+ ScrollFilter.SpeedY="Vertikale snelheid"
38
+ ScrollFilter.LimitWidth="Beperk wydte"
39
+ ScrollFilter.LimitHeight="Beperk hoogte"
40
+ ScrollFilter.Loop="Herhaal"
41
+ CustomColor="Pasgemaakte kleur"
42
+ Red="Rooi"
43
+ Green="Groen"
44
+ Blue="Blou"
45
+ NoiseGate.OpenThreshold="Oop-drempel"
46
+ NoiseGate.CloseThreshold="Sluit-drempel"
47
+ StretchImage="Rek beeld uit (ignoreer beeldaspekverhouding)"
48
+ Resolution="Beeldskerpte"
49
+ Base.Canvas="Basisbeeldskerpte (Doek)"
50
+ None="Geen"
51
+ ScaleFiltering="Skaalfilter"
52
+ ScaleFiltering.Point="Punt"
53
+ ScaleFiltering.Bilinear="Bilineêr"
54
+ NoiseSuppress.SuppressLevel="Onderdrukkingsvlak"
55
+ NoiseSuppress.Intensity="Onderdrukkingsintensiteit"
56
+ NoiseSuppress.Method="Metode"
57
+ NoiseSuppress.Method.RNNoise="RNNoise (goeie kwaliteit, meer SVE-gebruik)"
58
+ NoiseSuppress.Method.Nvafx.Denoiser="NVIDIA-ruisverwydering"
59
+ NoiseSuppress.Method.Nvafx.Dereverb="NVIDIA-kamereggoverwydering"
60
+ NoiseSuppress.Method.Nvafx.DenoiserPlusDereverb="NVIDIA-ruisverwydering + -kamereggoverwydering"
61
+ Saturation="Versadiging"
62
+ HueShift="Tintverskuiwing"
63
+ Amount="Hoeveelheid"
64
+ Compressor="Kompressor"
65
+ Compressor.Ratio="Verhouding"
66
+ Compressor.Threshold="Drempel"
67
+ Limiter="Begrenser"
68
+ Limiter.Threshold="Drempel"
69
+ Expander="Uitbreiding"
70
+ Expander.Ratio="Verhouding"
71
+ Expander.Threshold="Drempel"
72
+ Expander.Detector="Bespeuring"
73
+ Expander.Peak="Piek"
74
+ Expander.Presets="Voorinstellings"
75
+ Expander.Presets.Expander="Uitbreiding"
76
+ Expander.Presets.Gate="Hek"
77
+ Expander.Knee.Width="Kniebreedte"
78
+ NvidiaGreenscreenFilter="NVIDIA-agtergrondverwydering"
79
+ Greenscreen.Mode="Modus"
80
+ Greenscreen.Quality="Kwaliteit (hoër GPU-gebruik, beter kwaliteit)"
81
+ Greenscreen.Performance="Verrigting (laer GPU-gebruik, goeie kwaliteit)"
82
+ Greenscreen.Threshold="Drempel"
83
+ Greenscreen.Deprecation="WAARSKUWING: Gradeer asb. sowel die NVIDIA Video SDK as die NVIDIA Audio SDK op. U huidige weergawe van Video SDK is verouderd."
84
+ Greenscreen.Processing.Hint="Dit verlig die GPU-lading deur slegs vir elke N rame ’n masker te genereer (2 by verstek)."
85
+ Upward.Compressor="Opwaartse kompressor"
86
+ 3BandEq="3-bandeffenaar"
87
+ 3BandEq.low="Laag"
88
+ 3BandEq.mid="Middel"
89
+ 3BandEq.high="Hoog"