 
 		aten::hitrecord rec;
 		bool isHit = intersectBVH(&ctxt, shadowRay, AT_MATH_EPSILON, AT_MATH_INF, &rec);
+
+		auto light = ctxt.lights[path.targetLightId];
+		if (light.object.idx >= 0) {
+			light.object.ptr = &ctxt.shapes[light.object.idx];
+		}
 		
 		shadowRay.isActive = AT_NAME::scene::hitLight(
 			isHit, 
-			&path.targetLight, 
+			&light,
 			path.lightPos,
 			shadowRay, 
 			AT_MATH_EPSILON, AT_MATH_INF, 

		path.lightPos = posLight;
		path.lightcontrib = aten::make_float3(0);

		if (path.targetLight.attrib.isSingular || path.targetLight.attrib.isInfinite) {
			if (pdfLight > real(0)) {
				// TODO
				// WIg^[̈ɂ.

	path.throughput = aten::make_float3(1);
	path.mtrl = nullptr;
	path.lightcontrib = aten::make_float3(0);
	path.targetLightId = -1;
	path.pdfb = 0.0f;
	path.isHit = false;
	path.isTerminate = false;
