Skip to main content
GameDev.net gamedev.net
🔒 Locked

Realtime Raytracing Game

Started by morfiel Jun 1, 2004 at 10:54 AM 74 replies 8.9k views
Original Post
morfiel
morfiel
Recently realtime raytracing has been used to implement a first (non-commercial) game. Oasen is a flight-simulator that uses pure raytracing (ok, except for the HUD's, for 2D stuff OpenGL is just better) for image generation. The project is based on the realtime raytracing API OpenRT (http://www.openrt.de) which was developed at Saarland University.

You can check out the website at http://graphics.cs.uni-sb.de/~morfiel/oasen comments welcome Tim & Christian [edited by - morfiel on June 1, 2004 11:56:47 AM] [edited by - morfiel on June 1, 2004 11:57:49 AM] [edited by - morfiel on June 1, 2004 11:59:21 AM]

Matei
Matei
Pretty darn neat! How real-time is it though? I.e., what kind of machine does it run on, and with how many FPS?
ngill
ngill
where''s the binary?!

I''d like to try it out. Linux/Windows is fine. Linux preferred though.
morfiel
morfiel
It depends. You can either run it in normal software mode in
which case it runs @ 16fps in 640x480 on 10 Dual Athlon 1800+
machines (without using any hardware acceleration, though).

Or you can run it on special purpose hardware which is currently
in (working) prototype state. This gives roughly the same
performance on a 90Mhz FPGA chip.

http://www.saarcor.de/

@ngill: we don't distribute binaries but if you are interested,
we can give you a copy of the sources. You're gonna need a
cluster, though...

[edited by - morfiel on June 1, 2004 12:41:57 PM]
Etnu
Etnu
quote:

it runs @ 16fps in 640x480 on 10 Dual Athlon 1800+



It''s generally not appropriate to call something "realtime" that doesn''t run in real time.

Given enough processing power, I could "play" Shrek 2 in real time as well.

But anyway...

I don''t think real time ray tracing is really a possibility quite yet. Once video card manufacturers start incorporating the functionality into their graphics piplelines, and OpenGL / D3D start adding those features, it''ll be feasable, but currently it''s still kind of far off.
---------------------------Hello, and Welcome to some arbitrary temporal location in the space-time continuum.
morfiel
morfiel
Sure. If it doesn''t run in realtime, it''s not realtime.
But this game does. Or what would you call 16 fps ? Just
because the hardware is not yet available to mass market,
it still is realtime.

The point is: you have to assume some hardware. And unless you do have special purpose hardware, the only way to estimate the
performance is to use software implementations. The way the
research at Saarland University was done is the following:
we assumed we can use the same chip-technology todays GPU''s use
for Raytracing Hardware (which was at the time a GeForce 2).
Then we estimated what performance our Hardware would provide
with a chip of this power and bought enough PC''s to get the
same performance in a Software Emulation.

It''s like running a new Game on the Software Layer of DirectX.
It''s slow, but you can estimate the performance and look before
you do have the hardware done. Just for comparison: with a single
PC, we get something like 1-2 fps. That''s not fast, but try
running, say farcry with all shaders enabled in software mode :-)
Etnu
Etnu
quote:

. Or what would you call 16 fps ?



That is not real time.

Realtime is at least 30fps, or better. Anything less than that is not real time, period.

Also, 16fps on 10 dual athlon 1800+ is not realtime anyway, even if it was 160fps.

It''s not "realtime" unless I can boot it up on an ordinary computer and get it to play at a reasonable speed.

Like I said - realtime will be possible with hardware, certainly. That hardware doesn''t exist in a form that is useable for the average person, yet, and therefore it''s quite silly to call something "realtime" that can''t be run in realtime.

a 10,000-processor strong server farm can probably run a lot of things "in real time", too.
---------------------------Hello, and Welcome to some arbitrary temporal location in the space-time continuum.
the Speed Bump
the Speed Bump
I daresay, someone beat you to it.

Still pretty cool, though.

