Skip to content

Commit

Permalink
stubbing out docs
Browse files Browse the repository at this point in the history
  • Loading branch information
chrishavlin committed Dec 13, 2024
1 parent f677841 commit ee03edd
Show file tree
Hide file tree
Showing 3 changed files with 57 additions and 0 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ loaded in yt. It is written to provide both scripting and interactive access.
* Block and grid outlines
* Support for sub-selections of data via the yt data selection interface
* Integration with the [ipywidgets](https://ipywidgets.readthedocs.org/) ``Image`` widget.
* Direct volume rendering of block-AMR data in spherical coordinates.

## Examples

Expand Down
55 changes: 55 additions & 0 deletions docs/coordinate_systems.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
.. highlight:: shell

================================
Non-Cartesian Coordinate Systems
================================

Initial support for volume rendering of data defined in 3D non-cartesian coordinate systems
was added in yt_idv 0.5.0 for block-AMR data in spherical coordinates. While not all
rendering methods and annotations are supported for spherical coordinates, yt_idv can
directly calculate maximum intensity projections, integrative projections and projection with custom
transfer functions without any pre-interpolation or re-gridding (with some caveats).

PUT A NICE SCREEN SHOT HERE.

---------------------------------------------------
Volume Rendering of Data in a Spherical Coordinates
---------------------------------------------------

Overview

#. pre-calculation of cartesian bounding boxes of the amr blocks, accelerated with cython.
#. load block data as textures in normalized native coordinates (just like cartesian)
#. pass down cartesian boudning boxes and spherical bounding boxes of blocks as vertex attributes
#. standard slab test with the cartesian bounding boxes for ray-element intersections
#. step along ray, calculate spherical coordinates (in the shader!), evalulate texture (discarding points outside the actual speherical volume element).


Mention: Pre-processor switches in order to re-use carteisan shaders efficiently.

The main limitation in this approach is in stepping along the ray: intersection with the
cartesian bounding box of a spherical element does not gaurentee intersection with the enclosed
spherical elemnt. So a fairly large number of sample points along the ray must be used, increasing
the computational cost to achieve the same fidelity as rendering data that is natively in
cartesian coordinates.

----------------------------
Notes on further development
----------------------------

Further contributions are welcome for adding support for the remaining 3d non-cartesian coordinate systems
that yt supports that are not yet supported here (3d cylindrical, 3d geographic) as well as for adding
support for non-cartesian coordinate systems in additional yt_idv components.

****************************************
Supporting additional coordinate systems
****************************************

Describe coordinate_utilities.pyx (and .pxd), how to add a new coordinate system.

***************************************
Supporting additional rendering methods
***************************************

Adding additional coordiante system conversions to shaders (with pre-processor
directives).
1 change: 1 addition & 0 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ Welcome to yt_idv's documentation!
installation
usage
scene
coordinate_systems
examples
modules
contributing
Expand Down

0 comments on commit ee03edd

Please sign in to comment.