public override bool FillRayBuffer(RayBuffer rayBuffer) { var leftSpace = rayBuffer.LeftSpace(); if (leftSpace < MaxRaysPerPath) return false; RayIndex = rayBuffer.AddRay(ref PathRay); return true; }
public virtual bool FillRayBuffer(RayBuffer rayBuffer) { var leftSpace = rayBuffer.LeftSpace(); if (leftSpace < 1) return false; RayIndex = rayBuffer.AddRay(ref PathRay); return true; }
public override bool FillRayBuffer(RayBuffer rayBuffer) { var leftSpace = rayBuffer.LeftSpace(); if((1 > leftSpace)) { return false; } RayIndex = rayBuffer.AddRay(PathRay); return true; }
public override bool FillRayBuffer(RayBuffer rayBuffer) { var leftSpace = rayBuffer.LeftSpace(); if (((PathState == PathTracerPathState.EyeVertex) && (1 > leftSpace)) || ((PathState == PathTracerPathState.ShadowRaysOnly) && (tracedShadowRayCount > leftSpace)) || ((PathState == PathTracerPathState.NextVertex) && (tracedShadowRayCount + 1 > leftSpace))) return false; if (PathState != PathTracerPathState.ShadowRaysOnly) RayIndex = rayBuffer.AddRay(PathRay); return true; }
public override bool FillRayBuffer(RayBuffer rayBuffer) { var leftSpace = rayBuffer.LeftSpace(); if (((this.PathState == GenericPathSamplerState.Initialize) && (1 > leftSpace)) || ((PathState == GenericPathSamplerState.Connection | PathState == GenericPathSamplerState.Evaluation) && (tracedShadowRayCount > leftSpace)) || ((this.PathState == GenericPathSamplerState.Sampling) && (1 > leftSpace))) return false; if (PathState == GenericPathSamplerState.Evaluation || PathState == GenericPathSamplerState.Connection) { for (int i = 0; i < tracedShadowRayCount; ++i) connections[i].currentShadowRayIndex = rayBuffer.AddRay(connections[i].Ray); } RayIndex = rayBuffer.AddRay(PathRay); return true; }
public override bool FillRayBuffer(RayBuffer rayBuffer) { var leftSpace = rayBuffer.LeftSpace(); if (((PathState == PathTracerPathState.EyeVertex) && (1 > leftSpace)) || ((PathState == PathTracerPathState.ShadowRaysOnly) && (tracedShadowRayCount > leftSpace)) || ((PathState == PathTracerPathState.NextVertex) && (tracedShadowRayCount + 1 > leftSpace))) return false; if (PathState != PathTracerPathState.ShadowRaysOnly) RayIndex = rayBuffer.AddRay(ref PathRay); if (PathState == PathTracerPathState.NextVertex || PathState == PathTracerPathState.ShadowRaysOnly) { for (int i = 0; i < tracedShadowRayCount; ++i) secRays[i].currentShadowRayIndex = rayBuffer.AddRay(ref secRays[i].shadowRay); } return true; }
public override bool FillRayBuffer(RayBuffer rayBuffer) { var leftSpace = rayBuffer.LeftSpace(); if (((State == RayTracerPathState.Eye) && (1 > leftSpace)) || ((State == RayTracerPathState.OnlyShadow) && (tracedShadowRayCount > leftSpace)) || ((State == RayTracerPathState.Reflection || State == RayTracerPathState.Refraction) && (tracedShadowRayCount + 1 > leftSpace))) return false; if (State != RayTracerPathState.OnlyShadow) RayIndex = rayBuffer.AddRay(ref PathRay); if (State == RayTracerPathState.Reflection || State == RayTracerPathState.Refraction || State == RayTracerPathState.OnlyShadow) { for (int i = 0; i < tracedShadowRayCount; ++i) secRays[i].ShadowRayIndex = rayBuffer.AddRay(ref secRays[i].ShadowRay); } return true; }
public override bool FillRayBuffer(RayBuffer rayBuffer) { var leftSpace = rayBuffer.LeftSpace(); if (((PathState == BDPTSamplerState.InitPath) && (2 > leftSpace)) || ((PathState == BDPTSamplerState.ConnectOnly) && (tracedConnectRayCount > leftSpace)) || ((PathState == BDPTSamplerState.PropagatePath) && (tracedConnectRayCount + 2 > leftSpace))) return false; if (PathState != BDPTSamplerState.ConnectOnly) { RayIndex = rayBuffer.AddRay(ref PathRay); LightRayIndex = rayBuffer.AddRay(ref LightRay); } if (PathState == BDPTSamplerState.PropagatePath || PathState == BDPTSamplerState.ConnectOnly) { for (int i = 0; i < tracedConnectRayCount; ++i) connectRays[i].ConnectRayIndex = rayBuffer.AddRay(ref connectRays[i].ConnectRay); } return true; }