Opened 11 years ago

Closed 10 years ago

#32 closed defect (fixed)

Molecular Viewer Master Ticket

Reported by: Scooter Morris Owned by: Greg Couch
Priority: blocker Milestone: Initial Tools
Component: Graphics Version:
Keywords: Cc: chimera-programmers
Blocked By: Blocking:
Notify when closed: Platform: all
Project: chimera

Description


Change History (2)

comment:1 by Tom Goddard, 11 years ago

Chimera 1 renders molecules in C++. Since Chimera 2 uses more modern OpenGL, all of its rendering is done via arrays. Instead of making separate OpenGL function calls for every atom, all the atoms will be draw with one (or a few) call using arrays of positions, colors, radii. Because few OpenGL calls are needed Hydra does all of its OpenGL rendering in Python rather than C++. This requires all new rendering code. Sphere, stick, ball and stick and tubes have initial versions in Hydra. Ribbons are more complex and have not been done. A basic decision is whether Python rendering will give adequate performance. Sam Hertig and I have been working on tools to compare and assemble hundreds of PDB models. Even if each model takes relatively view OpenGL calls, drawing hundreds of molecules in Python each frame can be slow. In current Hydra with 400 models (BLAST 2v5z test case) , each about 5000 atoms shown as ribbons renders at only 3.5 frames per second on a modern iMac, barely usable. Reducing the ribbon triangles by a factor of 10 has no effect on frame rate, so it is not bottlenecked by having too many triangles to render. It appears to be the overhead of switching vertex array objects and rendering 400 times per frame. The Hydra Python rendering has not been optimized to reduce overhead, so it remains to be seen how many models can be handled at reasonable frame rate using Python only.

comment:2 by pett, 10 years ago

Component: Molecular ViewerGraphics
Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.