3rdparty/bgfx/docs/examples.rst
Most of the examples require shader/texture/mesh data to be loaded. When running examples your current directory should be examples/runtime.
::
<bgfx_path>/examples/runtime $ ../../.build/<config>/bin/example-00-helloworldDebug
00-helloworld <https://github.com/bkaradzic/bgfx/blob/master/examples/00-helloworld>__Initialization and debug text.
.. figure:: https://github.com/bkaradzic/bgfx/raw/master/examples/00-helloworld/screenshot.png :alt: example-00-helloworld
01-cubes <https://github.com/bkaradzic/bgfx/blob/master/examples/01-cubes/cubes.cpp>__Rendering simple static mesh.
.. figure:: https://github.com/bkaradzic/bgfx/raw/master/examples/01-cubes/screenshot.png :alt: example-01-cubes
02-metaballs <https://github.com/bkaradzic/bgfx/blob/master/examples/02-metaballs>__Rendering with transient buffers and embedding shaders.
.. raw:: html
<div class="emscripten">
<progress value="0" max="100" id="progress" hidden=1></progress>
</div>
<div class="spinner" id='spinner'></div>
<div class="emscripten" id="status">Downloading...</div>
<div class="emscripten_border">
<canvas class="emscripten" id="canvas" oncontextmenu="event.preventDefault()"></canvas>
</div>
<script type='text/javascript'>
var statusElement = document.getElementById('status');
var progressElement = document.getElementById('progress');
var spinnerElement = document.getElementById('spinner');
var Module = {
preRun: [],
postRun: [],
print: (function() {
var element = document.getElementById('output');
if (element) element.value = ''; // clear browser cache
return function(text) {
if (arguments.length > 1) text = Array.prototype.slice.call(arguments).join(' ');
// These replacements are necessary if you render to raw HTML
//text = text.replace(/&/g, "&");
//text = text.replace(/</g, "<");
//text = text.replace(/>/g, ">");
//text = text.replace('\n', '
', 'g'); console.log(text); if (element) { element.value += text + "\n"; element.scrollTop = element.scrollHeight; // focus on bottom } }; })(), printErr: function(text) { if (arguments.length > 1) text = Array.prototype.slice.call(arguments).join(' '); if (0) { // XXX disabled for safety typeof dump == 'function') { dump(text + '\n'); // fast, straight to the real console } else { console.error(text); } }, canvas: (function() { var canvas = document.getElementById('canvas');
// As a default initial behavior, pop up an alert when webgl context is lost. To make your
// application robust, you may want to override this behavior before shipping!
// See http://www.khronos.org/registry/webgl/specs/latest/1.0/#5.15.2
canvas.addEventListener("webglcontextlost", function(e) { alert('WebGL context lost. You will need to reload the page.'); e.preventDefault(); }, false);
return canvas;
})(),
setStatus: function(text) {
if (!Module.setStatus.last) Module.setStatus.last = { time: Date.now(), text: '' };
if (text === Module.setStatus.text) return;
var m = text.match(/([^(]+)\((\d+(\.\d+)?)\/(\d+)\)/);
var now = Date.now();
if (m && now - Date.now() < 30) return; // if this is a progress update, skip it if too soon
if (m) {
text = m[1];
progressElement.value = parseInt(m[2])*100;
progressElement.max = parseInt(m[4])*100;
progressElement.hidden = false;
spinnerElement.hidden = false;
} else {
progressElement.value = null;
progressElement.max = null;
progressElement.hidden = true;
if (!text) spinnerElement.style.display = 'none';
}
statusElement.innerHTML = text;
},
totalDependencies: 0,
monitorRunDependencies: function(left) {
this.totalDependencies = Math.max(this.totalDependencies, left);
Module.setStatus(left ? 'Preparing... (' + (this.totalDependencies-left) + '/' + this.totalDependencies + ')' : 'All downloads complete.');
}
};
Module.setStatus('Downloading...');
window.onerror = function(event) {
// TODO: do not warn on ok events like simulating an infinite loop or exitStatus
Module.setStatus('Exception thrown, see JavaScript console');
spinnerElement.style.display = 'none';
Module.setStatus = function(text) {
if (text) Module.printErr('[post-exception status] ' + text);
};
};
</script>
<script async type="text/javascript" src="example-02-metaballsRelease.bc.js"></script>
03-raymarch <https://github.com/bkaradzic/bgfx/blob/master/examples/03-raymarch>__Updating shader uniforms.
.. figure:: https://github.com/bkaradzic/bgfx/raw/master/examples/03-raymarch/screenshot.png :alt: example-03-raymarch
04-mesh <https://github.com/bkaradzic/bgfx/blob/master/examples/04-mesh>__Loading meshes.
.. figure:: https://github.com/bkaradzic/bgfx/raw/master/examples/04-mesh/screenshot.png :alt: example-04-mesh
05-instancing <https://github.com/bkaradzic/bgfx/blob/master/examples/05-instancing>__Geometry instancing.
.. figure:: https://github.com/bkaradzic/bgfx/raw/master/examples/05-instancing/screenshot.png :alt: example-05-instancing
06-bump <https://github.com/bkaradzic/bgfx/blob/master/examples/06-bump>__Loading textures.
.. figure:: https://github.com/bkaradzic/bgfx/raw/master/examples/06-bump/screenshot.png :alt: example-06-bump
07-callback <https://github.com/bkaradzic/bgfx/blob/master/examples/07-callback>__Implementing application specific callbacks for taking screen shots, caching OpenGL binary shaders, and video capture.
08-update <https://github.com/bkaradzic/bgfx/blob/master/examples/08-update>__Updating textures.
09-hdr <https://github.com/bkaradzic/bgfx/tree/master/examples/09-hdr>__Using multiple views with frame buffers, and view order remapping.
.. figure:: https://github.com/bkaradzic/bgfx/raw/master/examples/09-hdr/screenshot.png :alt: example-09-hdr
10-font <https://github.com/bkaradzic/bgfx/tree/master/examples/10-font>__Use the font system to display text and styled text.
.. figure:: https://github.com/bkaradzic/bgfx/raw/master/examples/10-font/screenshot.png :alt: example-10-font
11-fontsdf <https://github.com/bkaradzic/bgfx/tree/master/examples/11-fontsdf>__Use a single distance field font to render text of various size.
.. figure:: https://github.com/bkaradzic/bgfx/raw/master/examples/11-fontsdf/screenshot.png :alt: example-11-fontsdf
12-lod <https://github.com/bkaradzic/bgfx/tree/master/examples/12-lod>__Mesh LOD transitions.
.. figure:: https://github.com/bkaradzic/bgfx/raw/master/examples/12-lod/screenshot.png :alt: example-12-lod
13-stencil <https://github.com/bkaradzic/bgfx/tree/master/examples/13-stencil>__Stencil reflections and shadows.
.. figure:: https://github.com/bkaradzic/bgfx/raw/master/examples/13-stencil/screenshot.png :alt: example-13-stencil
14-shadowvolumes <https://github.com/bkaradzic/bgfx/tree/master/examples/14-shadowvolumes>__Shadow volumes.
.. figure:: https://github.com/bkaradzic/bgfx/raw/master/examples/14-shadowvolumes/screenshot.png :alt: example-14-shadowvolumes
15-shadowmaps-simple <https://github.com/bkaradzic/bgfx/tree/master/examples/15-shadowmaps-simple>__.. figure:: https://github.com/bkaradzic/bgfx/raw/master/examples/15-shadowmaps-simple/screenshot.png :alt: example-15-shadowmaps-simple
16-shadowmaps <https://github.com/bkaradzic/bgfx/tree/master/examples/16-shadowmaps>__.. figure:: https://github.com/bkaradzic/bgfx/raw/master/examples/16-shadowmaps/screenshot.png :alt: example-16-shadowmaps
17-drawstress <https://github.com/bkaradzic/bgfx/blob/master/examples/17-drawstress>__60Hz ^^^^
Draw stress is CPU stress test to show what is the maximum number of
draw calls while maintaining 60Hz frame rate. bgfx currently has default
limit of 64K draw calls per frame. You can increase this limit by
changing BGFX_CONFIG_MAX_DRAW_CALLS.
+-----------------+----------------+--------------+------------------------+-------+----------+ | CPU | Renderer | GPU | Arch/Compiler/OS | Dim | Calls | +=================+================+==============+========================+=======+==========+ | i7-4770K 4.2 | GL2.1 | 2xGTX780 | x64/VS2013/Win 8.1 | 51 | 132651 | +-----------------+----------------+--------------+------------------------+-------+----------+ | i7-4770K 4.2 | DX11 | 2xGTX780 | x64/VS2013/Win 8.1 | 50 | 125000 | +-----------------+----------------+--------------+------------------------+-------+----------+ | i7-4790K 4.0 | GL2.1 | GTX970 | x64/VS2015/Win 10 | 47 | 103823 | +-----------------+----------------+--------------+------------------------+-------+----------+ | i7-4790K 4.0 | DX11 | GTX970 | x64/VS2015/Win 10 | 45 | 91125 | +-----------------+----------------+--------------+------------------------+-------+----------+ | i7-4790K 4.0 | DX9 | GTX970 | x64/VS2013/Win 10 | 40 | 64000 | +-----------------+----------------+--------------+------------------------+-------+----------+ | i5-3570 3.8 | NV 331.49 | GTX560Ti | x64/GCC/Linux | 40 | 64000+ | +-----------------+----------------+--------------+------------------------+-------+----------+ | i7-920 2.66 | GL2.1 | GTX650Ti | x64/VS2008/Win 7 | 38 | 54872 | +-----------------+----------------+--------------+------------------------+-------+----------+ | i7-920 2.66 | GL2.1 | GTX650Ti | x86/VS2008/Win 7 | 38 | 54872 | +-----------------+----------------+--------------+------------------------+-------+----------+ | i7-6700K 4.0 | GL2.1 | Skylake GT2 | x64/GCC/Win 10 | 38 | 54872 | +-----------------+----------------+--------------+------------------------+-------+----------+ | i7-4790K 4.0 | DX11 | R7 240 | x64/VS2015/Win 10 | 36 | 46656 | +-----------------+----------------+--------------+------------------------+-------+----------+ | i7-920 2.66 | NV 331.113 | GTX650Ti | x64/GCC/Linux | 34 | 39304 | +-----------------+----------------+--------------+------------------------+-------+----------+ | i7-6700K 4.0 | DX11 | Skylake GT2 | x64/GCC/Win 10 | 34 | 39304 | +-----------------+----------------+--------------+------------------------+-------+----------+ | i7-4790K 4.0 | DX9 | R7 240 | x64/VS2015/Win 10 | 32 | 32768 | +-----------------+----------------+--------------+------------------------+-------+----------+ | i7-920 2.66 | DX9 | GTX650Ti | x64/GCC/Win 7 | 32 | 32768 | +-----------------+----------------+--------------+------------------------+-------+----------+ | i7-920 2.66 | DX9 | GTX650Ti | x64/VS2008/Win 7 | 32 | 32768 | +-----------------+----------------+--------------+------------------------+-------+----------+ | i7-920 2.66 | DX9 | GTX650Ti | x86/GCC/Win 7 | 30 | 27000 | +-----------------+----------------+--------------+------------------------+-------+----------+ | i7-920 2.66 | DX9 | GTX650Ti | x86/VS2008/Win 7 | 30 | 27000 | +-----------------+----------------+--------------+------------------------+-------+----------+ | i5-6200U 2.3 | DX11 | Intel 520 | x64/GCC/Win 10 | 30 | 27000 | +-----------------+----------------+--------------+------------------------+-------+----------+ | i5-4250U 1.3 | GL2.1 | HD5000 | x64/Clang/OSX 10.9 | 28 | 21852 | +-----------------+----------------+--------------+------------------------+-------+----------+ | Q8200 2.33 | NV 319.32 | GTX260 | x64/GCC/Linux | 27 | 19683 | +-----------------+----------------+--------------+------------------------+-------+----------+ | i7-6700K 4.0 | GL2.1 | Skylake GT2 | x64/GCC/Linux | 27 | 19683 | +-----------------+----------------+--------------+------------------------+-------+----------+ | i7-2600K 3.4 | DX9 | AMD6800 | x64/VS2012/Win 7 | 27 | 19683 | +-----------------+----------------+--------------+------------------------+-------+----------+ | i7-2600K 3.4 | GL2.1 | AMD6800 | x64/VS2012/Win 7 | 26 | 17576 | +-----------------+----------------+--------------+------------------------+-------+----------+ | i7-4770R 3.2 | Mesa 10.5.9 | HD5200 | x64/GCC/Linux | 26 | 17576 | +-----------------+----------------+--------------+------------------------+-------+----------+ | i5-6200U 2.3 | GL | Intel 520 | x64/GCC/Win 10 | 26 | 17576 | +-----------------+----------------+--------------+------------------------+-------+----------+ | i7-920 2.66 | DX9-Wine | GTX650Ti | x64/GCC/Linux | 24 | 13824 | +-----------------+----------------+--------------+------------------------+-------+----------+ | i5-6200U 2.3 | Mesa 10.5.9 | Intel 520 | x64/GCC/Linux | 23 | 12167 | +-----------------+----------------+--------------+------------------------+-------+----------+ | i7-4750HQ 2.0 | Mesa 10.0.1 | HD5200 | x64/GCC/Linux | 22 | 10648 | +-----------------+----------------+--------------+------------------------+-------+----------+ | i7-4750HQ 2.0 | Mesa 10.1.3 | HD5200 | x64/GCC/Linux | 21 | 9261 | +-----------------+----------------+--------------+------------------------+-------+----------+ | i7-920 2.66 | ES2-ANGLE | GTX650Ti | x86/VS2008/Win 7 | 21 | 9261 | +-----------------+----------------+--------------+------------------------+-------+----------+ | Q8200 2.33 | Gallium 0.4 | AMD5770 | x64/GCC/Linux | 21 | 9261 | +-----------------+----------------+--------------+------------------------+-------+----------+ | i5-4250U 1.3 | ES2 | HD5000 | JIT/Clang/PNaCl 31 | 21 | 9261 | +-----------------+----------------+--------------+------------------------+-------+----------+ | i5-4250U 1.3 | ES2 | HD5000 | x86/GCC/NaCl 31 | 20 | 8000 | +-----------------+----------------+--------------+------------------------+-------+----------+ | Q8200 2.33 | Gallium 0.4 | GTX260 | x64/GCC/Linux | 19 | 6859 | +-----------------+----------------+--------------+------------------------+-------+----------+ | i5-2450M 2.5 | Mesa 10.2.0 | HD3000 | x64/GCC/Linux | 19 | 6859 | +-----------------+----------------+--------------+------------------------+-------+----------+ | i7-920 2.66 | ES2-PowerVR | GTX650Ti | x86/VS2008/Win 7 | 18 | 5832 | +-----------------+----------------+--------------+------------------------+-------+----------+ | i7-920 2.66 | FF27-GL | GTX650Ti | JIT/Clang/W7-asm.js | 17 | 4913 | +-----------------+----------------+--------------+------------------------+-------+----------+ | i7-6700K 4.0 | DX9 | Skylake GT2 | x64/GCC/Win 10 | 16 | 4096 | +-----------------+----------------+--------------+------------------------+-------+----------+ | i7-4750HQ 2.0 | Mesa 8.0.5 | LLVMPIPE | x64/GCC/Linux | 16 | 4096 | +-----------------+----------------+--------------+------------------------+-------+----------+ | i5-6200U 2.3 | DX9 | Intel 520 | x64/GCC/Win 10 | 16 | 4096 | +-----------------+----------------+--------------+------------------------+-------+----------+ | i7-920 2.66 | ES2-Qualcomm | GTX650Ti | x86/VS2008/Win 7 | 15 | 3375 | +-----------------+----------------+--------------+------------------------+-------+----------+ | i7-920 2.66 | ES2 | GTX650Ti | x64/GCC/NaCl 31 | 15 | 3375 | +-----------------+----------------+--------------+------------------------+-------+----------+ | i7-920 2.66 | ES2 | GTX650Ti | JIT/Clang/PNaCl 31 | 15 | 3375 | +-----------------+----------------+--------------+------------------------+-------+----------+ | Q8200 2.33 | NV 319.32 | GTX260 | x64/GCC/NaCl 31 | 15 | 3375 | +-----------------+----------------+--------------+------------------------+-------+----------+ | Q8200 2.33 | NV 319.32 | GTX260 | x64/GCC/PNaCl 31 | 15 | 3375 | +-----------------+----------------+--------------+------------------------+-------+----------+ | '12 Nexus 7 | ES2 | Tegra3 | ARM/GCC/Android | 15 | 3375 | +-----------------+----------------+--------------+------------------------+-------+----------+ | i5-4250U 1.3 | ES2-FF27 | HD5000 | JIT/Clang/OSX-asm.js | 15 | 3375 | +-----------------+----------------+--------------+------------------------+-------+----------+ | i5-4250U 1.3 | Chrome33 | HD5000 | JIT/Clang/OSX-asm.js | 15 | 3375 | +-----------------+----------------+--------------+------------------------+-------+----------+ | iPad mini 2 | ES2 | PVR G6430 | ARM64/Clang/iOS7 | 15 | 3375 | +-----------------+----------------+--------------+------------------------+-------+----------+ | i7-920 2.66 | Chrome33 | GTX650Ti | JIT/Clang/W7-asm.js | 14 | 2744 | +-----------------+----------------+--------------+------------------------+-------+----------+ | i7-920 2.66 | FF27-ANGLE | GTX650Ti | JIT/Clang/W7-asm.js | 14 | 2744 | +-----------------+----------------+--------------+------------------------+-------+----------+ | '13 Nexus 10 | ES2 | Mali T604 | ARM/GCC/Android | 13 | 2197 | +-----------------+----------------+--------------+------------------------+-------+----------+ | iPhone 5 | ES2 | PVR SGX543 | ARM/Clang/iOS7 | 13 | 2197 | +-----------------+----------------+--------------+------------------------+-------+----------+ | '13 Nexus 7 | ES2 | S4 Pro | ARM/GCC/Android | 12 | 1728 | +-----------------+----------------+--------------+------------------------+-------+----------+ | iPad 2 | ES2 | PVR SGX543 | ARM/Clang/iOS6 | 12 | 1728 | +-----------------+----------------+--------------+------------------------+-------+----------+ | AMD A4-5000 | Gallium 0.4 | HD8330/Kabini| x64/GCC/Linux | 12 | 1728 | +-----------------+----------------+--------------+------------------------+-------+----------+ | Xperia Z | ES2 | Adreno320 | ARM/GCC/Android | 11 | 1331 | +-----------------+----------------+--------------+------------------------+-------+----------+ | iPod 4 | ES2 | PVR SGX535 | ARM/Clang/iOS6 | 7 | 343 | +-----------------+----------------+--------------+------------------------+-------+----------+ | i7-920 2.66 | ES2-Mali | GTX650Ti | x86/VS2008/Windows7 | 6 | 216 | +-----------------+----------------+--------------+------------------------+-------+----------+ | Creator CI20 | ES2 | PVR SGX540 | MIPS/GCC/Debian8 | 7 | 343 | +-----------------+----------------+--------------+------------------------+-------+----------+ | i5-6200U 2.3 | ES2 | SwiftShader | x64/GCC/Linux | 6 | 216 | +-----------------+----------------+--------------+------------------------+-------+----------+ | RaspberryPi | ES2 | VC IV | ARM/GCC/Raspbian | 6 | 216 | +-----------------+----------------+--------------+------------------------+-------+----------+
To test browsers in 60Hz mode following changes were made:
webgl.prefer-native-gl true
(on Windows), and layout.frame_rate 500.--disable-gpu-vsync.30Hz (test for browsers) ^^^^^^^^^^^^^^^^^^^^^^^^
By default browsers are using vsync, and don't have option to turn it off programmatically.
+----------------+------------+------------+--------------------------+-------+----------+ | CPU | Renderer | GPU | Arch/Compiler/OS | Dim | Calls | +================+============+============+==========================+=======+==========+ | i7-920 2.66 | GL2.1 | GTX650Ti | x64/VS2008/Win7 | 38 | 64000+ | +----------------+------------+------------+--------------------------+-------+----------+ | i5-4250U 1.3 | GL2.1 | HD5000 | x64/Clang/OSX 10.9 | 36 | 46656 | +----------------+------------+------------+--------------------------+-------+----------+ | i5-4250U 1.3 | Chrome34 | HD5000 | JIT/Clang/OSX-PNaCl 31 | 28 | 21952 | +----------------+------------+------------+--------------------------+-------+----------+ | i5-4250U 1.3 | Chrome33 | HD5000 | JIT/Clang/OSX-PNaCl 31 | 27 | 19683 | +----------------+------------+------------+--------------------------+-------+----------+ | i5-4250U 1.3 | FF28 | HD5000 | JIT/Clang/OSX-asm.js | 25 | 15625 | +----------------+------------+------------+--------------------------+-------+----------+ | i5-4250U 1.3 | FF36 | HD5000 | JIT/Clang/OSX-asm.js | 25 | 15625 | +----------------+------------+------------+--------------------------+-------+----------+ | i5-4250U 1.3 | Chrome41 | HD5000 | x64/GCC/OSX-NaCl 41 | 24 | 13824 | +----------------+------------+------------+--------------------------+-------+----------+ | i5-4250U 1.3 | FF37 | HD5000 | JIT/Clang/OSX-asm.js | 23 | 12167 | +----------------+------------+------------+--------------------------+-------+----------+ | i5-4250U 1.3 | FF27 | HD5000 | JIT/Clang/OSX-asm.js | 20 | 8000 | +----------------+------------+------------+--------------------------+-------+----------+ | i7-920 2.66 | Chrome33 | GTX650Ti | JIT/Clang/W7-PNaCl 31 | 20 | 8000 | +----------------+------------+------------+--------------------------+-------+----------+ | i7-920 2.66 | Chrome34 | GTX650Ti | JIT/Clang/W7-asm.js | 18 | 5832 | +----------------+------------+------------+--------------------------+-------+----------+ | i7-920 2.66 | Chrome33 | GTX650Ti | JIT/Clang/W7-asm.js | 18 | 5832 | +----------------+------------+------------+--------------------------+-------+----------+ | i7-920 2.66 | FF28 | GTX650Ti | JIT/Clang/W7-asm.js | 18 | 5832 | +----------------+------------+------------+--------------------------+-------+----------+ | i7-920 2.66 | FF27 | GTX650Ti | JIT/Clang/W7-asm.js | 18 | 5832 | +----------------+------------+------------+--------------------------+-------+----------+ | i5-4250U 1.3 | Safari7 | HD5000 | JIT/Clang/OSX-asm.js | 15 | 3375 | +----------------+------------+------------+--------------------------+-------+----------+
18-ibl <https://github.com/bkaradzic/bgfx/tree/master/examples/18-ibl>__Image-based lighting.
.. figure:: https://github.com/bkaradzic/bgfx/raw/master/examples/18-ibl/screenshot.png :alt: example-18-ibl
19-oit <https://github.com/bkaradzic/bgfx/tree/master/examples/19-oit>__Weighted, Blended Order-Independent Transparency
.. figure:: https://github.com/bkaradzic/bgfx/raw/master/examples/19-oit/screenshot.png :alt: example-19-oit
20-nanovg <https://github.com/bkaradzic/bgfx/tree/master/examples/20-nanovg>__NanoVG is small antialiased vector graphics rendering library.
.. figure:: https://github.com/bkaradzic/bgfx/raw/master/examples/20-nanovg/screenshot.png :alt: example-20-nanovg
21-deferred <https://github.com/bkaradzic/bgfx/tree/master/examples/21-deferred>__MRT rendering and deferred shading.
.. figure:: https://github.com/bkaradzic/bgfx/raw/master/examples/21-deferred/screenshot.png :alt: example-21-deferred
22-windows <https://github.com/bkaradzic/bgfx/tree/master/examples/22-windows>__Rendering into multiple windows.
23-vectordisplay <https://github.com/bkaradzic/bgfx/tree/master/examples/23-vectordisplay>__Rendering lines as oldschool vectors.
.. figure:: https://github.com/bkaradzic/bgfx/raw/master/examples/23-vectordisplay/screenshot.png :alt: example-23-vectordisplay
24-nbody <https://github.com/bkaradzic/bgfx/tree/master/examples/24-nbody>__N-body simulation with compute shaders using buffers.
.. figure:: https://github.com/bkaradzic/bgfx/raw/master/examples/24-nbody/screenshot.png :alt: example-24-nbody
25-c99 <https://github.com/bkaradzic/bgfx/tree/master/examples/25-c99>__Initialization and debug text with C99 API.
26-occlusion <https://github.com/bkaradzic/bgfx/tree/master/examples/26-occlusion>__Using occlusion query for conditional rendering.
.. figure:: https://github.com/bkaradzic/bgfx/raw/master/examples/26-occlusion/screenshot.png :alt: example-26-occlusion
27-terrain <https://github.com/bkaradzic/bgfx/tree/master/examples/27-terrain>__Terrain painting example.
.. figure:: https://github.com/bkaradzic/bgfx/raw/master/examples/27-terrain/screenshot.png :alt: example-27-terrain
28-wireframe <https://github.com/bkaradzic/bgfx/tree/master/examples/28-wireframe>__Drawing wireframe mesh.
.. figure:: https://github.com/bkaradzic/bgfx/raw/master/examples/28-wireframe/screenshot.png :alt: example-28-wireframe
29-debugdraw <https://github.com/bkaradzic/bgfx/tree/master/examples/29-debugdraw>__Debug draw.
.. figure:: https://github.com/bkaradzic/bgfx/raw/master/examples/29-debugdraw/screenshot.png :alt: example-29-debugdraw
30-picking <https://github.com/bkaradzic/bgfx/tree/master/examples/30-picking>__Mouse picking via GPU readback.
.. figure:: https://github.com/bkaradzic/bgfx/raw/master/examples/30-picking/screenshot.png :alt: example-30-picking
31-rsm <https://github.com/bkaradzic/bgfx/tree/master/examples/31-rsm>__Global Illumination with Reflective Shadow Map.
.. figure:: https://github.com/bkaradzic/bgfx/raw/master/examples/31-rsm/screenshot.png :alt: example-31-rsm
32-particles <https://github.com/bkaradzic/bgfx/tree/master/examples/32-particles>__Particles.
.. figure:: https://github.com/bkaradzic/bgfx/raw/master/examples/32-particles/screenshot.png :alt: example-32-particles
33-pom <https://github.com/bkaradzic/bgfx/tree/master/examples/33-pom>__Parallax occlusion mapping.
Reference(s):
Exploring bump mapping with WebGL <http://apoorvaj.io/exploring-bump-mapping-with-webgl.html>__.. figure:: https://github.com/bkaradzic/bgfx/raw/master/examples/33-pom/screenshot.png :alt: example-33-pom
34-mvs <https://github.com/bkaradzic/bgfx/tree/master/examples/34-mvs>__Multiple vertex streams.
.. figure:: https://github.com/bkaradzic/bgfx/raw/master/examples/34-mvs/screenshot.png :alt: example-34-mvs
35-dynamic <https://github.com/bkaradzic/bgfx/tree/master/examples/35-dynamic>__Dynamic buffers update.
.. figure:: https://github.com/bkaradzic/bgfx/raw/master/examples/35-dynamic/screenshot.png :alt: example-35-dynamic
36-sky <https://github.com/bkaradzic/bgfx/tree/master/examples/36-sky>__Perez dynamic sky model.
.. figure:: https://github.com/bkaradzic/bgfx/raw/master/examples/36-sky/screenshot.png :alt: example-36-sky
37-gpudrivenrendering <https://github.com/bkaradzic/bgfx/tree/master/examples/37-gpudrivenrendering>__GPU-Driven Rendering.
Reference(s):
Experiments in GPU-based occlusion culling <https://interplayoflight.wordpress.com/2017/11/15/experiments-in-gpu-based-occlusion-culling/>__,Experiments in GPU-based occlusion culling part 2: MultiDrawIndirect and mesh lodding <https://interplayoflight.wordpress.com/2018/01/15/experiments-in-gpu-based-occlusion-culling-part-2-multidrawindirect-and-mesh-lodding/>__,Porting GPU driven occlusion culling to bgfx <https://interplayoflight.wordpress.com/2018/03/05/porting-gpu-driven-occlusion-culling-to-bgfx/>__... figure:: https://github.com/bkaradzic/bgfx/raw/master/examples/37-gpudrivenrendering/screenshot.png :alt: example-37-gpudrivenrendering
38-bloom <https://github.com/bkaradzic/bgfx/tree/master/examples/38-bloom>__Bloom.
Reference(s):
Next Generation Post Processing in Call of Duty: Advanced Warfare <http://www.iryoku.com/next-generation-post-processing-in-call-of-duty-advanced-warfare>__... figure:: https://github.com/bkaradzic/bgfx/raw/master/examples/38-bloom/screenshot.png :alt: example-38-bloom
39-assao <https://github.com/bkaradzic/bgfx/tree/master/examples/39-assao>__Adaptive Screen Space Ambient Occlusion.
Reference(s):
Adaptive Screen Space Ambient Occlusion <https://software.intel.com/en-us/articles/adaptive-screen-space-ambient-occlusion>__... figure:: https://github.com/bkaradzic/bgfx/raw/master/examples/39-assao/screenshot.png :alt: example-39-assao
40-svt <https://github.com/bkaradzic/bgfx/tree/master/examples/40-svt>__Sparse Virtual Textures.
.. figure:: https://github.com/bkaradzic/bgfx/raw/master/examples/40-svt/screenshot.png :alt: example-40-svt
41-tess <https://github.com/bkaradzic/bgfx/tree/master/examples/41-tess>__Adaptive GPU Tessellation with Compute Shaders
Reference(s):
Adaptive GPU Tessellation with Compute Shaders by Jad Khoury, Jonathan Dupuy, and Christophe Riccio <http://onrendering.com/data/papers/isubd/isubd.pdf>__... figure:: https://github.com/bkaradzic/bgfx/raw/master/examples/41-tess/screenshot.png :alt: example-41-tess
42-bunnylod <https://github.com/bkaradzic/bgfx/tree/master/examples/42-bunnylod>__Simple Polygon Reduction
Reference(s):
Simple Polygon Reduction <https://web.archive.org/web/20020114194131/http://www.melax.com/polychop/>__.A Simple, Fast,and Effective Polygon Reduction Algorithm <https://web.archive.org/web/20031204035320/http://www.melax.com/polychop/gdmag.pdf>__... figure:: https://github.com/bkaradzic/bgfx/raw/master/examples/42-bunnylod/screenshot.png :alt: example-42-bunnylod
43-denoise <https://github.com/bkaradzic/bgfx/tree/master/examples/43-denoise>__Denoise
Reference(s):
Spatiotemporal Variance-Guided Filtering: Real-Time Reconstruction for Path-Traced Global Illumination. <https://web.archive.org/web/20170720213354/https://research.nvidia.com/sites/default/files/pubs/2017-07_Spatiotemporal-Variance-Guided-Filtering%3A/svgf_preprint.pdf>__.Streaming G-Buffer Compression for Multi-Sample Anti-Aliasing <https://web.archive.org/web/20200807211002/https://software.intel.com/content/www/us/en/develop/articles/streaming-g-buffer-compression-for-multi-sample-anti-aliasing.html>__.Edge-Avoiding À-Trous Wavelet Transform for fast Global Illumination Filtering <https://web.archive.org/web/20130412085423/https://www.uni-ulm.de/fileadmin/website_uni_ulm/iui.inst.100/institut/Papers/atrousGIfilter.pdf>__... figure:: https://github.com/bkaradzic/bgfx/raw/master/examples/43-denoise/screenshot.png :alt: example-43-denoise
44-sss <https://github.com/bkaradzic/bgfx/tree/master/examples/44-sss>__Screen-Space Shadows
.. figure:: https://github.com/bkaradzic/bgfx/raw/master/examples/44-sss/screenshot.png :alt: example-44-sss
45-bokeh <https://github.com/bkaradzic/bgfx/tree/master/examples/45-bokeh>__Bokeh Depth of Field
Reference(s):
Bokeh depth of field in a single pass <https://web.archive.org/web/20201215123940/https://blog.tuxedolabs.com/2018/05/04/bokeh-depth-of-field-in-single-pass.html>__... figure:: https://github.com/bkaradzic/bgfx/raw/master/examples/45-bokeh/screenshot.png :alt: example-45-bokeh
46-fsr <https://github.com/bkaradzic/bgfx/tree/master/examples/46-fsr>__AMD FidelityFX Super Resolution - high-quality solution for producing high resolution frames from lower resolution inputs.
.. figure:: https://github.com/bkaradzic/bgfx/raw/master/examples/46-fsr/screenshot.png :alt: example-46-fsr
47-pixelformats <https://github.com/bkaradzic/bgfx/tree/master/examples/47-pixelformats>__Pixel Formats
View and test texture formats
.. figure:: https://github.com/bkaradzic/bgfx/raw/master/examples/47-pixelformats/screenshot.png :alt: example-47-pixelformats
48-drawindirect <https://github.com/bkaradzic/bgfx/tree/master/examples/48-drawindirect>__Draw Indirect
Simple example of indirect rendering + an implementation of multidraw indirect
Reference(s):
OpenGL MultiDrawIndirect with per-instance textures <https://web.archive.org/web/20201109155619/https://litasa.github.io/blog/2017/09/04/OpenGL-MultiDrawIndirect-with-Individual-Textures>__.Indirect Rendering - A way to a million draw calls <https://web.archive.org/web/20210926073337/https://cpp-rendering.io/indirect-rendering>__... figure:: https://github.com/bkaradzic/bgfx/raw/master/examples/48-drawindirect/screenshot.png :alt: example-48-drawindirect
49-hextile <https://github.com/bkaradzic/bgfx/tree/master/examples/49-hextile>__Realtime Hex-Tiling
Simple example of how to use Hex-tiling in real time, ported from https://github.com/mmikk/hextile-demo
Reference(s):
Hex-Tiling demo <https://github.com/mmikk/hextile-demo>__.Paper explaining concepts - <https://github.com/mmikk/mmikk.github.io/blob/master/papers3d/mm_hex_compressed.pdf>__... figure:: https://github.com/bkaradzic/bgfx/raw/master/examples/49-hextile/screenshot.png :alt: example-49-hextile