Pro OpenGL ES for iOS

(singke) #1

268 CHAPTER 8: Putting It All Together^


float distanceBetweenBodies=sqrt(delX*delX+delY*delY);

if((distanceBetweenBodies>vanishDist) && (distanceBetweenBodies<grazeDist))
{
percentVisible=(distanceBetweenBodies-vanishDist)/(2.0*sun_sr);

if(percentVisible>1.3) //9
percentVisible=1.3;
else if(percentVisible<0.2)
percentVisible=1.3;
}
else if(distanceBetweenBodies>grazeDist)
{
percentVisible=1.0;
}
else
{
percentVisible=0.0;
}

scale=STANDARD_FOV/m_FieldOfView;

if(percentVisible>0.0)
[m_LensFlare execute:[[UIScreen mainScreen]applicationFrame] //10
source:CGPointMake(sun_sx,sun_sy) scale:scale alpha:percentVisible];
}
}
//11
-(void)executePlanet:(Planet *)planet sx:(float *)sx sy:(float *)sy sz:(float *)sz
screenRadius:(float *)screenRadius render:(BOOL)render
{
static GLfloat angle=0.0;
GLKVector3 planetPos;
float temp;
float distance;
CGRect frame = [[UIScreen mainScreen] bounds];

glPushMatrix();

planetPos=[planet getPosition];

glTranslatef(planetPos.x,planetPos.y,planetPos.z);

if(render)
[planet execute]; //12

distance=GLKVector3Distance(m_Eyeposition, planetPos);
temp=(0.5*frame.size.width)/tanf(GLKMathDegreesToRadians(m_FieldOfView)/2.0);
*screenRadius=temp*[planet getRadius]/distance;
Free download pdf