aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/main/kotlin/mrdoor/MrdoorProgram.kt36
-rw-r--r--src/main/kotlin/phenax/extensions/CameraManager.kt7
2 files changed, 43 insertions, 0 deletions
diff --git a/src/main/kotlin/mrdoor/MrdoorProgram.kt b/src/main/kotlin/mrdoor/MrdoorProgram.kt
new file mode 100644
index 0000000..deabfe3
--- /dev/null
+++ b/src/main/kotlin/mrdoor/MrdoorProgram.kt
@@ -0,0 +1,36 @@
+package mrdoor
+
+import org.openrndr.application
+import org.openrndr.color.*
+import org.openrndr.draw.*
+import org.openrndr.math.*
+import phenax.extensions.CameraManager
+import phenax.utils.*
+
+fun main() = application {
+ recordDuration(5.seconds())
+
+ configure {
+ width = 640
+ height = 480
+ windowResizable = false
+ }
+
+ oliveProgram {
+ val cs by liveComputeShader("mrdoor")
+
+ val cameraManager =
+ CameraManager(Vector3(1.0, 1.0, -1.0), Vector3.ZERO, Vector3(20.0, 30.0, -30.0))
+ extend(cameraManager)
+
+ val outputBuffer = colorBuffer(width, height, type = ColorType.UINT8)
+
+ extend {
+ cs.uniform("seconds", seconds)
+ cameraManager.setUniforms(cs)
+ cs.image("output_image", 0, outputBuffer.imageBinding(0, ImageAccess.WRITE))
+ cs.execute(outputBuffer.width, outputBuffer.height, 1)
+ drawer.image(outputBuffer)
+ }
+ }
+}
diff --git a/src/main/kotlin/phenax/extensions/CameraManager.kt b/src/main/kotlin/phenax/extensions/CameraManager.kt
index 0303a54..d14205f 100644
--- a/src/main/kotlin/phenax/extensions/CameraManager.kt
+++ b/src/main/kotlin/phenax/extensions/CameraManager.kt
@@ -26,6 +26,13 @@ class CameraManager(public var cameraPosition: Vector3, public var cameraRotatio
var lastPos: Vector3? = null
constructor() : this(Vector3(0.0, 1.0, 0.0), Vector3.ZERO) {}
+ constructor(
+ cameraPosition: Vector3,
+ cameraRotation: Vector3,
+ lightPos: Vector3
+ ) : this(cameraPosition, cameraRotation) {
+ lightPosition = lightPos
+ }
override fun setup(program: Program) {
if (recordingEnabled) return