34 lines
1.2 KiB
Kotlin
34 lines
1.2 KiB
Kotlin
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
|
|
} |