Slashdot videos: Now with more Slashdot!

View

Discuss

Share

We've improved Slashdot's video section; now you can view our video interviews, product close-ups and site visits with all the usual Slashdot options to comment, share, etc. No more walled garden! It's a work in progress -- we hope you'll check it out (Learn more about the recent updates).

angry tapir writes "A group of researchers plans to release a version of the Firefox browser that includes the built-in ability to view 3D graphics. They've integrated real-time ray tracing technology, called RT Fact, into Firefox and Webkit. Images are described using XML3D, and the browser can natively render the 3D scene." The browser will be released within a few weeks, the researchers say, and they are checking with the Mozilla Foundation about whether they can call it Firefox.

Even more confusing, is this meant to compliment WebGL [wikipedia.org] or replace it? While I think it would be neat-o to have real-time ray tracing in the browser, the WebGL working group consists of some big names like Apple, Google, and Mozilla.

I dunno, but this is a field that desperately needs some kind of leadership. How many technologies have we had in this field over the years. Countless markup formats, plug-ins and APIs and we haven't gotten too far in all this time.

The implementation shown at CeBIT is not based on WebGL, it uses RTFact which was developed in house at the University of Saarland. However the WebGL implementation is in development right now, and will be released later on to make the XML3D format more compatible with mainstream browsers (those without RTFact built in).

WebGL/RT/HTML5 are not fundamentally stupid. VRML hype mistakenly centered around a 3D navigation model for most of the web replacing 2D textual interaction with some image content, which was stupid.

However, richer multimedia content is a fact of life now with increased bandwidth. If it were not, then flash wouldn't persist (overuse of flash was a fad that has abated a bit in favor of javascript/css mechanisms, but flash persists for video and games without viable alternatives). Various video streaming sites that are relegated to flash today for games and videos would be freed from Adobe's whims as the embedded video, canvas, and 3d capabilities are expressed in industry standard terms.

Agreed. I'd be much happier if they built a Firefox that could perform better with Flash websites. I have to use some pretty Flash intensive websites and my Firefox crashes too often. I don't have that problem with Chrome. Have been using FF since pre-1.0 version but I feel like it's getting slower and slower no matter what they claim and 2.x didn't crash as much as 3.x does (although 3.x seems to be a bit better, just a bit, at handling memory use).

I can think of one advantage of a 3D game over a 2D game: greater draw distance than one screen-width, which in many games is about 20 m. But apart from that, what scenarios do only 3D graphics allow for?

"Draw distance" is the distance of the farthest object from the camera before it disappears, in game world units. For example, a platformer might put the leading edge of the scrolling view 384 pixels in front of the character, where 32 pixels represent 1 m. The draw distance in this case is 384 pixels or 12 m. First-person shooters need a long draw distance, but there are stylized FPS games with 2D graphics, such as Nintendo's Duck Hunt and I-Mockery's Kill the Dog from Duck Hunt. But the only way to get lo

I did, and 60 percent of the time, the browser just rendered the "Get Firefox, SeaMonkey, Safari, Chrome, or Opera" text inside the Canvas element. But for those 40 percent of PC web browsers that aren't IE <= 8, allow me to rephrase:

If IE <= 8 market share ever declines, the viable alternative for games is JavaScript and 2D Canvas. Or what am I missing?

Didn't VRML look and behave kind of like Second Life ? I still think both are equally stupid, but obviously some people thought it was worth taking semi-seriously. SL brought much better, dumbed-down tools to build this 3D web, but it's more or less the same thing.

We realized that 3D graphics in the browser were stupid and useless back in 1995, when the VRML hype was much like the HTML5 hype is today.

There are a few differences.

VRML was never really an industry standard, it evolved from an SGI project and was adopted by a few other companies. There were competing technologies that seemed better, but were mostly closed. In any case, they required browser plugins that were large, clunky, and crashy.

At the height of VRML's popularity, there really weren't any standards for desktop 3D acceleration. Getting decent performance from a VRML browser required a pretty fast machine, and the graphics were very crude even then.

Now we have an industry standard backed by the group in charge of HTML, ridiculously fast 3d hardware on even low end desktops, and, with the modded FireFox and Webkit backends, integration with the codebase.

Regardless, what you've said still doesn't change the fact that this is generally a useless technology.

That's what people said about 3d desktops, now every major OS has some 3d elements in the UI. I don't see an immersive 3d environment in a browser, but I do see 3d elements being useful for the display of some types of data, and navigating through certain types of datasets.

