[orx-shade-styles] Add visualizeNormals shade style.

This commit is contained in:
Edwin Jakobs
2025-03-05 19:11:35 +01:00
parent 9d5a56cad5
commit b8bcd21a19
3 changed files with 46 additions and 0 deletions

View File

@@ -26,6 +26,7 @@ kotlin {
implementation(project(":orx-shapes")) implementation(project(":orx-shapes"))
implementation(project(":orx-image-fit")) implementation(project(":orx-image-fit"))
implementation(project(":orx-camera")) implementation(project(":orx-camera"))
implementation(project(":orx-obj-loader"))
} }
} }
} }

View File

@@ -0,0 +1,11 @@
package org.openrndr.extra.shadestyles.spatial
import org.openrndr.draw.shadeStyle
val visualizeNormals by lazy {
shadeStyle {
fragmentTransform = """
x_fill = vec4(normalize(v_viewNormal)*0.5+0.5, 1.0) ;
""".trimIndent()
}
}

View File

@@ -0,0 +1,34 @@
package spatial
import org.openrndr.WindowMultisample
import org.openrndr.application
import org.openrndr.draw.DrawPrimitive
import org.openrndr.extra.camera.Orbital
import org.openrndr.extra.objloader.loadOBJasVertexBuffer
import org.openrndr.extra.shadestyles.spatial.visualizeNormals
import org.openrndr.math.Vector3
fun main() {
application {
configure {
width = 720
height = 720
multisample = WindowMultisample.SampleCount(8)
}
program {
val obj = loadOBJasVertexBuffer("demo-data/obj-models/suzanne/Suzanne.obj")
extend(Orbital()) {
eye = Vector3(0.0, 0.0, 2.0)
}
extend {
drawer.shadeStyle = visualizeNormals
drawer.vertexBuffer(obj, DrawPrimitive.TRIANGLES)
}
}
}
}