• Create Account

# DefCom

Member Since 30 May 2001
Offline Last Active Jan 02 2014 01:48 AM

### In Topic: C++, Graphics, Game Programming, Where do I start?

24 December 2013 - 03:26 PM

Hi,

Possibly/Probably an outdated method, but i started by just creating a win32 project and just used the GDI. Not a great method for creating games, but I learned a lot about programming before i moved onto DirectX.

Worth pointing out this was around 14 years ago, but i did use the GDI methods to teach some basic 3D programming just a few years ago.

### In Topic: so many thing to learn! where do i start?!

09 April 2012 - 01:10 AM

That's a bit scary, thanks i'll go and check that out

### In Topic: so many thing to learn! where do i start?!

08 April 2012 - 02:13 AM

Hi,
If it helps i have started uploading game programming tutorials (c# and XNA) (written and video) aimed at beginners. They were written for my extra curricular ICT club.
www.defcom1.net
and

### In Topic: Camera following airplane

14 November 2010 - 08:19 AM

yeah, this isnt really my strong point, but i have spent the past 3 weeks over this aspect of my game.

I have yaw, pitch and roll, which are converted to the plane rotation quaternion.
I then have a camera quaternion which is generated by the above function.

The return is the new camera quat'

It took me such a long time to do and get working i plan to try and write it up for others to use.

I am currently trying to get a propellor to spin on it's axis and rotate around the plane... it's proving tricky.

### In Topic: Camera following airplane

14 November 2010 - 07:45 AM

Hi,
I have just done this today.
I have used quaternions to perform the rotation and the Lerp (linear interpolation) to move the camera.

My code is a bit messy at the mo'

it takes the quat of the camera and plane along with a float that delays it a bit.

I used reimmers xna flight sim tutorial and googles quaternion lerp c++

This is my mixture of the above
`Quaternion NLerp(Quaternion tQ1, Quaternion tQ2, float w2){	float w1 = 1.0f - w2;	Quaternion tQ3;	tQ1.w*=w1;	tQ1.x*=w1;	tQ1.y*=w1;	tQ1.z*=w1;	tQ2.w*=w2;	tQ2.x*=w2;	tQ2.y*=w2;	tQ2.z*=w2;	tQ3.w=tQ1.w + tQ2.w;	tQ3.x=tQ1.x + tQ2.x;	tQ3.y=tQ1.y + tQ2.y;	tQ3.z=tQ1.z + tQ2.z;	//normalise	float TOLERANCE = 0.00001f;	// Don't normalize if we don't have to	float mag2 = tQ3.w * tQ3.w + tQ3.x * tQ3.x + tQ3.y * tQ3.y + tQ3.z * tQ3.z;	if (  mag2!=0.f && (fabs(mag2 - 1.0f) > TOLERANCE)) {		float mag = sqrt(mag2);		tQ3.w /= mag;		tQ3.x /= mag;		tQ3.y /= mag;		tQ3.z /= mag;	}	return tQ3;}`

PARTNERS