bgfx/examples.html
Бранимир Караџић ed2e0d45e0 Updated docs.
2022-07-23 11:01:21 -07:00

1321 lines
52 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Examples &mdash; bgfx 1.115.8203 documentation</title>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<!--[if lt IE 9]>
<script src="_static/js/html5shiv.min.js"></script>
<![endif]-->
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/language_data.js"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="API Reference" href="bgfx.html" />
<link rel="prev" title="Building" href="build.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="index.html" class="icon icon-home" alt="Documentation Home"> bgfx
</a>
<div class="version">
1.115.8203
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="overview.html">Overview</a></li>
<li class="toctree-l1"><a class="reference internal" href="build.html">Building</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Examples</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#helloworld">00-helloworld</a></li>
<li class="toctree-l2"><a class="reference internal" href="#cubes">01-cubes</a></li>
<li class="toctree-l2"><a class="reference internal" href="#metaballs">02-metaballs</a></li>
<li class="toctree-l2"><a class="reference internal" href="#raymarch">03-raymarch</a></li>
<li class="toctree-l2"><a class="reference internal" href="#mesh">04-mesh</a></li>
<li class="toctree-l2"><a class="reference internal" href="#instancing">05-instancing</a></li>
<li class="toctree-l2"><a class="reference internal" href="#bump">06-bump</a></li>
<li class="toctree-l2"><a class="reference internal" href="#callback">07-callback</a></li>
<li class="toctree-l2"><a class="reference internal" href="#update">08-update</a></li>
<li class="toctree-l2"><a class="reference internal" href="#hdr">09-hdr</a></li>
<li class="toctree-l2"><a class="reference internal" href="#font">10-font</a></li>
<li class="toctree-l2"><a class="reference internal" href="#fontsdf">11-fontsdf</a></li>
<li class="toctree-l2"><a class="reference internal" href="#lod">12-lod</a></li>
<li class="toctree-l2"><a class="reference internal" href="#stencil">13-stencil</a></li>
<li class="toctree-l2"><a class="reference internal" href="#shadowvolumes">14-shadowvolumes</a></li>
<li class="toctree-l2"><a class="reference internal" href="#shadowmaps-simple">15-shadowmaps-simple</a></li>
<li class="toctree-l2"><a class="reference internal" href="#shadowmaps">16-shadowmaps</a></li>
<li class="toctree-l2"><a class="reference internal" href="#drawstress">17-drawstress</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#hz">60Hz</a></li>
<li class="toctree-l3"><a class="reference internal" href="#hz-test-for-browsers">30Hz (test for browsers)</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#ibl">18-ibl</a></li>
<li class="toctree-l2"><a class="reference internal" href="#oit">19-oit</a></li>
<li class="toctree-l2"><a class="reference internal" href="#nanovg">20-nanovg</a></li>
<li class="toctree-l2"><a class="reference internal" href="#deferred">21-deferred</a></li>
<li class="toctree-l2"><a class="reference internal" href="#windows">22-windows</a></li>
<li class="toctree-l2"><a class="reference internal" href="#vectordisplay">23-vectordisplay</a></li>
<li class="toctree-l2"><a class="reference internal" href="#nbody">24-nbody</a></li>
<li class="toctree-l2"><a class="reference internal" href="#c99">25-c99</a></li>
<li class="toctree-l2"><a class="reference internal" href="#occlusion">26-occlusion</a></li>
<li class="toctree-l2"><a class="reference internal" href="#terrain">27-terrain</a></li>
<li class="toctree-l2"><a class="reference internal" href="#wireframe">28-wireframe</a></li>
<li class="toctree-l2"><a class="reference internal" href="#debugdraw">29-debugdraw</a></li>
<li class="toctree-l2"><a class="reference internal" href="#picking">30-picking</a></li>
<li class="toctree-l2"><a class="reference internal" href="#rsm">31-rsm</a></li>
<li class="toctree-l2"><a class="reference internal" href="#particles">32-particles</a></li>
<li class="toctree-l2"><a class="reference internal" href="#pom">33-pom</a></li>
<li class="toctree-l2"><a class="reference internal" href="#mvs">34-mvs</a></li>
<li class="toctree-l2"><a class="reference internal" href="#dynamic">35-dynamic</a></li>
<li class="toctree-l2"><a class="reference internal" href="#sky">36-sky</a></li>
<li class="toctree-l2"><a class="reference internal" href="#gpudrivenrendering">37-gpudrivenrendering</a></li>
<li class="toctree-l2"><a class="reference internal" href="#bloom">38-bloom</a></li>
<li class="toctree-l2"><a class="reference internal" href="#assao">39-assao</a></li>
<li class="toctree-l2"><a class="reference internal" href="#svt">40-svt</a></li>
<li class="toctree-l2"><a class="reference internal" href="#tess">41-tess</a></li>
<li class="toctree-l2"><a class="reference internal" href="#bunnylod">42-bunnylod</a></li>
<li class="toctree-l2"><a class="reference internal" href="#denoise">43-denoise</a></li>
<li class="toctree-l2"><a class="reference internal" href="#sss">44-sss</a></li>
<li class="toctree-l2"><a class="reference internal" href="#bokeh">45-bokeh</a></li>
<li class="toctree-l2"><a class="reference internal" href="#fsr">46-fsr</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="bgfx.html">API Reference</a></li>
<li class="toctree-l1"><a class="reference internal" href="tools.html">Tools</a></li>
<li class="toctree-l1"><a class="reference internal" href="internals.html">Internals</a></li>
<li class="toctree-l1"><a class="reference internal" href="license.html">License</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="index.html">bgfx</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
<li>Examples</li>
<li class="wy-breadcrumbs-aside">
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="examples">
<h1>Examples<a class="headerlink" href="#examples" title="Permalink to this headline"></a></h1>
<p>Most of the examples require shader/texture/mesh data to be loaded. When
running examples your current directory should be examples/runtime.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>&lt;bgfx_path&gt;/examples/runtime $ ../../.build/&lt;config&gt;/bin/example-00-helloworldDebug
</pre></div>
</div>
<div class="section" id="helloworld">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/blob/master/examples/00-helloworld">00-helloworld</a><a class="headerlink" href="#helloworld" title="Permalink to this headline"></a></h2>
<p>Initialization and debug text.</p>
<div class="figure align-default">
<img alt="example-00-helloworld" src="https://github.com/bkaradzic/bgfx/raw/master/examples/00-helloworld/screenshot.png" />
</div>
</div>
<div class="section" id="cubes">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/blob/master/examples/01-cubes/cubes.cpp">01-cubes</a><a class="headerlink" href="#cubes" title="Permalink to this headline"></a></h2>
<p>Rendering simple static mesh.</p>
<div class="figure align-default">
<img alt="example-01-cubes" src="https://github.com/bkaradzic/bgfx/raw/master/examples/01-cubes/screenshot.png" />
</div>
</div>
<div class="section" id="metaballs">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/blob/master/examples/02-metaballs">02-metaballs</a><a class="headerlink" href="#metaballs" title="Permalink to this headline"></a></h2>
<p>Rendering with transient buffers and embedding shaders.</p>
<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, "&amp;");
//text = text.replace(/</g, "&lt;");
//text = text.replace(/>/g, "&gt;");
//text = text.replace('\n', '<br>', '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></div>
<div class="section" id="raymarch">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/blob/master/examples/03-raymarch">03-raymarch</a><a class="headerlink" href="#raymarch" title="Permalink to this headline"></a></h2>
<p>Updating shader uniforms.</p>
<div class="figure align-default">
<img alt="example-03-raymarch" src="https://github.com/bkaradzic/bgfx/raw/master/examples/03-raymarch/screenshot.png" />
</div>
</div>
<div class="section" id="mesh">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/blob/master/examples/04-mesh">04-mesh</a><a class="headerlink" href="#mesh" title="Permalink to this headline"></a></h2>
<p>Loading meshes.</p>
<div class="figure align-default">
<img alt="example-04-mesh" src="https://github.com/bkaradzic/bgfx/raw/master/examples/04-mesh/screenshot.png" />
</div>
</div>
<div class="section" id="instancing">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/blob/master/examples/05-instancing">05-instancing</a><a class="headerlink" href="#instancing" title="Permalink to this headline"></a></h2>
<p>Geometry instancing.</p>
<div class="figure align-default">
<img alt="example-05-instancing" src="https://github.com/bkaradzic/bgfx/raw/master/examples/05-instancing/screenshot.png" />
</div>
</div>
<div class="section" id="bump">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/blob/master/examples/06-bump">06-bump</a><a class="headerlink" href="#bump" title="Permalink to this headline"></a></h2>
<p>Loading textures.</p>
<div class="figure align-default">
<img alt="example-06-bump" src="https://github.com/bkaradzic/bgfx/raw/master/examples/06-bump/screenshot.png" />
</div>
</div>
<div class="section" id="callback">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/blob/master/examples/07-callback">07-callback</a><a class="headerlink" href="#callback" title="Permalink to this headline"></a></h2>
<p>Implementing application specific callbacks for taking screen shots,
caching OpenGL binary shaders, and video capture.</p>
</div>
<div class="section" id="update">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/blob/master/examples/08-update">08-update</a><a class="headerlink" href="#update" title="Permalink to this headline"></a></h2>
<p>Updating textures.</p>
</div>
<div class="section" id="hdr">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/09-hdr">09-hdr</a><a class="headerlink" href="#hdr" title="Permalink to this headline"></a></h2>
<p>Using multiple views with frame buffers, and view order remapping.</p>
<div class="figure align-default">
<img alt="example-09-hdr" src="https://github.com/bkaradzic/bgfx/raw/master/examples/09-hdr/screenshot.png" />
</div>
</div>
<div class="section" id="font">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/10-font">10-font</a><a class="headerlink" href="#font" title="Permalink to this headline"></a></h2>
<p>Use the font system to display text and styled text.</p>
<div class="figure align-default">
<img alt="example-10-font" src="https://github.com/bkaradzic/bgfx/raw/master/examples/10-font/screenshot.png" />
</div>
</div>
<div class="section" id="fontsdf">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/11-fontsdf">11-fontsdf</a><a class="headerlink" href="#fontsdf" title="Permalink to this headline"></a></h2>
<p>Use a single distance field font to render text of various size.</p>
<div class="figure align-default">
<img alt="example-11-fontsdf" src="https://github.com/bkaradzic/bgfx/raw/master/examples/11-fontsdf/screenshot.png" />
</div>
</div>
<div class="section" id="lod">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/12-lod">12-lod</a><a class="headerlink" href="#lod" title="Permalink to this headline"></a></h2>
<p>Mesh LOD transitions.</p>
<div class="figure align-default">
<img alt="example-12-lod" src="https://github.com/bkaradzic/bgfx/raw/master/examples/12-lod/screenshot.png" />
</div>
</div>
<div class="section" id="stencil">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/13-stencil">13-stencil</a><a class="headerlink" href="#stencil" title="Permalink to this headline"></a></h2>
<p>Stencil reflections and shadows.</p>
<div class="figure align-default">
<img alt="example-13-stencil" src="https://github.com/bkaradzic/bgfx/raw/master/examples/13-stencil/screenshot.png" />
</div>
</div>
<div class="section" id="shadowvolumes">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/14-shadowvolumes">14-shadowvolumes</a><a class="headerlink" href="#shadowvolumes" title="Permalink to this headline"></a></h2>
<p>Shadow volumes.</p>
<div class="figure align-default">
<img alt="example-14-shadowvolumes" src="https://github.com/bkaradzic/bgfx/raw/master/examples/14-shadowvolumes/screenshot.png" />
</div>
</div>
<div class="section" id="shadowmaps-simple">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/15-shadowmaps-simple">15-shadowmaps-simple</a><a class="headerlink" href="#shadowmaps-simple" title="Permalink to this headline"></a></h2>
<div class="figure align-default">
<img alt="example-15-shadowmaps-simple" src="https://github.com/bkaradzic/bgfx/raw/master/examples/15-shadowmaps-simple/screenshot.png" />
</div>
</div>
<div class="section" id="shadowmaps">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/16-shadowmaps">16-shadowmaps</a><a class="headerlink" href="#shadowmaps" title="Permalink to this headline"></a></h2>
<div class="figure align-default">
<img alt="example-16-shadowmaps" src="https://github.com/bkaradzic/bgfx/raw/master/examples/16-shadowmaps/screenshot.png" />
</div>
</div>
<div class="section" id="drawstress">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/blob/master/examples/17-drawstress">17-drawstress</a><a class="headerlink" href="#drawstress" title="Permalink to this headline"></a></h2>
<div class="section" id="hz">
<h3>60Hz<a class="headerlink" href="#hz" title="Permalink to this headline"></a></h3>
<p>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 <code class="docutils literal notranslate"><span class="pre">BGFX_CONFIG_MAX_DRAW_CALLS</span></code>.</p>
<table class="docutils align-default">
<colgroup>
<col style="width: 19%" />
<col style="width: 18%" />
<col style="width: 16%" />
<col style="width: 27%" />
<col style="width: 8%" />
<col style="width: 11%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p>CPU</p></th>
<th class="head"><p>Renderer</p></th>
<th class="head"><p>GPU</p></th>
<th class="head"><p>Arch/Compiler/OS</p></th>
<th class="head"><p>Dim</p></th>
<th class="head"><p>Calls</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>i7-4770K 4.2</p></td>
<td><p>GL2.1</p></td>
<td><p>2xGTX780</p></td>
<td><p>x64/VS2013/Win 8.1</p></td>
<td><p>51</p></td>
<td><p>132651</p></td>
</tr>
<tr class="row-odd"><td><p>i7-4770K 4.2</p></td>
<td><p>DX11</p></td>
<td><p>2xGTX780</p></td>
<td><p>x64/VS2013/Win 8.1</p></td>
<td><p>50</p></td>
<td><p>125000</p></td>
</tr>
<tr class="row-even"><td><p>i7-4790K 4.0</p></td>
<td><p>GL2.1</p></td>
<td><p>GTX970</p></td>
<td><p>x64/VS2015/Win 10</p></td>
<td><p>47</p></td>
<td><p>103823</p></td>
</tr>
<tr class="row-odd"><td><p>i7-4790K 4.0</p></td>
<td><p>DX11</p></td>
<td><p>GTX970</p></td>
<td><p>x64/VS2015/Win 10</p></td>
<td><p>45</p></td>
<td><p>91125</p></td>
</tr>
<tr class="row-even"><td><p>i7-4790K 4.0</p></td>
<td><p>DX9</p></td>
<td><p>GTX970</p></td>
<td><p>x64/VS2013/Win 10</p></td>
<td><p>40</p></td>
<td><p>64000</p></td>
</tr>
<tr class="row-odd"><td><p>i5-3570 3.8</p></td>
<td><p>NV 331.49</p></td>
<td><p>GTX560Ti</p></td>
<td><p>x64/GCC/Linux</p></td>
<td><p>40</p></td>
<td><p>64000+</p></td>
</tr>
<tr class="row-even"><td><p>i7-920 2.66</p></td>
<td><p>GL2.1</p></td>
<td><p>GTX650Ti</p></td>
<td><p>x64/VS2008/Win 7</p></td>
<td><p>38</p></td>
<td><p>54872</p></td>
</tr>
<tr class="row-odd"><td><p>i7-920 2.66</p></td>
<td><p>GL2.1</p></td>
<td><p>GTX650Ti</p></td>
<td><p>x86/VS2008/Win 7</p></td>
<td><p>38</p></td>
<td><p>54872</p></td>
</tr>
<tr class="row-even"><td><p>i7-6700K 4.0</p></td>
<td><p>GL2.1</p></td>
<td><p>Skylake GT2</p></td>
<td><p>x64/GCC/Win 10</p></td>
<td><p>38</p></td>
<td><p>54872</p></td>
</tr>
<tr class="row-odd"><td><p>i7-4790K 4.0</p></td>
<td><p>DX11</p></td>
<td><p>R7 240</p></td>
<td><p>x64/VS2015/Win 10</p></td>
<td><p>36</p></td>
<td><p>46656</p></td>
</tr>
<tr class="row-even"><td><p>i7-920 2.66</p></td>
<td><p>NV 331.113</p></td>
<td><p>GTX650Ti</p></td>
<td><p>x64/GCC/Linux</p></td>
<td><p>34</p></td>
<td><p>39304</p></td>
</tr>
<tr class="row-odd"><td><p>i7-6700K 4.0</p></td>
<td><p>DX11</p></td>
<td><p>Skylake GT2</p></td>
<td><p>x64/GCC/Win 10</p></td>
<td><p>34</p></td>
<td><p>39304</p></td>
</tr>
<tr class="row-even"><td><p>i7-4790K 4.0</p></td>
<td><p>DX9</p></td>
<td><p>R7 240</p></td>
<td><p>x64/VS2015/Win 10</p></td>
<td><p>32</p></td>
<td><p>32768</p></td>
</tr>
<tr class="row-odd"><td><p>i7-920 2.66</p></td>
<td><p>DX9</p></td>
<td><p>GTX650Ti</p></td>
<td><p>x64/GCC/Win 7</p></td>
<td><p>32</p></td>
<td><p>32768</p></td>
</tr>
<tr class="row-even"><td><p>i7-920 2.66</p></td>
<td><p>DX9</p></td>
<td><p>GTX650Ti</p></td>
<td><p>x64/VS2008/Win 7</p></td>
<td><p>32</p></td>
<td><p>32768</p></td>
</tr>
<tr class="row-odd"><td><p>i7-920 2.66</p></td>
<td><p>DX9</p></td>
<td><p>GTX650Ti</p></td>
<td><p>x86/GCC/Win 7</p></td>
<td><p>30</p></td>
<td><p>27000</p></td>
</tr>
<tr class="row-even"><td><p>i7-920 2.66</p></td>
<td><p>DX9</p></td>
<td><p>GTX650Ti</p></td>
<td><p>x86/VS2008/Win 7</p></td>
<td><p>30</p></td>
<td><p>27000</p></td>
</tr>
<tr class="row-odd"><td><p>i5-6200U 2.3</p></td>
<td><p>DX11</p></td>
<td><p>Intel 520</p></td>
<td><p>x64/GCC/Win 10</p></td>
<td><p>30</p></td>
<td><p>27000</p></td>
</tr>
<tr class="row-even"><td><p>i5-4250U 1.3</p></td>
<td><p>GL2.1</p></td>
<td><p>HD5000</p></td>
<td><p>x64/Clang/OSX 10.9</p></td>
<td><p>28</p></td>
<td><p>21852</p></td>
</tr>
<tr class="row-odd"><td><p>Q8200 2.33</p></td>
<td><p>NV 319.32</p></td>
<td><p>GTX260</p></td>
<td><p>x64/GCC/Linux</p></td>
<td><p>27</p></td>
<td><p>19683</p></td>
</tr>
<tr class="row-even"><td><p>i7-6700K 4.0</p></td>
<td><p>GL2.1</p></td>
<td><p>Skylake GT2</p></td>
<td><p>x64/GCC/Linux</p></td>
<td><p>27</p></td>
<td><p>19683</p></td>
</tr>
<tr class="row-odd"><td><p>i7-2600K 3.4</p></td>
<td><p>DX9</p></td>
<td><p>AMD6800</p></td>
<td><p>x64/VS2012/Win 7</p></td>
<td><p>27</p></td>
<td><p>19683</p></td>
</tr>
<tr class="row-even"><td><p>i7-2600K 3.4</p></td>
<td><p>GL2.1</p></td>
<td><p>AMD6800</p></td>
<td><p>x64/VS2012/Win 7</p></td>
<td><p>26</p></td>
<td><p>17576</p></td>
</tr>
<tr class="row-odd"><td><p>i7-4770R 3.2</p></td>
<td><p>Mesa 10.5.9</p></td>
<td><p>HD5200</p></td>
<td><p>x64/GCC/Linux</p></td>
<td><p>26</p></td>
<td><p>17576</p></td>
</tr>
<tr class="row-even"><td><p>i5-6200U 2.3</p></td>
<td><p>GL</p></td>
<td><p>Intel 520</p></td>
<td><p>x64/GCC/Win 10</p></td>
<td><p>26</p></td>
<td><p>17576</p></td>
</tr>
<tr class="row-odd"><td><p>i7-920 2.66</p></td>
<td><p>DX9-Wine</p></td>
<td><p>GTX650Ti</p></td>
<td><p>x64/GCC/Linux</p></td>
<td><p>24</p></td>
<td><p>13824</p></td>
</tr>
<tr class="row-even"><td><p>i5-6200U 2.3</p></td>
<td><p>Mesa 10.5.9</p></td>
<td><p>Intel 520</p></td>
<td><p>x64/GCC/Linux</p></td>
<td><p>23</p></td>
<td><p>12167</p></td>
</tr>
<tr class="row-odd"><td><p>i7-4750HQ 2.0</p></td>
<td><p>Mesa 10.0.1</p></td>
<td><p>HD5200</p></td>
<td><p>x64/GCC/Linux</p></td>
<td><p>22</p></td>
<td><p>10648</p></td>
</tr>
<tr class="row-even"><td><p>i7-4750HQ 2.0</p></td>
<td><p>Mesa 10.1.3</p></td>
<td><p>HD5200</p></td>
<td><p>x64/GCC/Linux</p></td>
<td><p>21</p></td>
<td><p>9261</p></td>
</tr>
<tr class="row-odd"><td><p>i7-920 2.66</p></td>
<td><p>ES2-ANGLE</p></td>
<td><p>GTX650Ti</p></td>
<td><p>x86/VS2008/Win 7</p></td>
<td><p>21</p></td>
<td><p>9261</p></td>
</tr>
<tr class="row-even"><td><p>Q8200 2.33</p></td>
<td><p>Gallium 0.4</p></td>
<td><p>AMD5770</p></td>
<td><p>x64/GCC/Linux</p></td>
<td><p>21</p></td>
<td><p>9261</p></td>
</tr>
<tr class="row-odd"><td><p>i5-4250U 1.3</p></td>
<td><p>ES2</p></td>
<td><p>HD5000</p></td>
<td><p>JIT/Clang/PNaCl 31</p></td>
<td><p>21</p></td>
<td><p>9261</p></td>
</tr>
<tr class="row-even"><td><p>i5-4250U 1.3</p></td>
<td><p>ES2</p></td>
<td><p>HD5000</p></td>
<td><p>x86/GCC/NaCl 31</p></td>
<td><p>20</p></td>
<td><p>8000</p></td>
</tr>
<tr class="row-odd"><td><p>Q8200 2.33</p></td>
<td><p>Gallium 0.4</p></td>
<td><p>GTX260</p></td>
<td><p>x64/GCC/Linux</p></td>
<td><p>19</p></td>
<td><p>6859</p></td>
</tr>
<tr class="row-even"><td><p>i5-2450M 2.5</p></td>
<td><p>Mesa 10.2.0</p></td>
<td><p>HD3000</p></td>
<td><p>x64/GCC/Linux</p></td>
<td><p>19</p></td>
<td><p>6859</p></td>
</tr>
<tr class="row-odd"><td><p>i7-920 2.66</p></td>
<td><p>ES2-PowerVR</p></td>
<td><p>GTX650Ti</p></td>
<td><p>x86/VS2008/Win 7</p></td>
<td><p>18</p></td>
<td><p>5832</p></td>
</tr>
<tr class="row-even"><td><p>i7-920 2.66</p></td>
<td><p>FF27-GL</p></td>
<td><p>GTX650Ti</p></td>
<td><p>JIT/Clang/W7-asm.js</p></td>
<td><p>17</p></td>
<td><p>4913</p></td>
</tr>
<tr class="row-odd"><td><p>i7-6700K 4.0</p></td>
<td><p>DX9</p></td>
<td><p>Skylake GT2</p></td>
<td><p>x64/GCC/Win 10</p></td>
<td><p>16</p></td>
<td><p>4096</p></td>
</tr>
<tr class="row-even"><td><p>i7-4750HQ 2.0</p></td>
<td><p>Mesa 8.0.5</p></td>
<td><p>LLVMPIPE</p></td>
<td><p>x64/GCC/Linux</p></td>
<td><p>16</p></td>
<td><p>4096</p></td>
</tr>
<tr class="row-odd"><td><p>i5-6200U 2.3</p></td>
<td><p>DX9</p></td>
<td><p>Intel 520</p></td>
<td><p>x64/GCC/Win 10</p></td>
<td><p>16</p></td>
<td><p>4096</p></td>
</tr>
<tr class="row-even"><td><p>i7-920 2.66</p></td>
<td><p>ES2-Qualcomm</p></td>
<td><p>GTX650Ti</p></td>
<td><p>x86/VS2008/Win 7</p></td>
<td><p>15</p></td>
<td><p>3375</p></td>
</tr>
<tr class="row-odd"><td><p>i7-920 2.66</p></td>
<td><p>ES2</p></td>
<td><p>GTX650Ti</p></td>
<td><p>x64/GCC/NaCl 31</p></td>
<td><p>15</p></td>
<td><p>3375</p></td>
</tr>
<tr class="row-even"><td><p>i7-920 2.66</p></td>
<td><p>ES2</p></td>
<td><p>GTX650Ti</p></td>
<td><p>JIT/Clang/PNaCl 31</p></td>
<td><p>15</p></td>
<td><p>3375</p></td>
</tr>
<tr class="row-odd"><td><p>Q8200 2.33</p></td>
<td><p>NV 319.32</p></td>
<td><p>GTX260</p></td>
<td><p>x64/GCC/NaCl 31</p></td>
<td><p>15</p></td>
<td><p>3375</p></td>
</tr>
<tr class="row-even"><td><p>Q8200 2.33</p></td>
<td><p>NV 319.32</p></td>
<td><p>GTX260</p></td>
<td><p>x64/GCC/PNaCl 31</p></td>
<td><p>15</p></td>
<td><p>3375</p></td>
</tr>
<tr class="row-odd"><td><p>12 Nexus 7</p></td>
<td><p>ES2</p></td>
<td><p>Tegra3</p></td>
<td><p>ARM/GCC/Android</p></td>
<td><p>15</p></td>
<td><p>3375</p></td>
</tr>
<tr class="row-even"><td><p>i5-4250U 1.3</p></td>
<td><p>ES2-FF27</p></td>
<td><p>HD5000</p></td>
<td><p>JIT/Clang/OSX-asm.js</p></td>
<td><p>15</p></td>
<td><p>3375</p></td>
</tr>
<tr class="row-odd"><td><p>i5-4250U 1.3</p></td>
<td><p>Chrome33</p></td>
<td><p>HD5000</p></td>
<td><p>JIT/Clang/OSX-asm.js</p></td>
<td><p>15</p></td>
<td><p>3375</p></td>
</tr>
<tr class="row-even"><td><p>iPad mini 2</p></td>
<td><p>ES2</p></td>
<td><p>PVR G6430</p></td>
<td><p>ARM64/Clang/iOS7</p></td>
<td><p>15</p></td>
<td><p>3375</p></td>
</tr>
<tr class="row-odd"><td><p>i7-920 2.66</p></td>
<td><p>Chrome33</p></td>
<td><p>GTX650Ti</p></td>
<td><p>JIT/Clang/W7-asm.js</p></td>
<td><p>14</p></td>
<td><p>2744</p></td>
</tr>
<tr class="row-even"><td><p>i7-920 2.66</p></td>
<td><p>FF27-ANGLE</p></td>
<td><p>GTX650Ti</p></td>
<td><p>JIT/Clang/W7-asm.js</p></td>
<td><p>14</p></td>
<td><p>2744</p></td>
</tr>
<tr class="row-odd"><td><p>13 Nexus 10</p></td>
<td><p>ES2</p></td>
<td><p>Mali T604</p></td>
<td><p>ARM/GCC/Android</p></td>
<td><p>13</p></td>
<td><p>2197</p></td>
</tr>
<tr class="row-even"><td><p>iPhone 5</p></td>
<td><p>ES2</p></td>
<td><p>PVR SGX543</p></td>
<td><p>ARM/Clang/iOS7</p></td>
<td><p>13</p></td>
<td><p>2197</p></td>
</tr>
<tr class="row-odd"><td><p>13 Nexus 7</p></td>
<td><p>ES2</p></td>
<td><p>S4 Pro</p></td>
<td><p>ARM/GCC/Android</p></td>
<td><p>12</p></td>
<td><p>1728</p></td>
</tr>
<tr class="row-even"><td><p>iPad 2</p></td>
<td><p>ES2</p></td>
<td><p>PVR SGX543</p></td>
<td><p>ARM/Clang/iOS6</p></td>
<td><p>12</p></td>
<td><p>1728</p></td>
</tr>
<tr class="row-odd"><td><p>AMD A4-5000</p></td>
<td><p>Gallium 0.4</p></td>
<td><p>HD8330/Kabini</p></td>
<td><p>x64/GCC/Linux</p></td>
<td><p>12</p></td>
<td><p>1728</p></td>
</tr>
<tr class="row-even"><td><p>Xperia Z</p></td>
<td><p>ES2</p></td>
<td><p>Adreno320</p></td>
<td><p>ARM/GCC/Android</p></td>
<td><p>11</p></td>
<td><p>1331</p></td>
</tr>
<tr class="row-odd"><td><p>iPod 4</p></td>
<td><p>ES2</p></td>
<td><p>PVR SGX535</p></td>
<td><p>ARM/Clang/iOS6</p></td>
<td><p>7</p></td>
<td><p>343</p></td>
</tr>
<tr class="row-even"><td><p>i7-920 2.66</p></td>
<td><p>ES2-Mali</p></td>
<td><p>GTX650Ti</p></td>
<td><p>x86/VS2008/Windows7</p></td>
<td><p>6</p></td>
<td><p>216</p></td>
</tr>
<tr class="row-odd"><td><p>Creator CI20</p></td>
<td><p>ES2</p></td>
<td><p>PVR SGX540</p></td>
<td><p>MIPS/GCC/Debian8</p></td>
<td><p>7</p></td>
<td><p>343</p></td>
</tr>
<tr class="row-even"><td><p>i5-6200U 2.3</p></td>
<td><p>ES2</p></td>
<td><p>SwiftShader</p></td>
<td><p>x64/GCC/Linux</p></td>
<td><p>6</p></td>
<td><p>216</p></td>
</tr>
<tr class="row-odd"><td><p>RaspberryPi</p></td>
<td><p>ES2</p></td>
<td><p>VC IV</p></td>
<td><p>ARM/GCC/Raspbian</p></td>
<td><p>6</p></td>
<td><p>216</p></td>
</tr>
</tbody>
</table>
<p>To test browsers in 60Hz mode following changes were made:</p>
<ul class="simple">
<li><p>Firefox 27 <a class="reference external" href="about:config">about:config</a> adjustments: <code class="docutils literal notranslate"><span class="pre">webgl.prefer-native-gl</span> <span class="pre">true</span></code>
(on Windows), and <code class="docutils literal notranslate"><span class="pre">layout.frame_rate</span> <span class="pre">500</span></code>.</p></li>
<li><p>Chrome 33 command line option: <code class="docutils literal notranslate"><span class="pre">--disable-gpu-vsync</span></code>.</p></li>
</ul>
</div>
<div class="section" id="hz-test-for-browsers">
<h3>30Hz (test for browsers)<a class="headerlink" href="#hz-test-for-browsers" title="Permalink to this headline"></a></h3>
<p>By default browsers are using vsync, and dont have option to turn it
off programmatically.</p>
<table class="docutils align-default">
<colgroup>
<col style="width: 19%" />
<col style="width: 14%" />
<col style="width: 14%" />
<col style="width: 31%" />
<col style="width: 8%" />
<col style="width: 12%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p>CPU</p></th>
<th class="head"><p>Renderer</p></th>
<th class="head"><p>GPU</p></th>
<th class="head"><p>Arch/Compiler/OS</p></th>
<th class="head"><p>Dim</p></th>
<th class="head"><p>Calls</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>i7-920 2.66</p></td>
<td><p>GL2.1</p></td>
<td><p>GTX650Ti</p></td>
<td><p>x64/VS2008/Win7</p></td>
<td><p>38</p></td>
<td><p>64000+</p></td>
</tr>
<tr class="row-odd"><td><p>i5-4250U 1.3</p></td>
<td><p>GL2.1</p></td>
<td><p>HD5000</p></td>
<td><p>x64/Clang/OSX 10.9</p></td>
<td><p>36</p></td>
<td><p>46656</p></td>
</tr>
<tr class="row-even"><td><p>i5-4250U 1.3</p></td>
<td><p>Chrome34</p></td>
<td><p>HD5000</p></td>
<td><p>JIT/Clang/OSX-PNaCl 31</p></td>
<td><p>28</p></td>
<td><p>21952</p></td>
</tr>
<tr class="row-odd"><td><p>i5-4250U 1.3</p></td>
<td><p>Chrome33</p></td>
<td><p>HD5000</p></td>
<td><p>JIT/Clang/OSX-PNaCl 31</p></td>
<td><p>27</p></td>
<td><p>19683</p></td>
</tr>
<tr class="row-even"><td><p>i5-4250U 1.3</p></td>
<td><p>FF28</p></td>
<td><p>HD5000</p></td>
<td><p>JIT/Clang/OSX-asm.js</p></td>
<td><p>25</p></td>
<td><p>15625</p></td>
</tr>
<tr class="row-odd"><td><p>i5-4250U 1.3</p></td>
<td><p>FF36</p></td>
<td><p>HD5000</p></td>
<td><p>JIT/Clang/OSX-asm.js</p></td>
<td><p>25</p></td>
<td><p>15625</p></td>
</tr>
<tr class="row-even"><td><p>i5-4250U 1.3</p></td>
<td><p>Chrome41</p></td>
<td><p>HD5000</p></td>
<td><p>x64/GCC/OSX-NaCl 41</p></td>
<td><p>24</p></td>
<td><p>13824</p></td>
</tr>
<tr class="row-odd"><td><p>i5-4250U 1.3</p></td>
<td><p>FF37</p></td>
<td><p>HD5000</p></td>
<td><p>JIT/Clang/OSX-asm.js</p></td>
<td><p>23</p></td>
<td><p>12167</p></td>
</tr>
<tr class="row-even"><td><p>i5-4250U 1.3</p></td>
<td><p>FF27</p></td>
<td><p>HD5000</p></td>
<td><p>JIT/Clang/OSX-asm.js</p></td>
<td><p>20</p></td>
<td><p>8000</p></td>
</tr>
<tr class="row-odd"><td><p>i7-920 2.66</p></td>
<td><p>Chrome33</p></td>
<td><p>GTX650Ti</p></td>
<td><p>JIT/Clang/W7-PNaCl 31</p></td>
<td><p>20</p></td>
<td><p>8000</p></td>
</tr>
<tr class="row-even"><td><p>i7-920 2.66</p></td>
<td><p>Chrome34</p></td>
<td><p>GTX650Ti</p></td>
<td><p>JIT/Clang/W7-asm.js</p></td>
<td><p>18</p></td>
<td><p>5832</p></td>
</tr>
<tr class="row-odd"><td><p>i7-920 2.66</p></td>
<td><p>Chrome33</p></td>
<td><p>GTX650Ti</p></td>
<td><p>JIT/Clang/W7-asm.js</p></td>
<td><p>18</p></td>
<td><p>5832</p></td>
</tr>
<tr class="row-even"><td><p>i7-920 2.66</p></td>
<td><p>FF28</p></td>
<td><p>GTX650Ti</p></td>
<td><p>JIT/Clang/W7-asm.js</p></td>
<td><p>18</p></td>
<td><p>5832</p></td>
</tr>
<tr class="row-odd"><td><p>i7-920 2.66</p></td>
<td><p>FF27</p></td>
<td><p>GTX650Ti</p></td>
<td><p>JIT/Clang/W7-asm.js</p></td>
<td><p>18</p></td>
<td><p>5832</p></td>
</tr>
<tr class="row-even"><td><p>i5-4250U 1.3</p></td>
<td><p>Safari7</p></td>
<td><p>HD5000</p></td>
<td><p>JIT/Clang/OSX-asm.js</p></td>
<td><p>15</p></td>
<td><p>3375</p></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="section" id="ibl">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/18-ibl">18-ibl</a><a class="headerlink" href="#ibl" title="Permalink to this headline"></a></h2>
<p>Image-based lighting.</p>
<div class="figure align-default">
<img alt="example-18-ibl" src="https://github.com/bkaradzic/bgfx/raw/master/examples/18-ibl/screenshot.png" />
</div>
</div>
<div class="section" id="oit">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/19-oit">19-oit</a><a class="headerlink" href="#oit" title="Permalink to this headline"></a></h2>
<p>Weighted, Blended Order-Independent Transparency</p>
<div class="figure align-default">
<img alt="example-19-oit" src="https://github.com/bkaradzic/bgfx/raw/master/examples/19-oit/screenshot.png" />
</div>
</div>
<div class="section" id="nanovg">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/20-nanovg">20-nanovg</a><a class="headerlink" href="#nanovg" title="Permalink to this headline"></a></h2>
<p>NanoVG is small antialiased vector graphics rendering library.</p>
<div class="figure align-default">
<img alt="example-20-nanovg" src="https://github.com/bkaradzic/bgfx/raw/master/examples/20-nanovg/screenshot.png" />
</div>
</div>
<div class="section" id="deferred">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/21-deferred">21-deferred</a><a class="headerlink" href="#deferred" title="Permalink to this headline"></a></h2>
<p>MRT rendering and deferred shading.</p>
<div class="figure align-default">
<img alt="example-21-deferred" src="https://github.com/bkaradzic/bgfx/raw/master/examples/21-deferred/screenshot.png" />
</div>
</div>
<div class="section" id="windows">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/22-windows">22-windows</a><a class="headerlink" href="#windows" title="Permalink to this headline"></a></h2>
<p>Rendering into multiple windows.</p>
</div>
<div class="section" id="vectordisplay">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/23-vectordisplay">23-vectordisplay</a><a class="headerlink" href="#vectordisplay" title="Permalink to this headline"></a></h2>
<p>Rendering lines as oldschool vectors.</p>
<div class="figure align-default">
<img alt="example-23-vectordisplay" src="https://github.com/bkaradzic/bgfx/raw/master/examples/23-vectordisplay/screenshot.png" />
</div>
</div>
<div class="section" id="nbody">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/24-nbody">24-nbody</a><a class="headerlink" href="#nbody" title="Permalink to this headline"></a></h2>
<p>N-body simulation with compute shaders using buffers.</p>
<div class="figure align-default">
<img alt="example-24-nbody" src="https://github.com/bkaradzic/bgfx/raw/master/examples/24-nbody/screenshot.png" />
</div>
</div>
<div class="section" id="c99">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/25-c99">25-c99</a><a class="headerlink" href="#c99" title="Permalink to this headline"></a></h2>
<p>Initialization and debug text with C99 API.</p>
</div>
<div class="section" id="occlusion">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/26-occlusion">26-occlusion</a><a class="headerlink" href="#occlusion" title="Permalink to this headline"></a></h2>
<p>Using occlusion query for conditional rendering.</p>
<div class="figure align-default">
<img alt="example-26-occlusion" src="https://github.com/bkaradzic/bgfx/raw/master/examples/26-occlusion/screenshot.png" />
</div>
</div>
<div class="section" id="terrain">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/27-terrain">27-terrain</a><a class="headerlink" href="#terrain" title="Permalink to this headline"></a></h2>
<p>Terrain painting example.</p>
<div class="figure align-default">
<img alt="example-27-terrain" src="https://github.com/bkaradzic/bgfx/raw/master/examples/27-terrain/screenshot.png" />
</div>
</div>
<div class="section" id="wireframe">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/28-wireframe">28-wireframe</a><a class="headerlink" href="#wireframe" title="Permalink to this headline"></a></h2>
<p>Drawing wireframe mesh.</p>
<div class="figure align-default">
<img alt="example-28-wireframe" src="https://github.com/bkaradzic/bgfx/raw/master/examples/28-wireframe/screenshot.png" />
</div>
</div>
<div class="section" id="debugdraw">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/29-debugdraw">29-debugdraw</a><a class="headerlink" href="#debugdraw" title="Permalink to this headline"></a></h2>
<p>Debug draw.</p>
<div class="figure align-default">
<img alt="example-29-debugdraw" src="https://github.com/bkaradzic/bgfx/raw/master/examples/29-debugdraw/screenshot.png" />
</div>
</div>
<div class="section" id="picking">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/30-picking">30-picking</a><a class="headerlink" href="#picking" title="Permalink to this headline"></a></h2>
<p>Mouse picking via GPU readback.</p>
<div class="figure align-default">
<img alt="example-30-picking" src="https://github.com/bkaradzic/bgfx/raw/master/examples/30-picking/screenshot.png" />
</div>
</div>
<div class="section" id="rsm">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/31-rsm">31-rsm</a><a class="headerlink" href="#rsm" title="Permalink to this headline"></a></h2>
<p>Global Illumination with Reflective Shadow Map.</p>
<div class="figure align-default">
<img alt="example-31-rsm" src="https://github.com/bkaradzic/bgfx/raw/master/examples/31-rsm/screenshot.png" />
</div>
</div>
<div class="section" id="particles">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/32-particles">32-particles</a><a class="headerlink" href="#particles" title="Permalink to this headline"></a></h2>
<p>Particles.</p>
<div class="figure align-default">
<img alt="example-32-particles" src="https://github.com/bkaradzic/bgfx/raw/master/examples/32-particles/screenshot.png" />
</div>
</div>
<div class="section" id="pom">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/33-pom">33-pom</a><a class="headerlink" href="#pom" title="Permalink to this headline"></a></h2>
<p>Parallax occlusion mapping.</p>
<dl class="simple">
<dt>Reference(s):</dt><dd><ul class="simple">
<li><p><a class="reference external" href="http://apoorvaj.io/exploring-bump-mapping-with-webgl.html">Exploring bump mapping with WebGL</a></p></li>
</ul>
</dd>
</dl>
<div class="figure align-default">
<img alt="example-33-pom" src="https://github.com/bkaradzic/bgfx/raw/master/examples/33-pom/screenshot.png" />
</div>
</div>
<div class="section" id="mvs">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/34-mvs">34-mvs</a><a class="headerlink" href="#mvs" title="Permalink to this headline"></a></h2>
<p>Multiple vertex streams.</p>
<div class="figure align-default">
<img alt="example-34-mvs" src="https://github.com/bkaradzic/bgfx/raw/master/examples/34-mvs/screenshot.png" />
</div>
</div>
<div class="section" id="dynamic">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/35-dynamic">35-dynamic</a><a class="headerlink" href="#dynamic" title="Permalink to this headline"></a></h2>
<p>Dynamic buffers update.</p>
<div class="figure align-default">
<img alt="example-35-dynamic" src="https://github.com/bkaradzic/bgfx/raw/master/examples/35-dynamic/screenshot.png" />
</div>
</div>
<div class="section" id="sky">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/36-sky">36-sky</a><a class="headerlink" href="#sky" title="Permalink to this headline"></a></h2>
<p>Perez dynamic sky model.</p>
<div class="figure align-default">
<img alt="example-36-sky" src="https://github.com/bkaradzic/bgfx/raw/master/examples/36-sky/screenshot.png" />
</div>
</div>
<div class="section" id="gpudrivenrendering">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/37-gpudrivenrendering">37-gpudrivenrendering</a><a class="headerlink" href="#gpudrivenrendering" title="Permalink to this headline"></a></h2>
<p>GPU-Driven Rendering.</p>
<dl class="simple">
<dt>Reference(s):</dt><dd><ul class="simple">
<li><p><a class="reference external" href="https://interplayoflight.wordpress.com/2017/11/15/experiments-in-gpu-based-occlusion-culling/">Experiments in GPU-based occlusion culling</a>,</p></li>
<li><p><a class="reference external" href="https://interplayoflight.wordpress.com/2018/01/15/experiments-in-gpu-based-occlusion-culling-part-2-multidrawindirect-and-mesh-lodding/">Experiments in GPU-based occlusion culling part 2: MultiDrawIndirect and mesh lodding</a>,</p></li>
<li><p><a class="reference external" href="https://interplayoflight.wordpress.com/2018/03/05/porting-gpu-driven-occlusion-culling-to-bgfx/">Porting GPU driven occlusion culling to bgfx</a>.</p></li>
</ul>
</dd>
</dl>
<div class="figure align-default">
<img alt="example-37-gpudrivenrendering" src="https://github.com/bkaradzic/bgfx/raw/master/examples/37-gpudrivenrendering/screenshot.png" />
</div>
</div>
<div class="section" id="bloom">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/38-bloom">38-bloom</a><a class="headerlink" href="#bloom" title="Permalink to this headline"></a></h2>
<p>Bloom.</p>
<dl class="simple">
<dt>Reference(s):</dt><dd><ul class="simple">
<li><p><a class="reference external" href="http://www.iryoku.com/next-generation-post-processing-in-call-of-duty-advanced-warfare">Next Generation Post Processing in Call of Duty: Advanced Warfare</a>.</p></li>
</ul>
</dd>
</dl>
<div class="figure align-default">
<img alt="example-38-bloom" src="https://github.com/bkaradzic/bgfx/raw/master/examples/38-bloom/screenshot.png" />
</div>
</div>
<div class="section" id="assao">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/39-assao">39-assao</a><a class="headerlink" href="#assao" title="Permalink to this headline"></a></h2>
<p>Adaptive Screen Space Ambient Occlusion.</p>
<dl class="simple">
<dt>Reference(s):</dt><dd><ul class="simple">
<li><p><a class="reference external" href="https://software.intel.com/en-us/articles/adaptive-screen-space-ambient-occlusion">Adaptive Screen Space Ambient Occlusion</a>.</p></li>
</ul>
</dd>
</dl>
<div class="figure align-default">
<img alt="example-39-assao" src="https://github.com/bkaradzic/bgfx/raw/master/examples/39-assao/screenshot.png" />
</div>
</div>
<div class="section" id="svt">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/40-svt">40-svt</a><a class="headerlink" href="#svt" title="Permalink to this headline"></a></h2>
<p>Sparse Virtual Textures.</p>
<div class="figure align-default">
<img alt="example-40-svt" src="https://github.com/bkaradzic/bgfx/raw/master/examples/40-svt/screenshot.png" />
</div>
</div>
<div class="section" id="tess">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/41-tess">41-tess</a><a class="headerlink" href="#tess" title="Permalink to this headline"></a></h2>
<p>Adaptive GPU Tessellation with Compute Shaders</p>
<dl class="simple">
<dt>Reference(s):</dt><dd><ul class="simple">
<li><p><a class="reference external" href="http://onrendering.com/data/papers/isubd/isubd.pdf">Adaptive GPU Tessellation with Compute Shaders by Jad Khoury, Jonathan Dupuy, and Christophe Riccio</a>.</p></li>
</ul>
</dd>
</dl>
<div class="figure align-default">
<img alt="example-41-tess" src="https://github.com/bkaradzic/bgfx/raw/master/examples/41-tess/screenshot.png" />
</div>
</div>
<div class="section" id="bunnylod">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/42-bunnylod">42-bunnylod</a><a class="headerlink" href="#bunnylod" title="Permalink to this headline"></a></h2>
<p>Simple Polygon Reduction</p>
<dl class="simple">
<dt>Reference(s):</dt><dd><ul class="simple">
<li><p><a class="reference external" href="https://web.archive.org/web/20020114194131/http://www.melax.com/polychop/">Simple Polygon Reduction</a>.</p></li>
<li><p><a class="reference external" href="https://web.archive.org/web/20031204035320/http://www.melax.com/polychop/gdmag.pdf">A Simple, Fast,and Effective Polygon Reduction Algorithm</a>.</p></li>
</ul>
</dd>
</dl>
<div class="figure align-default">
<img alt="example-42-bunnylod" src="https://github.com/bkaradzic/bgfx/raw/master/examples/42-bunnylod/screenshot.png" />
</div>
</div>
<div class="section" id="denoise">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/43-denoise">43-denoise</a><a class="headerlink" href="#denoise" title="Permalink to this headline"></a></h2>
<p>Denoise</p>
<dl class="simple">
<dt>Reference(s):</dt><dd><ul class="simple">
<li><p><a class="reference external" href="https://web.archive.org/web/20170720213354/https://research.nvidia.com/sites/default/files/pubs/2017-07_Spatiotemporal-Variance-Guided-Filtering%3A/svgf_preprint.pdf">Spatiotemporal Variance-Guided Filtering: Real-Time Reconstruction for Path-Traced Global Illumination.</a>.</p></li>
<li><p><a class="reference external" href="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">Streaming G-Buffer Compression for Multi-Sample Anti-Aliasing</a>.</p></li>
<li><p><a class="reference external" href="https://web.archive.org/web/20130412085423/https://www.uni-ulm.de/fileadmin/website_uni_ulm/iui.inst.100/institut/Papers/atrousGIfilter.pdf">Edge-Avoiding À-Trous Wavelet Transform for fast Global Illumination Filtering</a>.</p></li>
</ul>
</dd>
</dl>
<div class="figure align-default">
<img alt="example-43-denoise" src="https://github.com/bkaradzic/bgfx/raw/master/examples/43-denoise/screenshot.png" />
</div>
</div>
<div class="section" id="sss">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/44-sss">44-sss</a><a class="headerlink" href="#sss" title="Permalink to this headline"></a></h2>
<p>Screen-Space Shadows</p>
<div class="figure align-default">
<img alt="example-44-sss" src="https://github.com/bkaradzic/bgfx/raw/master/examples/44-sss/screenshot.png" />
</div>
</div>
<div class="section" id="bokeh">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/45-bokeh">45-bokeh</a><a class="headerlink" href="#bokeh" title="Permalink to this headline"></a></h2>
<p>Bokeh Depth of Field</p>
<dl class="simple">
<dt>Reference(s):</dt><dd><ul class="simple">
<li><p><a class="reference external" href="https://web.archive.org/web/20201215123940/https://blog.tuxedolabs.com/2018/05/04/bokeh-depth-of-field-in-single-pass.html">Bokeh depth of field in a single pass</a>.</p></li>
</ul>
</dd>
</dl>
<div class="figure align-default">
<img alt="example-45-bokeh" src="https://github.com/bkaradzic/bgfx/raw/master/examples/45-bokeh/screenshot.png" />
</div>
</div>
<div class="section" id="fsr">
<h2><a class="reference external" href="https://github.com/bkaradzic/bgfx/tree/master/examples/46-fsr">46-fsr</a><a class="headerlink" href="#fsr" title="Permalink to this headline"></a></h2>
<p>AMD FidelityFX Super Resolution - high-quality solution for producing high resolution frames
from lower resolution inputs.</p>
<div class="figure align-default">
<img alt="example-46-fsr" src="https://github.com/bkaradzic/bgfx/raw/master/examples/46-fsr/screenshot.png" />
</div>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="bgfx.html" class="btn btn-neutral float-right" title="API Reference" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="build.html" class="btn btn-neutral float-left" title="Building" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright 2010-2022, Branimir Karadžić
</p>
</div>
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>