 
 		float4 childAABBMin, childAABBMax;
 
-		// qm[hĂł낤XbhubNŏĂ邩ǂ.
+		// 子ノードを処理しているであろうスレッドが同一ブロックで処理しているかどうか.
 		if (firstThreadIdxInBlock <= childNodeThreadIdx
 			&& childNodeThreadIdx <= lastThreadIdxInBlock)
 		{
-			// ubNŏĂ̂ŁAshared memory ɃLbVĂf[^擾.
-
-			// ubNł̃XbhIDɕϊ.
+			// 同一ブロックで処理されているので、shared memory にキャッシュされているデータを取得する.
+
+			// ブロック内でのスレッドIDに変換.
 			int threadIdxInBlock = childNodeThreadIdx - firstThreadIdxInBlock;
 
 			childAABBMin = sharedBboxMin[threadIdxInBlock];
 			childAABBMax = sharedBboxMax[threadIdxInBlock];
 		}
 		else {
-			// ubNŏĂȂ̂ŁAzɊi[Ăf[^擾.
+			// 同一ブロックで処理されていないので、配列に格納されているデータを取得する.
 
 			int childIdx = targetSrc->left;
 

#include "kernel/LBVHBuilder.h"

#include <cuda_runtime.h>
#include <device_launch_parameters.h>

	auto lcp1 = computeLongestCommonPrefix(mortonCodes, numPrims, idx, idx + 1);
	auto lcp2 = computeLongestCommonPrefix(mortonCodes, numPrims, idx, idx - 1);

	// どちら向きに探索していくかを決める.
	// CommonPrefix が長くなる方向に探索する.
	int d = (lcp1 - lcp2) < 0 ? -1 : 1;

	// 探索範囲の上限を決める. 倍々に広げていき、下限基準より LongestCommonPrefix が長くなる位置を探索範囲の上限とする.

	// Find minimum number of bits for the break on the other side.
	// Common Prefix が長くなる方向とは１つ反対の LogestCommonPrefix を計算する.
	// 長くなる方向とは１つ反対 = LogestCommonPrefix の下限基準.
	int minLcp = computeLongestCommonPrefix(mortonCodes, numPrims, idx, idx - d);

	// Search conservative far end
