﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	blockedby	blocking	notify_on_close	platform	project
44	Faster atom sphere rendering with OpenGL impostors	Tom Goddard	Tom Goddard	"We could get much higher performance and higher quality at the same time in atom sphere rendering by using graphics ""impostors"".  Basically just a square is rendered for each sphere and a special shader computes the z height to make a sphere and tosses out the pixels outside a circle and computes normal vectors.  Currently for large models (more than 500,000 atoms) we use poor quality 20 triangle icosahedron approximation to a sphere, for fewer atoms we use 80 or 320 triangle subdivisions for each sphere.  By comparison an impostor uses only 2 triangles per sphere and gets pixel level quality.  Using impostors would eliminate the need for level of detail changes when zooming (as done in Chimera 1) for spheres.  Cylinders can also be done with impostors but the code is more complex and the number of triangles used for non-impostor rendering is not nearly so large as with spheres.

A serious limitation to consider is that an impostor won't handle perspective projection correctly.  An impostor always shows a half sphere rendered on a square facing the camera.  But with perspective projection of a close sphere less than half a sphere is visible (the part in a view cone from camera to sphere edge), and the perspective sphere is wider (in view angle) than what is shown by an impostor (hemisphere equator).  These effects may be negligible in most cases, but certain cases like immersive rendering with Oculus Rift stereo goggles where close spheres are common may work poorly."	enhancement	new	minor		Graphics								all	chimera
