Commit Graph

2038 Commits

Author SHA1 Message Date
Бранимир Караџић
3202330daa 43-denoise: Removed alpha from screenshot. 2021-01-02 11:35:21 -08:00
Бранимир Караџић
fa3aed3b0b 43-denoise: Updated references. 2021-01-02 11:23:13 -08:00
Бранимир Караџић
cbccb2386a 43-denoise: Style cleanup. Added screenshot. 2021-01-02 11:12:45 -08:00
Бранимир Караџић
27de3100b7 43-denoise: Switched depth to D32F format. 2021-01-02 10:52:19 -08:00
Branimir Karadžić
4760628bb1 43-denoise: Added shaders. 2021-01-02 10:46:43 -08:00
elvencache
a33ca71bcf add denoise example (#2344)
/*
* Implement SVGF style denoising as bgfx example. Goal is to explore various
* options and parameters, not produce an optimized, efficient denoiser.
*
* Starts with deferred rendering scene with very basic lighting. Lighting is
* masked out with a noise pattern to provide something to denoise. There are
* two options for the noise pattern. One is a fixed 2x2 dither pattern to
* stand-in for lighting at quarter resolution. The other is the common
* shadertoy random pattern as a stand-in for some fancier lighting without
* enough samples per pixel, like ray tracing.
*
* First a temporal denoising filter is applied. The temporal filter is only
* using normals to reject previous samples. The SVGF paper also describes using
* depth comparison to reject samples but that is not implemented here.
*
* Followed by some number of spatial filters. These are implemented like in the
* SVGF paper. As an alternative to the 5x5 Edge-Avoiding A-Trous filter, can
* select a 3x3 filter instead. The 3x3 filter takes fewer samples and covers a
* smaller area, but takes less time to compute. From a loosely eyeballed
* comparison, N 5x5 passes looks similar to N+1 3x3 passes. The wider spatial
* filters take a fair chunk of time to compute. I wonder if it would be a good
* idea to interleave the input texture before computing, after the first pass
* which skips zero pixels.
*
* I have not implemetened the variance guided part.
*
* There's also an optional TXAA pass to be applied after. I am not happy with
* its implementation yet, so it defaults to off here.
*/

/*
* References:
* Spatiotemporal Variance-Guided Filtering: Real-Time Reconstruction for
*	Path-Traced Global Illumination. by Christoph Schied and more.
*	- SVGF denoising algorithm
*
* Streaming G-Buffer Compression for Multi-Sample Anti-Aliasing.
*	by E. Kerzner and M. Salvi.
*	- details about history comparison for temporal denoising filter
*
* Edge-Avoiding À-Trous Wavelet Transform for Fast Global Illumination
*	Filtering. by Holger Dammertz and more.
*	- details about a-trous algorithm for spatial denoising filter
*/
2021-01-02 10:42:02 -08:00
Бранимир Караџић
1f4da1e459 Fixed warning. 2020-12-28 19:36:23 -08:00
Бранимир Караџић
c2b7ffe2e7 Updated SPIR-V and Metal shaders. 2020-12-28 13:01:44 -08:00
Бранимир Караџић
ed48498911 Disabled imguizmo is over test. 2020-12-28 12:57:46 -08:00
Бранимир Караџић
f232f93017 Added build rule to examples makefile. 2020-12-28 11:58:03 -08:00
MooZ
d65dac2000 Shaderc OpenGL fixes. (#2317)
* Reworked profile cli argument.

* Added missing GLSL profile.

* Fixed essl shader preambule.

* Fixed uniform "parsing" and hlsl profiles.

* Reworked hlsl profiles.

* Fixed missing extension for gl_FragDepth.

* Cleanup.

* Removed version preamble and reverted shadow samplers translation.

* Fixed HLSL profile tests.
2020-12-28 11:24:49 -08:00
Бранимир Караџић
197c1ced3b Included ImGuizmo to ImGui::MouseOverArea test. 2020-12-27 21:28:07 -08:00
Бранимир Караџић
90381661e1 36-sky: Removed utf-8 characters from comments. 2020-12-27 09:03:58 -08:00
Бранимир Караџић
c95eca2a4b Don't update camera when mouse is over imgui. 2020-12-26 22:46:26 -08:00
Бранимир Караџић
4224dcf2b2 Cleanup. 2020-12-20 22:42:16 -08:00
Бранимир Караџић
c5db87d87a Fixed cubemap test texture. 2020-12-17 19:47:44 -08:00
Бранимир Караџић
263415b887 Cleanup. 2020-12-16 13:50:47 -08:00
Branimir Karadžić
5c304dad3b Fixed issue #2330. Added support for 32-bit indices in transient index buffer. 2020-12-15 19:01:25 -08:00
Бранимир Караџић
2427d870d0 Cleanup. 2020-12-13 17:04:55 -08:00
Josh Jensen
c103383f6f Add SDF font outlines, drop shadows, and image glyphs (#2325)
* Implement SDF font outlines, drop shadows, and image glyphs

* Update 11-fontsdf to showcase the SDF outlines, drop shadows, and image glyphs

Co-authored-by: Josh Jensen <josh@everrush.com>
2020-12-13 17:02:36 -08:00
Бранимир Караџић
89362944b1 GLFW: Use glfwWaitEventsTimeout instead glfwWaitEvents and posting empty events. 2020-12-08 19:11:18 -08:00
Бранимир Караџић
01b0c00780 entry: Fixed X11 setWindowTitle to display UTF-8 properly. 2020-12-03 07:54:12 -08:00
Бранимир Караџић
8ea8832341 Cleanup. 2020-11-29 18:50:10 -08:00
Бранимир Караџић
35a9771c34 entry: Fixed reset logic. 2020-11-29 15:11:37 -08:00
Бранимир Караџић
86583e9bbd Cleanup. 2020-11-25 22:29:40 -08:00
Бранимир Караџић
3d01e274ff Added cubemap test texture. 2020-11-25 16:20:37 -08:00
Бранимир Караџић
2b4bf6d913 Metal: Fixed screenshot. 2020-11-10 17:14:54 -08:00
Cedric Guillemet
e06dd2435e gcc fix warning (#2295)
error: extra ‘;’ [-Werror=pedantic]
2020-10-23 07:44:18 -07:00
Federico Bertola
d4b518ecae Fixed reference to 'sqrt' (#2293) 2020-10-21 06:59:51 -07:00
Бранимир Караџић
626ca46aa0 Bounds: Overlap cone/plane. 2020-10-17 22:16:18 -07:00
Бранимир Караџић
3a8e0e2bb1 Fixed blit on cubemaps. 2020-10-09 20:47:50 -07:00
Бранимир Караџић
adf93db26b Updated ImGui. 2020-10-09 08:50:40 -07:00
Branimir Karadžić
729c6b98ed Rebuilt shaders. 2020-10-04 22:39:41 -07:00
kingscallop
436b7fab9e Adds UAV support for D3D12, Vulkan and reworked for OpenGL, D3D11 (#2119)
* Adds UAV support for D3D12, Vulkan and reworked support for OpenGL, D3D11

UAV support is now uniform across compute and draw.
To set a UAV you just use bgfx::setImage() and IMAGE2D in the shader, just like in compute.
Due to these changes shaders will have to be recompiled.

The changes include:
	- D3D11 requires patching of the UAV slot number (which is now done by modifying the DXBC instead of using a macro)
	- If the DXBC binary includes a debug chunk, that is also patched to match the new slot number
	- All the other renderers don't need any kind of patching
	- There are some shader annotations to better convert the UAV format used in hlsl to spirv

Possibility of further enhancements:
	- bgfx::setViewFrameBuffer() only supports binding to a framebuffer or, using BGFX_INVALID_HANDLE, to bind the default backbuffer. This doesn't allow for the case where there is no need to bind to either one of them, for example when using a fragment shader only to read and write to an UAV.

* Bump shader version, because they need to be recompiled.
2020-10-04 21:51:41 -07:00
Бранимир Караџић
b2259d7c11 Updated screenshots. 2020-09-19 20:05:25 -07:00
Branimir Karadžić
73508ac80f Fixed warnings. 2020-09-07 10:06:47 -07:00
Бранимир Караџић
66deeb10c2 21-deferred: Fixed depth format selection. 2020-09-05 12:15:07 -07:00
Wencey Wang
0093a67681 Fix Windows ARM build (#2254) 2020-09-02 08:31:39 -07:00
Бранимир Караџић
4d4ef74fe6 Fixed GCC warning.: 2020-09-01 20:21:58 -07:00
kingscallop
ba3be9affd Fixes example 42 (#2235)
Because example 42 was using the shaders from example 07 (callback), which have
input vertex attributes position and color, while the mesh from example 42 has
attributes position and normal, this causes problems on Windows when using
AMD gpus (no bunny mesh would appear on the window).
2020-08-16 11:44:00 -07:00
kingscallop
e5d25a7d88 Fixes example 41 on OpenGL (#2234)
The glsl function findMSB is overriden, causing an error on Windows and Linux
when running on AMD or Intel gpus. Nvidia, for whatever reason, seems to allow
overriding the function.
2020-08-16 11:43:28 -07:00
kingscallop
a39b14cacc Fixes example 37 on Windows using AMD GCN 1.0 gpus (#2232)
When compiling shader cs_gdr_stream_compaction.sc on GCN 1.0 gpus
the following error appears:

Compute link error: HW_UNSUPPORTED.
ERROR: Internal compile error, error code: E_SC_NOTSUPPORTED
Shader not supported by HW

These changes avoid the error.
2020-08-16 11:41:53 -07:00
kingscallop
988077804f Fix X11 flicker when window is being resized (#2203) 2020-07-18 11:41:01 -07:00
Бранимир Караџић
8acb8383b0 Fixed issue #2201. 2020-07-16 06:57:18 -07:00
云风
ecb0143a40 update sdf see #2193 (#2196) 2020-07-06 23:43:21 -07:00
Бранимир Караџић
301629ed16 Cleanup. 2020-07-05 21:30:52 -07:00
Бранимир Караџић
7efb218fd1 Fixed issue #2192. 2020-07-03 00:07:46 -07:00
Бранимир Караџић
c08f2db901 02-metaballs: Added settings. 2020-07-02 20:55:07 -07:00
Бранимир Караџић
38ac02695d Fixed emscripten build. 2020-06-19 20:36:44 -07:00
Бранимир Караџић
77c974b69f Fixed use of BX_ASSERT in entry_html5. 2020-06-16 18:44:31 -07:00