On Thu, Jul 14, 2011 at 1:24 PM, Geoffrey Hutchison <
geoff.hutchison@gmail.com> wrote:
A while ago I asked about the prospect for volume rendering (and
better-scalable rendering in Avogadro in general). I was told there was a
VTK integration in the works, but I haven’t heard about it since then.
Also, VTK has pretty awful support for volume rendering – it really
wasn’t designed for that.
Well, I think Marcus will have some thoughts on that. VTK now has
GPU-rendered volume rendering. He’s also been thinking for a while about
better scaling rendering, which I think would be delivered in an Avogadro
2.0 effort once we get 1.1/1.2 out the door this summer and fall.
Do you mean the old CPU based volume rendering code? Since VTK 5.6 (with
improvements in the upcoming 5.8) there is a fast volume rendering component
(originally developed for VTKEdge). I have a VTK plugin that uses the volume
rendering in VTK (up on Github), but it is fairly experimental proof of
concept stuff at this stage. We also have a Google Summer of Code student
(David Lonie) working on adding support for rendering chemical structure in
VTK.
I think there is some very interesting new work going into VTK, and I have
put quite a bit of work into that myself. I am also interested in the Manta
work for real-time raytracing. That said, I would be open to looking at
other approaches. I am hoping that I will be able to devote significant time
to Avogadro 2.0 development in the near future, and many aspects would
address scaling (there are issues in both our data model and our rendering
there).
So far I’ve been using my own custom tool, an interactive direct volume
renderer that supports large-scale ball and stick vis. Some examples are
here:
http://www.mcs.anl.gov/~knoll/supersoot/supersoot_bas9.png
http://www.mcs.anl.gov/~knoll/supersoot/supersoot_bas7.png
Well, I’d personally love to have non-VTK volumetric rendering.
Why specifically non-VTK volume rendering Geoff? If it is the Mac issue I
believe that is close to being resolved. Is this rendering code available? I
had a look on your site and couldn’t find anything. I am certainly
interested in what you have.
My motivation: my users (and myself) love the Avogadro interface and
would like to use it if possible.
Great to hear!
Seconded - I would like to ensure it remains useful and having input from
you and others helps a lot there.
What would be involved in modifying Avogadro to support an interactive
GPU raycasting rendering backend? I understand this may not replace
rasterization outright (for backwards compatibility and speed reasons), but
for a lot of visualization this would be a huge improvement.
Well, there is already a GLSL extension when available, and much can be
done with this – personally, I’ve been concentrating on building/editing
tools so a
Beyond that, you’d probably need to start on a new Painter class. We’ve
tried to isolate real rendering calls into this class, so the Pov-Ray or
other export methods use custom Painters.
That would be a logical way to go - add a new Painter class. I would love to
discuss this further, and am interested in what you have available.
Thanks,
Marcus