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/23d0e83400c92b26416052a26d89444bdd1de9ed/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
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