[orx-dnk3] Add segmentContourRenderer

This commit is contained in:
Edwin Jakobs
2020-06-14 20:53:42 +02:00
parent 057f15dbff
commit 2f26049367
12 changed files with 214 additions and 25 deletions

View File

@@ -0,0 +1,34 @@
package org.openrndr.extra.dnk3.renderers
import org.openrndr.draw.BufferMultisample
import org.openrndr.draw.ColorFormat
import org.openrndr.draw.ColorType
import org.openrndr.extra.dnk3.*
import org.openrndr.extra.dnk3.post.SegmentContours
import org.openrndr.extra.dnk3.post.SegmentContoursMSAA8
fun segmentContourRenderer(multisample: BufferMultisample = BufferMultisample.Disabled): SceneRenderer {
val sr = SceneRenderer()
sr.outputPasses.clear()
sr.outputPasses.add(
RenderPass(
listOf(FragmentIDFacet()),
multisample = multisample
)
)
sr.postSteps.add(
FilterPostStep(1.0,
when (multisample) {
BufferMultisample.Disabled -> SegmentContours()
BufferMultisample.SampleCount(8) -> SegmentContoursMSAA8()
else -> error("unsupported multisampling mode $multisample")
},
listOf("fragmentID"),
"segments",
ColorFormat.RGB,
ColorType.UINT8
)
)
sr.drawFinalBuffer = true
return sr
}