So currently I\'m creating a 1000x1000 bitmap and it\'s spending about .3 seconds simply calling the Bitmap.SetPixel() function.
I\'m actually only drawing probably
Bob Powell has an excellent tutorial on accessing pixel maps directly in memory.
FastPixel?: http://www.codeproject.com/KB/GDI-plus/FastPixel.aspx
I can recommend FastBitmap:
FastBitmap fb = new FastBitmap(b);
fb.LockImage();
...
fb.SetPixel(x, y, Color.Red);
...
fb.UnlockImage();
Modern blockbuster video games do all the pixel setting behind the scenes in hardware; they give the hardware a buffer of geometries and the highly parallelized hardware does all the math. OpenGL and DirectX are APIs for talking to the hardware.
Search gamedev.net for some tutorials.