/// <summary> /// render. /// </summary> /// <param name="context">the render context.</param> /// <param name="cameras">the all cameras.</param> protected override void Render(ScriptableRenderContext context, Camera[] cameras) { if (!SystemInfo.supportsRayTracing) { Debug.LogError("You system is not support ray tracing. Please check your graphic API is D3D12 and os is Windows 10."); return; } BeginFrameRendering(context, cameras); System.Array.Sort(cameras, (lhs, rhs) => (int)(lhs.depth - rhs.depth)); BuildAccelerationStructure(); SetupSHCoefficients(); Shader.SetGlobalVector(_MainLightDirShaderId, -SceneManager.Instance.mainLight.transform.forward); foreach (var camera in cameras) { // Only render game and scene view camera. if (camera.cameraType != CameraType.Game && camera.cameraType != CameraType.SceneView) { continue; } BeginCameraRendering(context, camera); _tutorial?.Render(context, camera); context.Submit(); EndCameraRendering(context, camera); } EndFrameRendering(context, cameras); }
protected override void Render(ScriptableRenderContext vContext, Camera[] vCameras) { if (!SystemInfo.supportsRayTracing) { Debug.LogError("Your system is not support ray tracing. Please check your graphic API is D3D12 and os is Windows 10."); return; } BeginFrameRendering(vContext, vCameras); System.Array.Sort(vCameras, (lhs, rhs) => (int)(lhs.depth - rhs.depth)); BuildAccelerationStructure(); foreach (var TempCamera in vCameras) { if (TempCamera.cameraType != CameraType.Game && TempCamera.cameraType != CameraType.SceneView) { continue; } BeginCameraRendering(vContext, TempCamera); _rayTracingTutorial?.Render(vContext, TempCamera); vContext.Submit(); EndCameraRendering(vContext, TempCamera); } EndFrameRendering(vContext, vCameras); }