JavaKazRace - Playable Java racing game demo
PSEmu Pro GPU plug-in
DOSX Utils
SHLight 2004
JavaKazRace DSharingu PSEmuGPU DOSX Utils SHLight 2004

About Id's Megatextures and modularity

Davide's picture

I found a paper on Intel's site. It's from someone at Id Software.
I think it's pretty close to what's behind the cool MegaTexture name.

..basically a very optimized progressive-JPEG-like (edit: actually streams but it's not progressive in the "progressive JPEG" sense) streaming and decompression in real-time. Something very close to what I'm doing recently (as a task in a project, not as a full blown research).

For my implementation I decided to put an extra effort and make it easy to use outside the main application. This means that I'm going hide all my "nice" support classes and types and only expose the bare minimum for anyone to use the proposed functionality.

I set the goal of making a DLL out of this progressive CODEC, but more DLLs for the future.
The reason for a DLL rather than a LIB is that static linking can be pretty tricky. For example I have a global new and delete overload because I normally need 16/64 bytes aligned memory.
It's nice to be able to use a lot of my common library, but it wouldn't be nice to force headers and symbols onto other potential users.

Thinking in a DLL way also makes it easy to write at least one clean class that is easy to understand and document. The class exported in the DLL header is a bare-bones interface with a pointer to an actual hidden implementation class (aka PIMPL).

...basically I'm talking about modularity ! ..back from the dead.. saving the day where the OOP abuse complicates APIs.

cool

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

dlls

i remember having to use dlls as wrappers for xbox and xbox360 versions of d3dx libraries. it was impossible to statically link both of them because they were using some incompatible versions of c runtime....
5+10=15

Let's spice it up a little ...

I think that paper was written/released as the results of some of the work they did in Quake Wars: Enemy Territory. It's pretty interesting though. One annoying thing about DLLs (at least under Windows) is that if by some chance you end up with the wrong version, it can cause a lot of headaches. It's generally a good idea to have some kind of "version check" requirement upon loading/initialization. That way, if someone fails to update, it won't be such a pain tracking down the problem.

Let's add a little controversy:
Ray Tracing in Games: A Story from The Other Side

DLL Hell is possibly going

Davide's picture

DLL Hell is possibly going to be surpassed by Manifest Hell 8)

As for the Ray Tracing article, I didn't really read it yet. The images however don't look so good.. it's no wonder since Ray Tracing, as game programmers think of it, is not really being used for any quality rendering.

I think that 3D programmers in games tend to be very ignorant of actual quality rendering (me included, but trying to improve !).. what happens for offline rendering is substantially more complex than just implementing ray tracing.

I'm tired of reading of people that say that they just need faster computers for ray tracing.. the question is not if a computer is fast enough for something, but if another algorithm is going to be faster on the same computer.
The gap will stay until the basic architecture changes.. and when it does, I think that ray tracing as is it's still going to be too dumb to be effective: too much brute force, very little math..

Oh yeah, those "manifests"

Oh yeah, those "manifests" ... I completely forgot about that. It makes me feel like I'm taking inventory of what I'll be shipping in an airplane or a ship. 8P

In regards to the ray traced images, it's natural to (currently) not see such high quality rendering (compared to what today's rasterization does). But roughly about 10 years ago (or so), the best rasterization had to offer was things like 3Dfx's and nVidia's TNTs offerings. If people continue to working on bringing raytracing to real-time, then perhaps we'll see very high quality images in the not too distant future.

Off line rendering definitely beats anything realtime in quality; time is a limited resource when it comes to rendering (realtime or off line).

I agree with you about better algorithms instead of faster computers. Unfortunately (with the way the market works) it seems that faster (insert whatever) is what's currently winning.

I guess we'll see what Larrabee can do eventually. Whatever happens future-wise, the reality seems that nVidia, ATI, and Intel have stock performances to meet and something will be done. It seems ATI's new efforts will be Cinema 2.0.

One interesting thing about all this is that it seems that not as much R&D is being done in the realm of animation. It's going to look kind of awkward having these realistic vistas with characters that animate unnaturally.

Uncanny Zombie Valley

Davide's picture

I agree on the animation unbalance problem. Games look stupid because they are animated stupid (and because of stupid AI too).
Animation is another of those problems that are too far away from the average game programmer Joe.

"Don't worry about what

"Don't worry about what anybody else is going to do… The best way to predict the future is to invent it." - Alan Kay

Mr. Kaz, we've got work to do!!! 8P

hhhhmmmm if you two start

hhhhmmmm if you two start inventing the future....

I see a lot of miniskirts

Davide's picture

I see a lot of miniskirts and cute girls !!

This is very much the way I

Davide's picture

This is very much the way I think !!!

wooooo

Hahaha ... would we cause

Hahaha ... would we cause the world to come to an end? 8P

yeah, it will be a world

yeah, it will be a world full of raytraced short skirts.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <b> <i> <img> <table> <tr> <td> <ul> <li> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote> <div> <pre> <font> <h1> <h2> <h3> <h4> <h5> <h6>
  • Lines and paragraphs break automatically.
  • You may use [inline:xx] tags to display uploaded files or images inline.

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
2 + 7 =
Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.