Most video operations don't benefit at all from 3D graphics; they inherently need 2D acceleration.

If you can put a video on a 3d surface, you can pipe it through the GPU to speed up deinterlacing, interpolation, scaling, etc... All modern video a

We realized that 3D graphics in the browser were stupid and useless back in 1995...

...and slow! I was there when VRML was landing (just finished high school) and all I saw it used for were virtual rooms were avatars would talk in a 3D IRC like environment. Only big problem back then was we didn't have 3D acceleration and the interface was clunky and painfully slideshow like in speed.

As for uses, I could think of a few and have already started coding them. Instead of loading a PNG or GIF, it is pretty nice to be able to download a float array, be able to display it, and allow a user to interrogate it. Giving a user that kind of capability in the browser while not requiring them to download an application or a browser plugin is pretty darn nice. And while not mainstream, scientific fields could greatly benefit from something like that.

Does this mean this technology will be used strictly for 3D images/scenes, or when they say 3D are they referring to gaming?

Obviously and according to TFA, they're referring to 3D images/scenes. Gaming would require, amongst other things, browser-support for raw input devices, (at-least partial) server-side magic for processing interactive events. While these are definitely possible, they're not what this is about.

Depends on what you mean by “gaming”... a lot of games can be played with the keyboard and mouse, and without connecting to a server at all. And Ajax can be used when the server is needed.

What I find more interesting, though, is that this would reveal the source code of your game to a much greater degree than, say, a Java applet does... allowing people to perhaps hook into or modify your code in order to cheat. An attempt to create anti-cheating measures would be interesting, to say the least.

Player 1 uses a keyboard and mouse. Player 2 uses what? Per the same origin policy, applications running in web browsers do not connect peer-to-peer, so communications among the separate PCs, one for each player, will have to be bounced off a server through AJAX or Web Sockets as in an MMORPG. Latency probably won't be good enough for a twitch-fest first-person shooter.

An attempt to create anti-cheating measures would be interesting, to say the least.

It would involve running a copy of the game simulation on the server and synchronizing the two instances through AJAX or Web Sockets. Then

A different computer. And yeah, you’re going to have to use a server to do this, which means you’ll have latency, and it probably won’t work well for certain types of games, which is pretty much what I said before.

It would involve running a copy of the game simulation on the server and synchronizing the two instances through AJAX or Web Sockets. Then the server can tell when the player does something he's obviously not supposed to.

