100% pure software 3D rendering with c#

I finally got something truly interestnig running in realtime. It's a 100% pure c# 3D rendering which offers some pretty advanced features such as reflectivity, transparency, environemtn maps etc.

http://alansimes.blogdns.net/forums/12/ShowPost.aspx

Feedback greatly appreciated.
Alan

[438 byte] By [AlanSimes] at [2008-2-2]
# 1

Hi,

On word. Magnificent... I never knew that Managed DirectX is that powerful...

cheers,

Paul June A. Domag

PaulDomag at 2007-9-9 > top of Msdn Tech,Game Technologies: DirectX, XNA, XACT, etc.,Game Technologies: General...
# 2
Hi Paul

It's not DirectX, it's a software renderer written entirely in C#, it's only 80k in size.
alan

AlanSimes at 2007-9-9 > top of Msdn Tech,Game Technologies: DirectX, XNA, XACT, etc.,Game Technologies: General...
# 3

Hi,

Ok, I was assuming that he used directx. But I guess he really developed his own rendering engine. It's quite slow on my computer (I think its my graphics card).

Is there a technical article on this? I mean a whitepaper that explains how to use it? Or better on how it was done?

Well, the source code is included though... Nice job...

cheers,

Paul June A. Domag

PaulDomag at 2007-9-9 > top of Msdn Tech,Game Technologies: DirectX, XNA, XACT, etc.,Game Technologies: General...
# 4
Hi Paul

It's all written in C# and only needs a half decent processor, the demos can be made to speed up by reducing the original scene creation size and modifying the controls draw method to use a faster DrawImage call.

Instead of this

Graphics g = e.Graphics;
g.SmoothingMode = Drawing.Drawing2D.SmoothingMode.HighQuality;
g.InterpolationMode = Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
g.DrawImage(_scene.getImage(), 0, 0, this.Width, this.Height);

I could do this

Graphics
g = e.Graphics;
g.DrawImage(_scene.getImage(), 0, 0, this.Width, this.Height);

Which would have a dramatic impact on slower graphics cards as we are not asking the GDI to perform the interpolation.

I wrote the engine as a demonstration of the capabilities of C#, the 3D pipeline is pretty sophisticated and allows for reflections, transparency, environment maps, per object manipulation as well as a raft of other stuff. I am happy to modify / improve it if there appears to be an interest.

I also wanted to develop a lightweight control that could be used to do simple 3D rendering in Internet Explorer without incurring horrible hardware security exceptions.

The 3D control is JavaScript enable and exposes a reasonable interface as well as being able to import 3D studio files. All file loading, material loading etc is capable of talking uri's as paths.

It's been fascinating.

AlanSimes at 2007-9-9 > top of Msdn Tech,Game Technologies: DirectX, XNA, XACT, etc.,Game Technologies: General...
# 5

Alan,

Something that works real time with C#, and VB.NET and supports all this: reflectivity, transparency, environment map + more: textures, interactive markers, vector graphics, 3D read out tools and much more can be found here

http://www.sciencegl.com/
gallery
http://www.sciencegl.com/3Dsurf/Shots/screenShots.htm
business visualization
http://www.sciencegl.com/Stock_market/Stock_market.htm

Enjoy good and easy to use 3D graphics.
Thank you for attention

Nick

Nick111 at 2007-9-9 > top of Msdn Tech,Game Technologies: DirectX, XNA, XACT, etc.,Game Technologies: General...