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 {