OT: source giveaway

It’s been two years since I began learning OpenGL. Like most of us here I’ve tried to make my own 3D engine.

Unfortunatly, I don’t really have the time nor the will to take care of it anymore.
So I’ve decided to release the source of some part of my 3D engine, hoping some people will benefit from it.
http://users.pandora.be/tfautre/softdev/

Any feedback is appreciated. Especially about the things that annoys you.

PS: I’m also re-writting the triangle stripper I wrote a year ago for this 3D engine. I’ll post it as soon as it’s finished. I can’t wait to test it against NvTriStrip.

You have some pretty cool stuff there. I really like your SIMD C++ lib. Doing all that in ASM to me is a pain and just not very fun.

-SirKnight

some great stuff, thanks a lot. i’ll include this into my libs, for sure the simd, possibly the rest, once i really read it trough… that stuff looks impressive

Thanks guys for your replies.

Originally posted by SirKnight:
[b]Doing all that in ASM to me is a pain and just not very fun.

-SirKnight[/b]

Yeah… tell me about it. I had to do some routine in ASM with MMX and SSE instructions for a company. Although ASM is interesting, it gets really annoying when it comes to production.

[This message has been edited by GPSnoopy (edited 10-01-2002).]

Thanks a lot!! I hope I can learn some SSE from your SIMD library or atleast speedup my raytracer with your lib .

I have a bad news for GCC users.

Currently the simd lib is incompatible with GCC (tried 3.2).
This is due to their headers that are different from Intel and Microsoft ones. This leads to cast from “const void *” to “void *”. Which of course isn’t accepted by GCC (or any decent C++ compiler for that matter).

I’ll check wether or not this was fixed in the latest version of GCC. If not, I’ll send a bug report to GCC team.

PS: there isn’t only simd lib on the website.

Where’s your 3D engine, or which one is it?

A feature list would be great to have.

V-man

Originally posted by V-man:
[b]Where’s your 3D engine, or which one is it?

A feature list would be great to have.

V-man[/b]

I don’t think I’ll ever release the code of the whole 3D engine.
It was never finished and it’s really incomplete.
Thus I chose to rewrite and release the parts of it that I find interesting and worth sharing.
(To be completly honnest, the current version of the 3D engine doesn’t even compile anymore)

I can give you a small description of what’s available on the website:

  • There is a lib that allows to use SSE directly in C++ without programming in assembly. The main idea is that it stays as fast as assembly.

  • I explain how I used Texture Compression in the 3D engine: there is a complete example that shows how to load pre-compressed textures using DXTC DDS file format. I also give the source of the algorithm used to solve a big incompatibility between DDS files and OpenGL, which causes the textures to appear upside-down.

  • Finally the latest lib, “Zip File System”, allows to easily use in C++ a virtual “zip” file system like the one used in Quake 3 (see *.pk3 files). IMHO the interesting point of this lib is that it’s totally transparent for the programmer.
    You basicly use a “istream” object, which means you can use it the same way you would if you were using the standard C++ I/O objects. It also means that it will directly work with functions using those C++ objects such as “istream” or “ifstream”.

I’m currently re-writing the triangle stripper I used in my 3D engine. I’ll put it on the website ASAP.

[This message has been edited by GPSnoopy (edited 10-05-2002).]

Btw did u get so much improvments by using your own class for SIMD extensions compared to these F32vecx in <fvec.h> ?? :wink:

PS: I’m also re-writting the triangle stripper I wrote a year ago for this 3D engine. I’ll post it as soon as it’s finished. I can’t wait to test it against NvTriStrip. :)[/b]

The best strippers i have ever seen are humans gfx artists! ;)) 100% stripped, 100% optimised -> 1 prim = 1 strip! nvStrip can beat that!? ;))

Ozzy, why do I feel some ironic comments?

Anyway, it’s explained on the website why I still did my own classes even if Intel made its simd classes too.
IMHO Intel lib really feels too rushed and is missing a lot of important stuff.

When gfx artists can make “already stripped” models it’s nice.
However it’s not possible in all cases.
Plus most 3D models you can find on the net aren’t stripped.
I think everyone will agree that a triangle stripper is better than none.

Agree of course! :wink:

Not so ironic concerning the SIMD stuff, :wink: u did the right choice of course and i was just curious coz i’m about to post a little bench about SIMD extensions with C/C++ implementations.

Then i’ve got a question and u have certainly the answer… tatatsoin –>
How does the Visual.net compiler SIMD Intrinsics code gen looks like?? let me guess… ugly? :))

Nice thing to give sources away for the comunity! :slight_smile:

[This message has been edited by Ozzy (edited 10-05-2002).]

Well. Visual .NET seemes to correctly generate the code for the SIMD intrinsics, not doing useless instructions. But I didn’t go into a deep comparaison with Intel’s compiler.

I’m certainly looking forward to your bench.

Nice thing to give sources away for the comunity!

Thanks!