Jump to content

  • Log In with Google      Sign In   
  • Create Account


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

Posts I've Made

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

24 December 2013 - 03:26 PM


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

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.

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

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;



tQ3.w=tQ1.w + tQ2.w;
tQ3.x=tQ1.x + tQ2.x;
tQ3.y=tQ1.y + tQ2.y;
tQ3.z=tQ1.z + tQ2.z;

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;