private void Update() { var handle = new RenderJob { pixels = pixels, width = texture.width, height = texture.height, maxSteps = maxSteps, maxDistance = maxDistance, surfaceDistance = surfaceDistance, time = Time.time, surfaceColor = float3(surfaceColor.r, surfaceColor.g, surfaceColor.b), fogColor = float3(fogColor.r, fogColor.g, fogColor.g), fogExponent = fogExponent, worldToLight = lightTransform.worldToLocalMatrix, lightToWorld = lightTransform.localToWorldMatrix, cameraToWorld = cameraTransform.localToWorldMatrix, worldToCamera = cameraTransform.worldToLocalMatrix, worldToShape = shapeTransform.worldToLocalMatrix, worldToTorus = torusTransform.worldToLocalMatrix, worldToPlane = planeTransform.worldToLocalMatrix }.Schedule(pixels.Length, resolution / 12); handle.Complete(); texture.Apply(false); }
public void CreateJob(string worldname) { var priority = _prioritizer.Prioritize(worldname); var job = new RenderJob(worldname); job.Priority = priority; _queue.Enqueue(job); }
public void Render(RenderJob job) { var input = locateWorld(job.Worldname); var output = locateWebpath(job.Worldname); var result = _renderer.Render(job.Worldname, input, output); _writer.Upsert(result); }
protected override JobHandle OnUpdate(JobHandle inputDeps) { RenderJob renderJob = new RenderJob { TopBound = 1 }; //JobHandle renderHandle = renderJob.Schedule(64, 8, inputDeps); JobHandle renderHandle = new JobHandle(); return(renderHandle); }
protected override JobHandle OnUpdate(JobHandle inputDeps) { var handle = inputDeps; var render_job = new RenderJob { screen_position_list_ = group_.screen_position_list_, sprite_data_list_ = SpriteRenderer.GetSpriteDataBucket(), }; handle = render_job.Schedule(group_.cursor_list_.Length, 8, handle); SpriteRendererSystem.DependOn(handle); return(handle); }
private void CopyJobParams(RenderJob job) { job.Antialias = Antialias; job.ReconFilter = ReconFilter; job.Width = Width; job.Height = Height; job.Aspect = Aspect; job.RenderEffect = RenderEffect; job.RenderMode = RenderMode; job.RecursionLimit = RecursionLimit; job.RenderLine = RenderLine; job.AdaptiveSampling = AdaptiveSampling; job.AdaptiveThreshold = AdaptiveThreshold; job.FilterType = FilterType; job.EnhanceAA = EnhanceAA; job.AntialiasLevel = AntialiasLevel; job.SliceNumber = 0; job.SlicesDown = SlicesDown; job.SlicesAcross = SlicesAcross; job.Overlap = Overlap; job.Camera = Camera; job.SamplingPattern = SamplingPattern; job.CameraAntialias = CameraAntialias; job.MinSamples = MinSamples; job.MaxSamples = MaxSamples; job.Radiosity = Radiosity; job.RadiosityType = RadiosityType; job.InterpolatedGI = InterpolatedGI; job.InterpolatedGI = InterpolatedGI; job.CachedGI = CachedGI; job.VolumetricGI = VolumetricGI; job.UseAmbientGI = UseAmbientGI; job.DirectionalGI = DirectionalGI; job.IntensityGI = IntensityGI; job.ToleranceGI = ToleranceGI; job.RayGI = RayGI; job.MinEvalGI = MinEvalGI; job.MinPixelGI = MinPixelGI; job.IndirectGI = IndirectGI; job.SaveAlpha = SaveAlpha; job.OverrideSettings = OverrideSettings; job.OverwriteFrames = OverwriteFrames; job.FilenameFormat = FileNameFormats[FileNameFormat]; foreach (string s in StrippedMaster) { job.StrippedMaster.Add(s); } }
/// <summary> /// Adds to the render queue. Renders are done from the largest depth to the smallest. /// </summary> /// <param name="drawable">The drawable.</param> /// <param name="depth">The depth.</param> public void AddToRenderQueue(Drawable drawable, int depth) { if (depth < this.smallestDepth) { this.smallestDepth = depth; } RenderJob job = new RenderJob() { Drawable = drawable, Depth = depth }; int jobIndex = this.renderHeap.Count; int parentIndex = (jobIndex - 1) / 2; this.renderHeap.Add(job); RenderJob parent = this.renderHeap[parentIndex]; while (parent.Depth > job.Depth) { this.renderHeap[parentIndex] = job; this.renderHeap[jobIndex] = parent; jobIndex = parentIndex; parentIndex = (jobIndex - 1) / 2; parent = this.renderHeap[parentIndex]; } }
public void GenerateRenderJobs() { if (Log == "") { Log += "*******************************************************\n"; Log += "Project: " + SceneFile + "\n"; Log += "Id: " + ProjectId + "\n"; Log += "Sent by: " + Owner + "\n"; Log += "Sent on: " + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() + "\n"; Log += "*******************************************************\n"; } else { Log += "*******************************************************\n"; Log += "Project modified on: " + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() + "\n"; Log += "*******************************************************\n"; } if (!ContentDir.EndsWith("\\")) { ContentDir += "\\"; } _jobs.Clear(); if (SlicesAcross > 1 || SlicesDown > 1) { for (int i = 0; i < SlicesAcross * SlicesDown; i++) { RenderJob job = new RenderJob(SceneFile.Substring(ContentDir.Length), StartFrame, StartFrame, 1, 0, ServerServices.Configs[Config].ImageFormats[ImageFormat], SaveAlpha, ServerServices.Configs[Config].ImageFormats[AlphaImageFormat]); CopyJobParams(job); job.SliceNumber = i; _jobs.Add(job); } } else { for (int i = StartFrame; i <= EndFrame; i += FrameSteps) { // If the overwrite flag isn't set // Check if the frame (and alpha) to render already exists in the output folder string imgfmt = ServerServices.Configs[Config].ImageFormats[ImageFormat]; string ext = imgfmt.Substring(imgfmt.IndexOf('(') + 1, (imgfmt.IndexOf(')') - imgfmt.IndexOf('(')) - 1); string fname = string.Format(FileNameFormats[FileNameFormat], OutputDir, Prefix, i, ext); bool filesExist; if (SaveAlpha) { string aimgfmt = ServerServices.Configs[Config].ImageFormats[AlphaImageFormat]; string aext = aimgfmt.Substring(aimgfmt.IndexOf('(') + 1, (aimgfmt.IndexOf(')') - aimgfmt.IndexOf('(')) - 1); string aname = string.Format(FileNameFormats[FileNameFormat], OutputDir, AlphaPrefix, i, aext); filesExist = File.Exists(fname) && File.Exists(aname); } else { filesExist = File.Exists(fname); } // If overwrite flag is set or if one or both the needed files are not in the output folder if (OverwriteFrames || !filesExist) { RenderJob job = new RenderJob(SceneFile.Substring(ContentDir.Length), i, i, 1, 0, ServerServices.Configs[Config].ImageFormats[ImageFormat], SaveAlpha, ServerServices.Configs[Config].ImageFormats[AlphaImageFormat]); CopyJobParams(job); job.SliceNumber = 0; _jobs.Add(job); } } } StartJobs = _jobs.Count; }