Volume render with two variables?

Hi everyone,
Is there a simple way to do a volume rendering of two variables simultaneously? For example, if I wanted to overplot both density and temperature into a single volume rendering. My naive method would be to define a new variable which is a weighted sum of the two variables, and sculpt the transfer function to have different colors over the range. I'm just asking if there's a better way built into YT.
I've done a lot of searching through the documentation, but I can't find a clear answer as to whether this is a built-in feature. I've seen examples from a few years ago where both variables are rendered separately, and the PNG files are combined. This ends up with both variables being partially-transparent to the other variable; in my example, I'd prefer *not *to see through a particularly high-temperature region. I've also seen documentation on a "multi-variate transfer function", but that documentation is pretty incomplete.
Thanks in advance!
Best,
Scott
Scott Feister, Ph.D. Postdoctoral Researcher, Flash Center for Computational Science University of Chicago, Department of Astronomy and Astrophysics

Hi Scott,
Making it easier to do this has been a longstanding issue. If you'd be interested in doing code development along this front that would be very welcome.
Right now the best place to start would be the MultiVariateTransferFunction:
https://bitbucket.org/yt_analysis/yt/src/23d0e83400c92b26416052a26d89444bdd1...
Right now this is only directly exposed to users for "isocontour" volume renderings (see the ColoTransferFunction subclass), but in principle it could be generalized to do what you're looking for (e.g. the brightness coming from density but the color coming from temperature). I think John Wise even used it for exactly this a long time ago, but to my knowledge no one has ever used it for this sort of thing beyond experimental use cases. Having a user-visible API for setting this sort of thing up would be really nice.
Sorry that I don't have an immediately useful response, but I hope this proves helpful.
-Nathan
On Fri, Jan 27, 2017 at 2:23 PM Scott Feister sfeister@gmail.com wrote:
Hi everyone,
Is there a simple way to do a volume rendering of two variables simultaneously? For example, if I wanted to overplot both density and temperature into a single volume rendering. My naive method would be to define a new variable which is a weighted sum of the two variables, and sculpt the transfer function to have different colors over the range. I'm just asking if there's a better way built into YT.
I've done a lot of searching through the documentation, but I can't find a clear answer as to whether this is a built-in feature. I've seen examples from a few years ago where both variables are rendered separately, and the PNG files are combined. This ends up with both variables being partially-transparent to the other variable; in my example, I'd prefer *not *to see through a particularly high-temperature region. I've also seen documentation on a "multi-variate transfer function", but that documentation is pretty incomplete.
Thanks in advance!
Best,
Scott
Scott Feister, Ph.D. Postdoctoral Researcher, Flash Center for Computational Science University of Chicago, Department of Astronomy and Astrophysics _______________________________________________ yt-users mailing list yt-users@lists.spacepope.org http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org

Thanks, Nathan.
I'll keep the yt-developers list posted if I I solve the issue and think it can integrate back into yt.
-Scott
Scott Feister, Ph.D. Postdoctoral Researcher, Flash Center for Computational Science University of Chicago, Department of Astronomy and Astrophysics
On Fri, Jan 27, 2017 at 2:39 PM, Nathan Goldbaum nathan12343@gmail.com wrote:
Hi Scott,
Making it easier to do this has been a longstanding issue. If you'd be interested in doing code development along this front that would be very welcome.
Right now the best place to start would be the MultiVariateTransferFunction:
https://bitbucket.org/yt_analysis/yt/src/23d0e83400c92b26416052a26d8944 4bdd1de9ed/yt/visualization/volume_rendering/transfer_ functions.py?at=yt&fileviewer=file-view-default#transfer_functions.py-240
Right now this is only directly exposed to users for "isocontour" volume renderings (see the ColoTransferFunction subclass), but in principle it could be generalized to do what you're looking for (e.g. the brightness coming from density but the color coming from temperature). I think John Wise even used it for exactly this a long time ago, but to my knowledge no one has ever used it for this sort of thing beyond experimental use cases. Having a user-visible API for setting this sort of thing up would be really nice.
Sorry that I don't have an immediately useful response, but I hope this proves helpful.
-Nathan
On Fri, Jan 27, 2017 at 2:23 PM Scott Feister sfeister@gmail.com wrote:
Hi everyone,
Is there a simple way to do a volume rendering of two variables simultaneously? For example, if I wanted to overplot both density and temperature into a single volume rendering. My naive method would be to define a new variable which is a weighted sum of the two variables, and sculpt the transfer function to have different colors over the range. I'm just asking if there's a better way built into YT.
I've done a lot of searching through the documentation, but I can't find a clear answer as to whether this is a built-in feature. I've seen examples from a few years ago where both variables are rendered separately, and the PNG files are combined. This ends up with both variables being partially-transparent to the other variable; in my example, I'd prefer *not *to see through a particularly high-temperature region. I've also seen documentation on a "multi-variate transfer function", but that documentation is pretty incomplete.
Thanks in advance!
Best,
Scott
Scott Feister, Ph.D. Postdoctoral Researcher, Flash Center for Computational Science University of Chicago, Department of Astronomy and Astrophysics _______________________________________________ yt-users mailing list yt-users@lists.spacepope.org http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
yt-users mailing list yt-users@lists.spacepope.org http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
participants (2)
-
Nathan Goldbaum
-
Scott Feister