[orx-shade-styles] Add visualizeNormals shade style.
This commit is contained in:
@@ -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"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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()
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user