Esempio n. 1
0
void APFSDS::drawtra(WarDraw *wd){
	/* cull object */
	if(wd->vw->gc->cullFrustum(pos, getHitRadius()))
		return;
	double pixels = getHitRadius() * fabs(wd->vw->gc->scale(pos));
	if(pixels < .1)
		return;

	/* bullet glow */
	{
		Vec3d dv = (pos - wd->vw->pos).norm();
		Vec3d forward = velo.norm();
		GLubyte a[4] = {255,255,127, (GLubyte)(128. * (forward.sp(dv) + 1.) / 2.)};
		if(2 < a[3]){
			glPushAttrib(GL_LIGHTING_BIT | GL_DEPTH_BUFFER_BIT);
			glDisable(GL_LIGHTING);
			glDepthMask(0);
			gldSpriteGlow(pos, 10., a, wd->vw->irot);
			glPopAttrib();
		}
	}
}