﻿<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://wiki.blender.jp/index.php?action=history&amp;feed=atom&amp;title=Dev%3ASource%2FRender%2FCycles%2FBVH</id>
	<title>Dev:Source/Render/Cycles/BVH - 版の履歴</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.blender.jp/index.php?action=history&amp;feed=atom&amp;title=Dev%3ASource%2FRender%2FCycles%2FBVH"/>
	<link rel="alternate" type="text/html" href="https://wiki.blender.jp/index.php?title=Dev:Source/Render/Cycles/BVH&amp;action=history"/>
	<updated>2026-08-21T17:31:43Z</updated>
	<subtitle>このウィキのこのページに関する変更履歴</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://wiki.blender.jp/index.php?title=Dev:Source/Render/Cycles/BVH&amp;diff=104689&amp;oldid=prev</id>
		<title>Yamyam: 1版 をインポートしました</title>
		<link rel="alternate" type="text/html" href="https://wiki.blender.jp/index.php?title=Dev:Source/Render/Cycles/BVH&amp;diff=104689&amp;oldid=prev"/>
		<updated>2018-06-28T19:43:19Z</updated>

		<summary type="html">&lt;p&gt;1版 をインポートしました&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ja&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← 古い版&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;2018年6月28日 (木) 19:43時点における版&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;ja&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(相違点なし)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Yamyam</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.blender.jp/index.php?title=Dev:Source/Render/Cycles/BVH&amp;diff=104688&amp;oldid=prev</id>
		<title>wiki&gt;Brecht: moved Dev:2.6/Source/Render/Cycles/BVH to Dev:Source/Render/Cycles/BVH: remove namespace version</title>
		<link rel="alternate" type="text/html" href="https://wiki.blender.jp/index.php?title=Dev:Source/Render/Cycles/BVH&amp;diff=104688&amp;oldid=prev"/>
		<updated>2015-12-27T19:00:39Z</updated>

		<summary type="html">&lt;p&gt;moved &lt;a href=&quot;/Dev:2.6/Source/Render/Cycles/BVH&quot; class=&quot;mw-redirect&quot; title=&quot;Dev:2.6/Source/Render/Cycles/BVH&quot;&gt;Dev:2.6/Source/Render/Cycles/BVH&lt;/a&gt; to &lt;a href=&quot;/Dev:Source/Render/Cycles/BVH&quot; title=&quot;Dev:Source/Render/Cycles/BVH&quot;&gt;Dev:Source/Render/Cycles/BVH&lt;/a&gt;: remove namespace version&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Bounding Volume Hierarchy ==&lt;br /&gt;
&lt;br /&gt;
The raytracing acceleration structure used is a bounding volume hierarchy. The code is based on an [http://code.google.com/p/understanding-the-efficiency-of-ray-traversal-on-gpus/ implementation from NVidia] under the Apache license. This code includes spatial splits to make it more competitive with kd-trees.&lt;br /&gt;
&lt;br /&gt;
On top of that, we added support for instancing, building a QBVH to use SIMD instructions, and support for dynamically updating the BVH through refitting and a two-level BVH.&lt;br /&gt;
&lt;br /&gt;
=== BVH Building ===&lt;br /&gt;
&lt;br /&gt;
The BVH is built based on the surface area heuristic (SAH) and spatial splits. Build performance without spatial splits is optimized with binning and multithreading, however spatial splits have not yet been optimized.&lt;br /&gt;
&lt;br /&gt;
=== Two-level BVH ===&lt;br /&gt;
&lt;br /&gt;
For instancing and dynamic updates, we build a two level BVH. The BVH's are built independently for each mesh, and then a top level object BVH instances these meshes. This reduces tree quality but for instances leads to lower memory usage and for dynamic updates faster rebuilds as object as are transformed, added or removed. For traversal, the nodes from two levels are still packed into a single array.&lt;br /&gt;
&lt;br /&gt;
With offline rendering, the triangles of non-instanced objects are transformed and placed in the top level of the tree.&lt;br /&gt;
&lt;br /&gt;
=== Refitting ===&lt;br /&gt;
&lt;br /&gt;
If no new objects or triangles are added, rather than rebuilding the BVH entirely, we can refit it with the new coordinates. This means we keep the same tree structure, and only update the bounding boxes. As the coordinates deviate further from the original, the tree quality goes down.&lt;br /&gt;
&lt;br /&gt;
=== Warp Divergence on the GPU ===&lt;br /&gt;
&lt;br /&gt;
While based on the source code from &amp;quot;Understanding the Efficiency of Ray Traversal on GPUs&amp;quot;, we do not actually use the main optimization from that paper yet, which is to keep tracing rays to keep all warps occupied. Instead the path tracer is still a simple &amp;quot;megakernel&amp;quot;. As a result, splitting this up may lead to a performance improvement, at the cost of less readable code. This will also be useful for an MBVH implementation on the CPU.&lt;br /&gt;
&lt;br /&gt;
=== QBVH ===&lt;br /&gt;
&lt;br /&gt;
On the CPU, SIMD instructions do 4 float operations at once, so to take advantage of this we can use a BVH with 4 child nodes and intersect their bounding boxes in one go. The code for this is still disabled. A further improvement that could be made is also intersecting 4 triangles at once.&lt;br /&gt;
&lt;br /&gt;
=== Papers ===&lt;br /&gt;
&lt;br /&gt;
Implemented:&lt;br /&gt;
&lt;br /&gt;
* [http://www.sci.utah.edu/~wald/Publications/2007/BVH/download/togbvh.pdf Ray Tracing Deformable Scenes using Dynamic Bounding Volume Hierarchies]&lt;br /&gt;
* [http://www.nvidia.com/object/nvidia_research_pub_012.html Spatial Splits in Bounding Volume Hierarchies]&lt;br /&gt;
* [http://www.uni-ulm.de/in/mi/graphics/qbvh.html Shallow Bounding Volume Hierarchies for Fast SIMD Ray Tracing of Incoherent Rays]&lt;br /&gt;
&lt;br /&gt;
Would like to see implemented:&lt;br /&gt;
&lt;br /&gt;
* [http://www.nvidia.com/object/nvidia_research_pub_011.html Understanding the Efficiency of Ray Traversal on GPUs]&lt;br /&gt;
* [http://www.eng.uwaterloo.ca/~jtsakok/mbvhrs.pdf Faster Incoherent Rays: Multi-BVH Ray Stream Tracing]&lt;br /&gt;
* [http://research.nvidia.com/publication/hlbvh-hierarchical-lbvh-construction-real-time-ray-tracing HLBVH: Hierarchical LBVH Construction for Real-Time Ray Tracing]&lt;/div&gt;</summary>
		<author><name>wiki&gt;Brecht</name></author>
		
	</entry>
</feed>