diff --git a/chunky b/chunky deleted file mode 160000 index 7b227a8..0000000 --- a/chunky +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 7b227a80a8e97f27d129bcc3a438d16cd1de79f2 diff --git a/pom.xml b/pom.xml index 78fad5f..ed57895 100644 --- a/pom.xml +++ b/pom.xml @@ -37,13 +37,12 @@ 1.8 UTF-8 UTF-8 - 2.3.0-60-g7b227a80 - wertarbyte-repo - http://nexus.wertarbyte.com/content/groups/public/ + lemaik-chunky + https://repo.lemaik.de/ @@ -51,7 +50,7 @@ se.llbit chunky-core - ${chunky.version} + 2.4.1-20211022.232302-1 @@ -133,29 +132,6 @@ - - org.apache.maven.plugins - maven-install-plugin - 2.5.2 - - - install-chunky - clean - - ${basedir}/chunky/build/chunky-core-${chunky.version}.jar - default - se.llbit - chunky-core - ${chunky.version} - jar - true - - - install-file - - - - \ No newline at end of file diff --git a/src/main/java/de/lemaik/renderservice/renderer/application/RendererApplication.java b/src/main/java/de/lemaik/renderservice/renderer/application/RendererApplication.java index a48b905..66f1d98 100644 --- a/src/main/java/de/lemaik/renderservice/renderer/application/RendererApplication.java +++ b/src/main/java/de/lemaik/renderservice/renderer/application/RendererApplication.java @@ -41,8 +41,8 @@ public abstract class RendererApplication { - private static final int VERSION = 2; - private static final String TEXTURE_VERSION = "1.16.4"; + private static final int VERSION = 3; + private static final String TEXTURE_VERSION = "1.17.1"; private static final Logger LOGGER = LogManager.getLogger(RendererApplication.class); private final RenderServerApiClient api; diff --git a/src/main/java/de/lemaik/renderservice/renderer/chunky/EmbeddedChunkyWrapper.java b/src/main/java/de/lemaik/renderservice/renderer/chunky/EmbeddedChunkyWrapper.java index fd8c623..217d1ce 100644 --- a/src/main/java/de/lemaik/renderservice/renderer/chunky/EmbeddedChunkyWrapper.java +++ b/src/main/java/de/lemaik/renderservice/renderer/chunky/EmbeddedChunkyWrapper.java @@ -1,16 +1,17 @@ package de.lemaik.renderservice.renderer.chunky; +import java.io.DataOutputStream; import java.io.File; import java.io.IOException; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; import java.util.concurrent.CompletableFuture; -import se.llbit.chunky.renderer.RenderManager; -import se.llbit.chunky.renderer.RenderStatus; -import se.llbit.chunky.renderer.SnapshotControl; +import java.util.zip.GZIPOutputStream; + +import se.llbit.chunky.renderer.*; +import se.llbit.chunky.renderer.postprocessing.PostProcessingFilters; import se.llbit.chunky.renderer.scene.Scene; import se.llbit.chunky.renderer.scene.SynchronousSceneManager; import se.llbit.chunky.resources.TexturePackLoader; +import se.llbit.log.Log; import se.llbit.util.ProgressListener; import se.llbit.util.TaskTracker; @@ -46,7 +47,7 @@ public CompletableFuture render(File texturepack, File scene, int target context.setRenderThreadCount(threads); context.setSppPerPass(targetSpp); // render in a single pass for minimal overhead - RenderManager renderer = new RenderManager(context, true); + RenderManager renderer = new DefaultRenderManager(context, true); renderer.setCPULoad(cpuLoad); SynchronousSceneManager sceneManager = new SynchronousSceneManager(context, renderer); @@ -69,21 +70,20 @@ public boolean saveRenderDump(Scene scene, int nextSpp) { } }); - renderer.setOnRenderCompleted((time, sps) -> { - RenderStatus status = renderer.getRenderStatus(); - Scene renderedScene = sceneManager.getScene(); - renderedScene.renderTime = status.getRenderTime(); - renderedScene.spp = status.getSpp(); - renderedScene.saveDump(context, new TaskTracker(ProgressListener.NONE)); - result.complete(context.getDump()); - }); - try { + sceneManager.getScene().setPostprocess(PostProcessingFilters.NONE); sceneManager.getScene().setTargetSpp(targetSpp); sceneManager.getScene().startHeadlessRender(); renderer.start(); renderer.join(); renderer.shutdown(); + + RenderStatus status = renderer.getRenderStatus(); + Scene renderedScene = sceneManager.getScene(); + renderedScene.renderTime = status.getRenderTime(); + renderedScene.spp = status.getSpp(); + saveDumpClassic(context, renderedScene); + result.complete(context.getDump()); } catch (InterruptedException e) { result.completeExceptionally(new RenderException("Rendering failed", e)); } @@ -91,6 +91,28 @@ public boolean saveRenderDump(Scene scene, int nextSpp) { return result; } + private static void saveDumpClassic(RenderContext context, Scene scene) { + String fileName = scene.name + ".dump"; + double[] samples = scene.getSampleBuffer(); + try (DataOutputStream out = + new DataOutputStream(new GZIPOutputStream(context.getSceneFileOutputStream(fileName)))) { + out.writeInt(scene.width); + out.writeInt(scene.height); + out.writeInt(scene.spp); + out.writeLong(scene.renderTime); + for (int x = 0 ; x < scene.width; x++) { + for (int y = 0; y < scene.height; y++) { + int offset = (y * scene.width + x) * 3; + for (int i = 0; i < 3; i++) { + out.writeDouble(samples[offset + i]); + } + } + } + } catch (IOException e) { + Log.warn("IO Exception while saving render dump!", e); + } + } + @Override public void stop() { diff --git a/src/main/java/de/lemaik/renderservice/renderer/rendering/RenderWorker.java b/src/main/java/de/lemaik/renderservice/renderer/rendering/RenderWorker.java index ec1763b..e0804ad 100644 --- a/src/main/java/de/lemaik/renderservice/renderer/rendering/RenderWorker.java +++ b/src/main/java/de/lemaik/renderservice/renderer/rendering/RenderWorker.java @@ -92,7 +92,7 @@ public void run() { QueueingConsumer consumer = new QueueingConsumer(channel); channel.basicQos(1, false); // only fetch tasks at once - channel.basicConsume("rs_tasks", false, consumer); + channel.basicConsume("rs_tasks_241", false, consumer); while (!interrupted() && channel.isOpen()) { try {