yt-project / yt_idv

Interactive volume rendering for yt
Other
9 stars 6 forks source link

Textured planes for slices, cutting planes and projections #14

Open chrishavlin opened 3 years ago

chrishavlin commented 3 years ago

This is a more straightforward implementation than #12 (which I will close in favor of this) that adds the ability to add 2d YTDataContainer objects (e.g., ds.slice, ds.cutting, ds.proj) to a 3D scene. This implementation generates a frb and uses the data as a 2D texture.

Given #13, this is probably most useful for plotting the results of a projection along with a volume rendering:

vol_render_proj

But there may be some cases where adding independent slices is advantageous. Another example (from examples/plane_textures_multiple.py) with projections on the bounding-box faces and a slice and cutting plane on the interior:

multislice

There still seems to be some face culling or z-ordering issue that I haven't figured out yet: when added to an existing volume rendering, planes are not visible from all perspectives (e.g., when running examples/amr_volume_rendering_with_planes.py and rotating, planes with disappear/reappear). Adding a GL.glDisable(GL.GL_CULL_FACE) fixes the issue (but I haven't committed that change, as there's probably a better way to fix it).

matthewturk commented 3 years ago

@chrishavlin Could you emblacken and emisortize this?

chrishavlin commented 3 years ago

just pushed -- had forgotten to run isort and was using a different black version than what the checks here are using. but those should be fixed now!

chrishavlin commented 3 years ago

oh and just a note for myself to come back to: I'm not 100% I have the orientation of the resulting planes correct. I need to test out some slices on less symmetrical datasets.

chrishavlin commented 1 year ago

reminder to myself when I come back to this next: I don't think the orientation handling going from a FRB to the world coords is currently correct... use slices of the coords to check.