Many forms of cheating are undetectable by the server. Wallhacks, aimbots, and full-scale botting... these are not easily detectable on the server. (Wallhacks are easily preventable by not sending the client the information about the other side of the wall... but preventability i

All commercial FPS need some kind of server, even if it's one of the players' PC (as in LAN games).

I'm not aware of anything in the Web Socket API that allows an end user to open a web socket for incoming connections. The server has to be a separately installed application, and if you're requiring the end user to install that, you might as well have a separate app for the game too.

But that's only required if you want to play LAN games (thus needing to run your own server). You don't need to accept incoming connections if you're playing online using the devs' server, which is how these games are going to be distributed anyway.

And even "standalone" games are starting to require internet connections even to play in LAN (see Starcraft 2).

What I find more interesting, though, is that this would reveal the source code of your game to a much greater degree than, say, a Java applet does... allowing people to perhaps hook into or modify your code in order to cheat. An attempt to create anti-cheating measures would be interesting, to say the least.

Not really, you just leave the client as a glorified renderer and do all of the core game logic on the server side, like in Game! [wittyrpg.com].

You’re trusting that the clicks and keystrokes that the client says it received were actually performed by a player, not a bot. When the bot can directly hook into your Javascript functions and the objects in your 3D environment, it’s significantly easier to build than it would be if it had to capture screenshots and scrape the information from those. So you’d naturally want to detect and/or avoid these sort of hooks. (Randomizi

so this means that in the near future ill have to have quad sli pci-e cards with 1tb of ram and a few extra powersupplies to render all of the popup/under/over/through ads.

but really, someone educate me... why would anyone find 3d rendering in a browser useful? its almost certainly not going to be able to compete, quality wise, with any recent high end graphics renderings (lightwave/maya, etc)--- and with modern compression schemes and encoding formats and everyone having broadband, why wouldnt someone just

In the article they said they demoed a version of the wikipedia page for Venice and a user could walk around a scene of one of Venice's cathedrals in browser. That is pretty cool, but I agree it will go through the same thing that flash and midi music went through when they got added to the browser: there will be overuse everywhere for 5-10 years until web designers finally take back control from their clients and get back to designing good looking useful interfaces that only use 3D scenes when it really ma

I know: 3D chat rooms! Or even better, chat rooms are sooo 20th century: let's make a 3D social network! You would create your own avatar, purchase a house, meet with friends... It would be like a second life, but online!

Removing my tongue from my cheek for a second, if that's the usage it will get, I can't see how it would succeed when VRML failed doing the same (albeit slower) 15 years ago.

How about just a 3D product model when you're looking at a new widget? A 3D map of where a place is? Hell, just simple games in more than two dimensions? There are lots of places where 3D can really enhance information. It doesn't have to take over the entire interface like with Second Life and how VRML was positioned.

why wouldnt someone just embed a higher quality video into their site instead of rendering 3d inside of the browser?

Sheesh people, it's not like we're speculating about something totally new here. There are lots of popular 3d web apps [miniclip.com] already (such as this game, which should make the point of "why render in the browser" obvious). This is just a new language for doing it.

Why would you want to play a 3d game in your browser when you could run a native app instead? Why should we use the web for anything other than hypertext, when a native app will always work better? All this is doing is turning your web browser into an OS, but you've already got an OS. More layers of abstraction means more bloat and more bugs. No thanks.

Because I don’t want to run a.exe that I downloaded off the web from some site that I don’t trust.

I trust my browser to put a layer of abstraction between the code and my computer that will prevent it from doing anything malicious. This is not always completely safe, but it’s safer than running the.exe.

We've had 3D graphics for YEARS in browsers. It is called VRML and it is a standard that has been with us since the early days of graphical browsers.

But the real question is who in their right mind will develop anything as ephemeral as a web page with this complicated technology? The time investment involved to come out with even the simplest of models is enormous. Maybe not John Pinette enormous, something smaller like Louie Anderson enormous.

Just like Second Life, the 3D web is not something people actually want, but more something which makes sense to old fashioned journalists who write for old fashioned media.

They think it sounds great. Looking at pretty things instead of reading boring stuff is in their eyes the ultimate evolution of computing. That's why you keep reading this sort of stuff all the time. But it will never stick, because in reality, it's just not very useful.

Just like Second Life, the 3D web is not something people actually want

The 50K people logged in [secondlife.com] right now would seem to disagree. Right now it's a fairly low activity time, should go up later. And from the inside it seems to be still getting larger.

They think it sounds great. Looking at pretty things instead of reading boring stuff is in their eyes the ultimate evolution of computing. That's why you keep reading this sort of stuff all the time. But it will never stick, because in reality, it's just not very useful.

I see it in a different way. Not everything has to be a revolution. Back when there was a lot of news about SL there was a lot of hype for sure, but there must be some use to it, since it didn't die when it stopped getting talked about so much. Some people see no point in SL, that's perfectly fine. I see no point WoW either, but that doesn't make it a failure just because it fails to appeal to every person on the planet.

I think this will be in the same way. Uses will be found for it. It won't be a revolution that will change every website everywhere. Not everybody has an espresso machine, and not everybody is going to have 3D on their website, but that doesn't mean those aren't useful things.

I don't see this as a technology to dominate the web experience, but rather to enable things like running a first-person-shooter or other games, or perhaps other special-purpose applications, but games would be the broader case.

I don't think that the point of 3D graphics in a browser is to build entire websites as 3D environments, but rather to have specialized sections of websites where they are applicable. For instance, fully rotatable views of items that you might purchase. Aside from being cumbersome to program, VRML wasn't nearly good enough to do something like that. This might be, however. I think that this technology, especially combined with the canvas tag, has the potential to do a lot of good for the web.

That may or may not be true. On the one hand the GPU doesn't have an OS so there isn't any protection of memory from any program which seems like exploitation might be pretty trivial, but GPU code doesn't have access to the disk drives or to CPU memory, so it would be hard to craft an exploit that did anything other than crash the machine. IMO.

The name of the Debian version of Firefox is Iceweasel. Based on that, I'm assuming that the Mozilla Corporation is going to exercise their trademark and kindly request that these researchers think of a better name for their fork of Firefox that incorporates XML3D.

If successful, it wouldn't surprise me to see the Mozilla folks include this feature in a future release of Firefox.

I'd propose "Cerberus" as the name for their forked version of Firefox that has XML3D rendering capability. Cerberus is is three-headed dog that guards the gates of Hades. After all, Hades has lots of fire and the connection between foxes and dogs is tangible (they are both canines, AFAIK).

If successful, it wouldn't surprise me to see the Mozilla folks include this feature in a future release of Firefox.

Heaven forbid, please no!

We don't need a rendering engine for every arcane formalt ever developed incorparated into a browser that's deployed on millions of desktops. Just remember, each supported protocol adds new complexety, new errors and with this new secutiry-issues that'll lead to exploits, bad press, compromised machines and painful bugfixing.

Stuff like this should never be part of the browser, it should be an addon.

I've searched the web but I can't find any picture of an image rendered with RT Fact. The news are repeated in various news sites, as always, but none of them has a single image of the 3d engine output.

Try the PC World [pcworld.com] article. FWIW RT Fact is a 3D ray tracing engine. I guess they integrated it into the browser somehow. But saying it does not require a plugin? Eh seems strange to me. I thought RT Fact was written in C++ with x86 assembler intrinsics.

Because rasterization 'with all kinds of ray tracing like effects' is a bitch.

Shadows alone are extremely complicated in a rasterizer, with special cases for self shadowing, for when the camera is within a shadow or not, when something reflective is being rendered, when something refractive is being rendered, and so on and on.

Essentially nobody has EVER made general purpose rasterizer that flawlessly supports shadows in concert with all the other 'ray tracing like effects' and it is likely that nobody e

I understand that ray tracers are better than rasterizers in terms of simply modeling real light transport, but I don't think that realtime ray tracers even come close (I could be very wrong, and if so I'd like paper refs because I'm studying this area at the moment). Some error in the rasterizer is ok as long as it looks good, it doesn't have to be physically plausible. As soon as you start adding ray traced inter-reflection, refraction, global illumination and such you are well outside the realm of a real

I think quadelirus was talking about doing the rasterization [wikipedia.org] on the client using triangle-mesh-based methods like WebGL, speculating that WebGL would be faster than even GPU-accelerated ray tracing.

You posted as anon - I do hope you bookmarked and come back to check for replies, though.

I think you misunderstood the meaning of the word 'rasterisation' here.

In overly simplistic terms... rasterisation is what your gaming card / console does whenever you play a game of Modern Warfare 2, HALO, etc. This is unrelated to pre-rendered content.http://en.wikipedia.org/wiki/Rasterisation [wikipedia.org]

Yes, Rasterization vs. Ray Tracing presents a trade-off between speed and quality. Obviously truly ray traced scenes with nicely modeled materials and light sources will produce better images than rasterization. In this case, however, we are not talking strictly about ray tracing vs. rasterization. We are talking about real time ray tracing vs. rasterization. Real time, meaning that we are assuming a lower bound of, say, 15 fps (this is pretty poor, but just to pick one). At that speed (or faster) rasteriza

Anyway, I still want the question answered. As far as I know (and I'm a graphics researcher--though a relatively new one, so I'm still learning) real time ray tracing is really not nearly as good as rasterization in terms of quality for a real time frame rate on reasonably fast consumer hardware.

From TFA:

There are two ways to generate a three-dimensional image for a two-dimensional screen: rasterization and real-time ray tracing. What the researchers have done is developed faster software for performing real-time ray tracing, which is also aided by today’s faster processors, Slusallek said.

They’ve integrated that real-time ray tracing technology, called RT Fact, into Firefox and Webkit, the rendering engine for browsers such as Safari and Chrome, Slusallek said.

RTFact is based on a research paper from the University of Saarland. The paper describes the implementation of a generic real time ray tracing framework with source code in C++. The goal or objective is an interactive real-time ray tracer.

From the different implementations I researched (Manta from MIT, OpenRT, Arauna, RTSL, plus many more), RTFact is by far the most legitimate implementation. There are a million papers out there on interactive ray tracing, but only a few really take into conside

Shockwave already has full 3D capabilities. Here's s reasonably good 3D scene, a haunted house. [3drt.com]
Shockwave in current use; both Disney and Dreamworks have 3D promotional games for upcoming movies, and Porsche has a car configurator. It's possible to do a reasonably decent game in Shockwave.
Unfortunately, Shockwave seems to be associated with crap sites full of ad-heavy low-end games that keep trying to download additional plugins.

A big downside of Shockwave is that, unlike Flash, the whole file has to