"Without deviation, progress itself is impossible." -- Frank Zappa
"There is only one everything"
Nik02
Nik02
I''m sorry I may sound skeptical, but I don''t see anything in the screenshots nor in the video that really requires raytracing. Furthermore, quality evident in them can be achieved using traditional scanline rendering.
Seen Far Cry?
Not trying to flame - constructive discussion is much more preferable.

Kind rgds,
-Nik
Niko Suni
-Locke-
-Locke-
That antiplanet game was all spheres so I don''t think it''s really comparable. Whether or not this is real time it''s still cool.
Etnu
Etnu
How is it a ''limiting'' definition to say that you can only call it ''realtime'' if it can run on relatively common hardware?

Real time is just an arbitrary term. There is, at it''s core, no difference between what a server farm rendering CG is doing and what your home PC is doing. It''s taking data (in the form of polygons, typically), applying algorithms to said data, and then rendering the results to a surface (a screen surface, or a texture of some sort).

The only difference is the speed.

Like I said - Given the right hardware, I could run Shrek 2 in "realtime", but that doesn''t make it a "realtime" application.
---------------------------Hello, and Welcome to some arbitrary temporal location in the space-time continuum.
Etnu
Etnu
Calling it realtime is dishonest.

It''s a software ray tracer. There are *THOUSANDS* of software ray tracers out there.

That was my original point. It''s not new. It''s not a bad piece of software, but it''s also nothing groundbreaking.

The hardware, on the other hand, could be. That''s another post altogether though.
---------------------------Hello, and Welcome to some arbitrary temporal location in the space-time continuum.
davepermen
davepermen
actually, its rather groundbreaking, but now quite old. the openrt project started long ago, and evolved extremely. its very powerful, while only on clusters for this game, its an awesome performance, not doable without tons of work, or years of hw evolution.

for sure, those games (there are 3 on the page, just check www.openrt.de) don''t show yet that much of the raytracing power (but the detail of the trees, the crispness of the shadow, the size of the landscape, etc, still show quite some), but in combination with the research work they did you can see whats all possible with the very same api with ease.

i''m very interested in getting the source-code btw, as well as the hw (i''d pay for it, i can guarantee you).

i''ll drop a mail.


i want to see a saarcor chip developed by intel/amd/nvidia/ati together :D means at 500mhz till 2gig, or so.. i mean.. that, running at 90mhz! just imagine.




If that''s not the help you''re after then you''re going to have to explain the problem better than what you have. - joanusdmentia

davepermen.net
If that's not the help you're after then you're going to have to explain the problem better than what you have. - joanusdmentia
My Page davepermen.net | My Music on Bandcamp and on Soundcloud
CV
CV
quote:
Original post by Anonymous Poster
e.g. there is a book called "Realtime Rendering", dedicated to programming techniques on consumer level hardware.


Just look at http://www.realtimerendering.com/ and search for openrt. You will see there is a chapter about it in the book. So it´s now realtime in your eyes?


quote:

I'm sorry I may sound skeptical, but I don't see anything in the screenshots nor in the video that really requires raytracing. Furthermore, quality evident in them can be achieved using traditional scanline rendering.
Seen Far Cry?



We know Far Cry. It´s a german game
So what we (people with rtrt) can do others (people with rasterizer) can´t?
You can just call it the power of O(log(n)). Rasterizers have O(n). So we can use as many polygons as we can put into the memory (40x geometry on screen -> only <10% performance decrease; oasen landscape vs. oasen with all objects).

One palm or cactus has 30000 polygons.
One tree has 75000 polygons
and a fish still 18000 polygons.
No need to fake something

Others can do better models with 30000 polygons, but our modelling skills are .... more than bad
Imagine an Epic designer can use 4 millions polygons or more in scene and altogether on your screen. That would be cool.

Another thing: There is no need for LOD anymore even though infinite viewing distance. only if your memory is too small for the data actually shown or there is geometric aliasing you must do something.
The waterreflections and refractions are much more correct since we can use reflection-/refractionrays instead of render the scene from another perspective and distort the texture. It´s quite easy to write such a shader in openrt.

quote:
Your clouds are marvelous, very stylish. How did you do 'em? Some meta cubes or something like that?



Just modeled in Maya with spheres and a linear fog shader. *g*

quote:

Didnt like the caustic like effect you got going there. Thats it looked dull compared to the otherwise crisp graphic It is just a looping texture, right?



Really? we like them.
Real caustics are too expensive
We will try to improve them...
Any proposals?

quote:

Loved the video.. lotsa Monkey island vibes when the carpets hoovers in over the island at night. Must be all those twinkling little lights



Originally it was just a test. There are over 20 dynamic lightsources (with shadows etc.) on the screen at the same time. More lights are not too expensive but it doesn´t look good anymore... Since we had constructed a light-BSP the number shouldn´t be the problem

quote:

i want to see a saarcor chip developed by intel/amd/nvidia/ati together :D means at 500mhz till 2gig, or so.. i mean.. that, running at 90mhz! just imagine.



Let´s hope for the future and saarcor *g*
The prototype has only one pipeline....


So just one thing left. Quoting the RTGames-Page
quote:

We are very much interested in evaluating new ways for computer games and therefore like to cooperate with the gaming industry. Thus if you are in such a position, please send us an email!




questions still welcome

Chris


[edited by - CV on June 1, 2004 5:51:48 PM]
ngill
ngill
For your demo, I recommend you make a lot of animated stuff. Right now, someone could easily precompute lights/shadows and throw them in a texture.

Also, if you have the power, why not use more complicated weird shaders when you can? [Like the ones that can''t be done on current hardware].

If you want to show off, it seems like you want to move away from high poly meshes and go towards lower poly meshes with cool ray tracing benefits.
Matei
Matei
Try to make a demo that shows off something that can''t be done without raytracing. For example, have an "ice palace" with a lot of reflection and refraction. Have a lamp move along with the player and shake as if he held it in his hand, and make sure lots of nice shadows can be seen (maybe even some "rainbow" effects due to different wavelengths refracting at different angles, if this is possible with your engine). Look at something like the Doom 3 demo videos for examples of the "state of the art", and then show how you can do better than that with so much less code .

I think that if real-time raytracing can run this fast today, it will very likely take over in the future. It''s a much more logical model for complex effects like reflection and refraction, and when the hardware catches up, the simplicity will outweigh the performance decrease.
Eelco
Eelco
fuck the naysayers, this stuff totally rules.

i especially like how the whole uber pc can be replaced by one piece of outdated hardware in its infancy.

keep up the good work.
sBibi
sBibi
quote:
Realtime is at least 30fps, or better. Anything less than that is not real time, period.

Also, 16fps on 10 dual athlon 1800+ is not realtime anyway, even if it was 160fps.

It's not "realtime" unless I can boot it up on an ordinary computer and get it to play at a reasonable speed.


then you wouldn't call UE3 realtime just because it won't run @30 fps on an "ordinary computer"?


[edited by - sBibi on June 1, 2004 10:24:10 PM]
sBibi
sBibi
btw, just because at the moment rasterizers look much better at the same speed, nobody should have the guts to try something new? hopefully we will come to a point in time when dedicated RT hardware will be available where raytracers will become better than rasterizers, but it has to start somehow... :|
the Speed Bump
the Speed Bump
quote:
Original post by sBibi
then you wouldn't call UE3 realtime just because it won't run @30 fps on an "ordinary computer"?
While certainly not the whole story, it sounds accurate enough to me. If memory serves, U3 only barely runs on hardware that wasn't available two months ago.
quote:
Original post by sBibi
btw, just because at the moment rasterizers look much better at the same speed, nobody should have the guts to try something new? hopefully we will come to a point in time when dedicated RT hardware will be available where raytracers will become better than rasterizers, but it has to start somehow... :|
Absolutely.

"Without deviation, progress itself is impossible." -- Frank Zappa

[edited by - the speed bump on June 1, 2004 10:52:29 PM]
"There is only one everything"

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.