 		if (abs(centerDepth - prevDepth) <= 0.1f
 			&& aov.x == prevAov.x)
 		{
-			hitbools[idx] = 0;
-		}
-		else {
-			hitbools[idx] = 1;
-		}
-	}
-	else {
-		hitbools[idx] = 1;
-	}
+			path.isKill = true;
+			path.isTerminate = true;
+			return;
+		}
+	}
+
+	path.sampler.init((iy * height * 4 + ix * 4) * maxSamples + sample + 1 + seed);
+
+	float s = (ix + path.sampler.nextSample()) / (float)(camera->width);
+	float t = (iy + path.sampler.nextSample()) / (float)(camera->height);
+
+	AT_NAME::CameraSampleResult camsample;
+	AT_NAME::PinholeCamera::sample(&camsample, camera, s, t);
+
+	rays[idx] = camsample.r;
+
+	path.throughput = aten::vec3(1);
+	path.pdfb = 0.0f;
+	path.isTerminate = false;
+	path.isSingular = false;
+
+	path.samples += 1;
 }
 
 __global__ void genPathTemporalReprojection(

					(width + block.x - 1) / block.x,
					(height + block.y - 1) / block.y);

				makePathMask << <grid, block >> > (
					m_aovs[cur].ptr(),
					m_aovs[prev].ptr(),

				texVtxPos);
		}
		else {
#if 0
			if (sample == 0) {
				PathTracingGeometryRendering::renderAOVs(
					width, height,
					sample, maxSamples,
					seed,
					texVtxPos);
			}
#else
			if (sample == 0) {
				PathTracingGeometryRendering::onGenPath(
					width, height,
					sample, maxSamples,
					seed,
					texVtxPos);
			}
			else
#endif

			{
				// 2t[ڈȍ~́Ae|vWFNV̌Ԃ݂̂ɔ΂.

				int cur = m_curAOV;
				int prev = 1 - cur;
