Skip to content

Conversation

@pedson
Copy link
Contributor

@pedson pedson commented Nov 6, 2023

Adds basic OME-Zarr multichannel support under the current color channel implementation. Each channel is loaded as an individual child channel actor under the parent OmeZarrVolumeActor. There is a small change to the initial Ome-Zarr load/init call that slightly modifies NeuronTopTracerComponent and ViewLoader, but changes are otherwise limited to the Ome-Zarr implementation and the Volume MIP shader.

A two channel OME-Zarr file is available at /nrs/mouselight/pipeline-testing/tczyx.ome.zarr.

Video of 3 channel AIND data (too large to put on nrs) https://www.dropbox.com/scl/fi/jqayzn33npqqxd34tbrfk/OZMC.mp4?rlkey=au0lpjnr23cg06grngm3u1ta6&dl=0

@porterbot
Copy link
Collaborator

Looks like some kind of initialization exception when the color sliders are not open when the Zarr Sample is loaded. If you open or close the color sliders window after loading the 2-channel demo, it throws the following GLException. This might be related to the change in the order of the initColorModel? This seems to only happen with the 2-channel sample, not regular KTX samples.

javax.media.opengl.GLException: Thread[AWT-EventQueue-0,6,main] glGetError() returned the following error codes after a call to glUseProgram( 0xD): GL_INVALID_VALUE ( 1281 0x501),
at javax.media.opengl.DebugGL4bc.writeGLError(DebugGL4bc.java:29466)
at javax.media.opengl.DebugGL4bc.glUseProgram(DebugGL4bc.java:24136)
at org.janelia.gltools.BasicShaderProgram.load(BasicShaderProgram.java:66)
at org.janelia.gltools.material.BasicMaterial.load(BasicMaterial.java:114)
at org.janelia.horta.volume.VolumeMipMaterial.load(VolumeMipMaterial.java:279)
at org.janelia.gltools.material.BasicMaterial.display(BasicMaterial.java:34)
at org.janelia.gltools.MeshActor.display(MeshActor.java:397)
at org.janelia.horta.actors.OmeZarrVolumeMeshActor.display(OmeZarrVolumeMeshActor.java:76)
at org.janelia.horta.actors.OmeZarrVolumeChannelActor.display(OmeZarrVolumeChannelActor.java:232)
at org.janelia.horta.actors.OmeZarrVolumeActor.display(OmeZarrVolumeActor.java:140)
at org.janelia.gltools.RenderPass.renderScene(RenderPass.java:58)
at org.janelia.horta.render.VolumeRenderPass.renderScene(VolumeRenderPass.java:90)
at org.janelia.gltools.RenderPass.display(RenderPass.java:85)
at org.janelia.gltools.MultipassRenderer.display(MultipassRenderer.java:17)
at org.janelia.horta.render.NeuronMPRenderer.display(NeuronMPRenderer.java:171)
at org.janelia.scenewindow.SceneRenderer.renderScene(SceneRenderer.java:192)
at org.janelia.scenewindow.stereo.MonoscopicRenderer.renderScene(MonoscopicRenderer.java:18)
at org.janelia.scenewindow.SceneRenderer.display(SceneRenderer.java:146)
at jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:690)
at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:672)
at javax.media.opengl.awt.GLCanvas$10.run(GLCanvas.java:1383)
at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1277)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants