Intel Researchers Consider Ray-Tracing for Mobile Devices
An anonymous reader points out an Intel blog discussing the feasibility of Ray-Tracing on mobile hardware. The required processing power is reduced enough by the lower resolution on these devices that they could realistically run Ray-Traced games. We've discussed the basics of Ray-Tracing in the past. Quoting:
"Moore's Law works in favor of Ray-Tracing, because it assures us that computers will get faster - much faster - while monitor resolutions will grow at a much slower pace. As computational capabilities outgrow computational requirements, the quality of rendering Ray-Tracing in real time will improve, and developers will have an opportunity to do more than ever before. We believe that with Ray-Tracing, developers will have an opportunity to deliver more content in less time, because when you render things in a physically correct environment, you can achieve high levels of quality very quickly, and with an engine that is scalable from the Ultra-Mobile to the Ultra-Powerful, Ray-Tracing may become a very popular technology in the upcoming years."
Moore's Law works in favor of Ray-Tracing, because it assures us that computers will get faster - much faster - while monitor resolutions will grow at a much slower pace.
Inverse Moore's Law states that the more time that developers spend on making games look 'pretty', the less time they spend on playability.
I am a free slashdotter. I will not be modded, blogged, DRM'd, patented, podcasted or RFID'd. My life is my own.
It's about time for S.P.I.S.P.O.P.D. for mobile devices! I've only been waiting about 15 years!!!
I, for one, am looking forward to the inevitable
I can just see two moustached elderly gents discussing research, possibly even drinking Guinness out of a bottle. They go silent for a few minutes and then one of them, whilst stroking his long droop moustache suddenly jumps up and proclaims:
"Holy Crap! Mobile gaming devices have tiny screens, imagine how easy it'd be to use advanced raytracing graphics!"
"Brilliant!"
It makes me wonder if we are the computational power to create random images for the creature on the other side of the screen.
Proof by very large bribes. QED.
"As computational capabilities outgrow computational requirements, the quality of rendering Ray-Tracing in real time will improve, and developers will have an opportunity to do more than ever before."
This attitude is why even tho our computers are 1000x faster then we had 20 years ago, they actually perform worse overall.
---- Booth was a patriot ----
Too bad the source code for the highly optimized prog10 raytracer was lost in the great hard drive crash of '98.
As Intel couldn't compete with ATI/nVidia on 3D rendering performance, they simply redefined rules of the game. Now they seem ahead of everyone else in Real Time Raytraycing, at least based on publicly presented papers. Now, they need to integrate this into some bigger picture of "new gaming platform". If they manage to integrate this graphics with Java JVM in coherent way, so that developers can easier utilize multiple cores in games and be able to write games once, run on all platforms/future consoles as a bonus. That would be big step towards letting developers focus towards gameplay and not on DirectX/OpenGL/PS3/... API generations, extension nuances, tricks for simulating shades, optimizing polygon count in big scenes, ... ray-tracing is making all this simple without requiring effort on developer's side. Yes, I know Java is some percents slower then C++, but in Java it is so much easier to utilize multiple-cores (especially when it comes to debugging) that I am sure performance will be gained, not lost on modern CPUs.
839*929
This is kind of stupid actually. Why would I want a game on my mobile to be thrashing the cpu when it could be doing some basic sprites and other not-so-cpu-intensive methods to produce my game?
Ray-tracing may be possible on my 500Mhz smartphone's processor - but damn, I don't want to have to be plugged in to play them.
Rendering my latest blender project....
"The problem with socialism is eventually you run out of other people's money" - Thatcher.
I was reading this thread hoping to find links to existing real-time ray-tracers, but found none. Does anyone know of any real-time ray-tracers? Open source, please...
Please correct me if I got my facts wrong.
For those interested in real-time raytracing, the latest beta version of POV-Ray has a neat (but experimental) RTR feature. The source is now available for Windows and Unix/Linux. There also demo scenes available (and another demo scene with pre-baked textures can be found here).
My understanding was that current techniques in game graphics were developed because they require less computing power to achieve a similar level of quality; or to put it another way, they produce better quality for the same amount of computation.
If this is the case, why not just use the increasing processing power to produce better quality graphics using the current optimized techniques?
Am I missing something? Intel's argument seems a bit like saying we should get rid of QuickSort and go back to Bubble sort, because we now have the processing power to do it quickly. Is there something about ray-tracing vs current polygon techniques that means that the difference is actually narrowing as processor power increases?
Is this just a processor company - unsurprisingly - suggesting that we use more processing power, or is there something concrete to their argument that I've missed?
Paul Leader
If you want to know the future of real-time graphics, look at what Pixar and other animation and special effects houses are doing. None of them are using ray-tracing except to achieve specific effects in specific circumstances. The fact is that global illumination combined with scanline renderers simply produce better pictures with less computational requirements.
The interactive way to Go -- http://www.playgo.to/iwtg/en/
Raytracing does not make things easier. If anything it makes things a bit harder, or at the least its a comparable work load.
Is Raytracing really needed on a tiny mobile device at say 300x400?
But will it run on Linux?
If I mod you up, it doesn't necessarily mean I agree with what you've said, sorry.
I came to browse Slashdot while waiting for some ray tracing of my own. I do atomistic modeling of nanomechanics and I'm rendering movies of how atoms wiggle and move during deformation. Here is a test shot of a 4 nm tall aluminum cylinder rendered at 150 femtoseconds per second of animation:
Aluminum nanocolumn vibration (Quicktime, 14 MB)
It's amazing how nice ray tracing can look compared to other visualization methods. It took three hours to generate this 1000 frame movie. But as processors add cores or ray tracing gets hardware acceleration this can speed up dramatically.
Doing ray tracing on small screens makes a lot of sense since you're restricted to low resolution anyway. A Nintendo DS or Apple iPhone has a fraction of the resolution of a desktop, but the ratio of processor speed to screen pixels might be better (or become better in the near future).
This is a common meme, but it is mistaken. I'm sure you've noticed that Pixar's movies aren't yet photorealistic. Raytracing *is* the holy grail of graphics; in its most sophisticated form it basically amounts to a simulation of the actual physics of light propagation, and with monte carlo methods it can be solved, producing images that can truly be said to be indistinguishable from reality. The reason Pixar doesn't use it is that, believe it or not, Pixar has constraints on their rendering time. They can't spend days to render a single frame; they need to get movies out the door. But given a couple dozen more years of Moore's law, raytracing would be everyone's rendering algorithm of choice. It's simply the most general, flexible, and simple rendering algorithm possible, so, absent computational constraints, it's what everyone would use. I'd say that qualifies it as the "holy grail" of graphics, wouldn't you?
What does Pixar have to do with realtime graphics? Pixar's not DOING realtime graphics.
Pixar has the luxury of controlling every take, and going back after the fact to re-render shots with different settings, or even to use different algorithms (including ray-tracing) to fix any rendoring flaws caused by whatever approximations they're using at that point. Realtime graphics do not have that luxury... if there's a problem in a scene, you can't go back and fix it.
So whether raytracing is more or less appropriate for realtime graphics, whether Pixar uses it or not is irrelevant.
Raytracing is more computationally expensive, but what about human expense? To get high performance while achieving comparable results with scanline rendering you need to prebake shadows, create reflection maps, pick which objects are going to be self-shadowed, and so on... many of these techniques involve selectively applying ray-tracing algorithms where you notice them, along with a myriad of other algorithms that are individually cheaper than raytracing for specific cases. At some point it makes sense to simplify the code and the artists's job and just raytrace everything.
That phones may be able to ray trace is news? Sounds more to me like intel was of reading in the news all week how inferior their graphics stuff was because of the Microsoft Vista debacle part eight - and suddenly we have an anonymous tip to a blog at intel saying ray tracing on phones there is "an opportunity to deliver more content in less time" and "Ray-Tracing may become a very popular technology in the upcoming years".
A popular technology? Like a working filesystem? They're real popular I hear. Or an on off button that actually works.
Slow news day + intel graphics dept astroturfing = ray tracing on phones is news.
Need Mercedes parts ?
The normal way things work in computing, things tricke down from high-performance platforms to lower ones. So, where are the desktop games using raytracing?
If they want a phone to do 256 x 192 raytracing in real time, then a desktop with 1000x the compute power should easily be able to do 720x480 (full res television) in real time. But, oddly enough, there are no such titles out there....
Do they have raytracing down fast enough to be useful in real time animation? If not, then stick to pre-rendered pximaps. Just because something can be done doesn't mean it should be.
Don't blame me, I didn't vote for either of them!
It's worth pointing out (and it's mentioned in the paper you cite) that the main reason Pixar hasn't been doing much ray tracing until now is not performance or realism, but memory requirements. They need to render scenes that are too complex to fit in a single computer's memory. Scanline rendering is a memory-parallel algorithm, ray tracing is not. So, they're forced to split the scene up into manageable chunks and render them separately with scanline algorithms.
This isn't an issue for games, which are going to be run on a single machine (perhaps with multiple cores, but they share memory).
In 1993 my DX2/66 laptop could ray trace pretty damned fast with POVray, and much faster if I optimised the code (stupid specularity!) and put a heat sink on the processor (which, in my laptop, was accessible). That was 15 years ago, at at a resolution of 800x600. Current cell phone processors run at least 10x that speed and have to deal with a resolution of around 1/8-1/16 of that. And for what? A ray-traced game? As everyone else has pointed out, the games are neat-o looking but playing them sucks ass.
I made the mistake of buying NFS Underground a few years ago. It looked pretty and the physics were OK, but then it quickly became a chore: you have to become ghetto trash and "pimp out" the car rather than actually fucking drive. And you have to do all sorts of non-driving shit to continue to the few drivy bits. Within 48 hours I fired up MAME and went back to playing Atari Sprint 1979, where I could actually, you know, drive the fucking car.
Photon mapping is a pretty good way of getting an unbiased approximation to the rendering equation. It's slower than plain ray tracing, but much faster than path tracing. Real-time interactive global illumination isn't as computationally intractable as you are implying; it is likely to follow real-time ray tracing in not too many years.
Just what we need: more people walking around playing Bejeweled on their cell phone, and _not_ paying attention to where they're going.
I still don't get the whole cell phone craze. Get a Game Boy for cryin' out loud!
-Billco, Fnarg.com
I'd prefer companies focus on decent vector graphics for applications before trying to move directly to ray tracing for games.
Really, nothing pushes hardware, er... harder, than games. Application GUI implementation is still in the stone age, even on mobile devices.
Here is the reality of the situation: with a mobile device you're probably dealing with a program written in an interpreted language (Java). If your application is a game then you're dividing your scare processing resources across all elements said game: AI, graphics, networking, whatever. It's all being done by one chip that is designed to CONSERVE BATTERY POWER. These are not the dual core race horses you see in desktops. Who wrote this article? They need failure stamped on their forehead. Maybe in 10 years... but not now. Disclaimer I work for a large, promient mobile device developer. You have heard of them.
"Knowledge is the only instrument of production that is not subject to diminishing returns" -Journal of Political Econom
Sure, if what you want to do is play a "game" on the PC, then yea, forgo the "pretty" look and just concentrate on the "how many points can I score" aspect.
However since Doom, I've never totally played a game just to pass the time scoring on my friends, or getting good at Tetris. I actually love the experience of exploring, and going somewhere else that I can't go in real life. In these terms, the bigger the world a game company can create, the more visually stunning and accurate the photorealism is, and the more complex the scene can be rendered at a reasonable rate the better. I've enjoyed the Myst series of games for that reason as well, and I don't even care about the puzzles, I just like the wonderous "places" I get to visit after I get home after a hard days work. In some ways it is just like a vacation. It's like a way of being a kid again, and the adventure of going on a long journey to some end that I know not. Environmentals are a "big" part of the game experience.
The most recent game in my arsenal of photorealism is Crysis. When I purchased a computer powerful enough to run that game with all the bells and whisles turned on, I was left slack-jawed and amazed at the possibilities. Crysis only flaw is that it isn't big enough, and ends up just being a "leading you" game just like Half Life. There are implied "barriers" for the sake of disk space, and for the sake of the story.
Make no mistake, I will pay just about any kind of money to satisfy my experience for other worlds and adventure. Yea, playing some occasional puzzles are fun, and certainly when you are in the mood to just wail on your internet buddies there's nothing more satifying than a good Quake style FPS. But in my view, all the games I've played have taken me "somewhere" that I can't go in real life, and offer me an escape to my rather mundane world.
The games I've played since Doom...
Doom (all variants)
Doom 1.666
Doom 2
System Shock
ROTT (Rise of the Triad)
Mech Warrior 2
Heretic
Hexen
Hexen II
Unreal
Unreal Tournament
The Wheel of Time
Myst
Riven
Exile
UrU Ages beyond Myst
UrU Path of the Shell
Real Myst
Myst IV Revelation
Myst V End of Ages
The Elder Scrolls III, Morrowind
The Elder Scrolls IV, Oblivion --- (Truely visually stunning, awesome, and adventure inspiring, with the exception of just plain bad execution. Why does every freaking thing on the road to other towns try to kill you? There are almost too many people and not enough variation in the conversations. Too many minor dumb quests to solve. I don't use the speedup.)
Tribes
Tribes 2 (These were good no matter what people say!)
Tribes Vengence (Great game, poor marketing)
Quake (all mods, world, etc)
Quake II (all mods)
Quake III Arena (all mods)
Quake III Team Arena
Doom 3
Quake 4
Halo
Half Life 2
Battlefield 2 (Environmental sounds not loud enough, comm voice over TOO LOUD!)
Battlefield 2142 (If I could talk about how bad this game was... geeze. I mean I played quite a bit to pass the time, but the implementation of the game was just poor compared to BF2.)
BioShock (off the beaten path and very nice)
Crysis --- (Absolutely stunning and amazing graphics, but poor AI, and very narrow storyline. However I understand there are limits to what computers can do, so I will give Crytek some credit here. Oh, and the whole alien ship experience was not so exciting. The multi-player needs to improve.)
I'm down to only 2 (maybe) three games per year. I'm waiting on Id's Rage now. If you can tell, I'm a PC gamer. I won't play console games because I feel that they were just created for companies to make quick short-term money. I feel that consoles surpress innovation and prevent PC hardware technologies from improving. I could talk all day about why I despise consoles, but in the end I just put my money where my mouth is and not buy them. However I also don't th
Everything else is just a coarse approximation which doesn't correspond to our best knowledge of light propogation. Forward raytracing? Pshaw, just a complete and utter hack. Backward raytracing can handle caustics and GI ... but at the same time, still atrocious hacks really which can't handle a whole host of optical effects.
Quantum wave tracing baby, that's where it's at.
Because Intel's just gotta make those quarterly numbers.
Just ask Microsoft and the Vista team in particular.
Bunnies, http://www.dawnofthegeeks.com/ (a Wolf3D clone) was originally written in Java. I then started translating it to C# and got about a 50% speed boost. I'm now able to do bump mapping, higher resolutions and still have playable framerates.
And this is just for Ray Casting which is much simpler than Ray Tracing.
During my development with Java I discovered that setting a pixel color to 0xFF000000 caused a slowdown. That's right, a black pixel would slow the framerate down. I had to set all pure black pixels to not quite black pixels.
http://www.dawnofthegeeks.com/index.php?page=blog&offset=58
I also found that Java is much slower at doing a "v++" than C.
Those quirks aren't a big deal when you're not trying to do a lot of math. But they will cripple a Ray Tracer. If Sun could optimize Java better it might be viable but for now Ray Tracing based games would have to be written at a lower level even with a small resolution.
Maybe people don't expect enough out of handhelds to notice that the graphics are "poor" and that they could be better. In that case you could probably get away with Java. People don't expect much out of a console until someone starts really pushing the limit and then everyone has to.
Work Safe Porn
At the NHTV university of applied sciences, IGAD department, we are researching the use of ray tracing in games. Two student teams are working on proof-of-concept games using the technology. You can read about findings so far in my paper on real-time ray tracing in the context of games, on http://igad.nhtv.nl/~bikker and http://igad.nhtv.nl/~bikker/files/rtgames.pdf . There's also a real-time demo that shows what a modern PC can do.
Obviously an idea from a company who wants to sell more expensive chips.
What do we really want from our mobile devices? I want "infinite battery life" and no recharging.
Moore's Law (which is really an increase in the number of transistors per given area) could give us much much better battery life for the same performance, IF we don't go the way of the desktop and squander it on bloated software and eye-candy.
There are already displays which take almost no power (less than 1mW): http://www.qualcomm.com/technology/imod// Add in ultra-wideband, which today can already transmit enough data for HDTV while generating barely more power than background noise (http://en.wikipedia.org/wiki/Ultra-WideBand/), and you have seriously useful devices which take almost no power.
As the same number of transistors take up less space, less power, and run faster, we could eventually get to reasonably powerful devices which recharge like solar powered calculators, or from movement, like a self-winding watch. Now THAT would be news!
Does this mean that we are suppose to favour QVGA over some of the WVGA (800x480) phones coming out over the last year (especially in Japan)?
Give me res > (raytracing >) size any day
Don't forget to add subsurface scattering.
You're starting to get close when that 3D human model describes the different layers of the skin and the amount of blood near the surface of the skin.
They ARE out to get you simply because They are in it for themselves and they don't care about you.
Memory bandwidth isn't a problem with the appropriate architecture. The local cache memories for each group of N massively parallel cores can be updated via a broadcast. Heck, page-flipping (unfortunately using 2x the ram) would allow pipelining of the geometry updates so that access would be uninterrupted.
SRAM can be made smaller too...
They ARE out to get you simply because They are in it for themselves and they don't care about you.
The problem is that the scanline rendering techniques we use for real-time graphics these aren't an accurate solution to the rendering equation. If you add more processing power you can render more triangles at higher framerates, but there isn't a physically-correct way to deal with the interreflections between objects (i.e. global illumination), and so the output of scanline rendering will never look quite real (it might look pretty close, but only with a lot of manual tweaking).
Plain Whitted Ray tracing doesn't solve the rendering equation either, but many global illumination algorithms employ ray tracing. Photon mapping, for instance, traces rays from the light source, which can then bounce off of objects in the scene, and their hit locations get stored in a data structure. The density of "hits" near any particular location in the scene tells you how much ambient light is there.
It turns out, ray tracing with photon mapping is a pretty good approximation to the rendering equation. The error manifests as noise, which can be reduced by increasing the number of photons. In other words, as you increase the amount of computational capability, a photon mapped image will asymtotically approach realism, whereas a scanline scene will asymtotically approach something that doesn't quite look real.
There is also the argument that ray tracing is O(log N) with scene complexity versus scanline rendering which is O(N). It gets a little more complicated than this when you're dealing with dynamic scenes, but there are cases where ray tracing really is faster.
Broadcast is MUCH faster than either peer-to-peer or unicast.
Or did you miss the point where you have a massively parallel GPU setup? 64 GPU cores ought to be enough for anyone
They ARE out to get you simply because They are in it for themselves and they don't care about you.