Chunky by FelipeFS
Chunky by FelipeFS
GPWiki.org
It is currently Sat Apr 19, 2014 7:37 pm

All times are UTC




Post new topic Reply to topic  [ 12 posts ] 
Author Message
PostPosted: Wed Dec 26, 2012 8:09 pm 
BANNED

Joined: Sun Jun 24, 2012 12:49 am
Posts: 504
What is your opinion on ray tracing? Personally, I believe that even after hardware advancements succeed to make it viable for gaming, it shouldn't be used. In fact, I don't even find it appropriate for offline rendering. Obviously now you understand that I have developed a severe dislike for the technique.

https://www.cs.utah.edu/~jstratto/state_of_ray_tracing/

Researchers persist to conceive of acceleration structures for ray tracing. I disagree with this approach. I think it's rediculous. I assert that real success doesn't happen that way. We need to start by enumerating our goals, then by defining how we will tackle them (i.e. accuracy, style of approach), then conceive of mechanisms which accomplish these goals. No, ray tracing has never done that. It is so intuitive yet so naive. Why pickup an arbitrary solution and then try to resolve its incredible issues without a reason for it in particular? Isn't that quite useless? Define what you need and then find out what will give you what you need after. I'm mostly concerning the necessity for a description of the requirements in technical implementation rather than just the desired features of what it implements. My point simply is that researchers must stop trying to fix ray tracing! It's fundamentally broken.

Rasterization seems to be hugely successful because "acceleration structures" or optimizations tend to fit it so incredibly well with the principle of it that we almost don't even consider them -- the core features of modern rasterization algorithms -- as much as equivalent features are valued to researchers of the ray-tracing bunch. A lot of traditional rasterization techniques have proven to be immensely clever, and it's silly how much room there is for improvement. That is why I am looking forward to writing a software renderer, starting with the form of a traditional rasterizer (uh, I mean modern, but by the industry's traditional approaches).

However, I would like to stress how much room there is for "improvement," and that the improvement is not necessarily evolution, yet revolution must have a basis (i.e. modern rasterization) to revolve about. The next greatest achievements in graphics programming won't exactly be in the same direction we're going now, but I also think it is very absurd to say that the new direction will be ray tracing.

So that SVO stuff, right? Actually, none of that either. However, such a discussion is for another day. I have already debated on the future of voxels (quite victoriously) in another community, which I don't believe is as bright as some see it to be. Though it is important to note that some of common the goals of voxels are almost completely opposite to ray tracing's goals, in the realm of aesthetics. This is merely a (very broken) generalization of course, but I think you understand what I mean.

Regarding matters of representation, I'm leaning towards a hybrid between the irregular capacity of point clouds, yet with the inherent geometric and procedural features of mesh structures. Also, with a few simple augmentations to the rendering routines, mesh structures may be expressed with the same complexity of fractals and descriptions of other kinds of patterns (e.g. recursive or cyclic indexical composition).


Top
 Profile  
 
PostPosted: Thu Dec 27, 2012 5:18 pm 
Fish Doggy

Joined: Thu Sep 09, 2004 1:17 pm
Posts: 1738
Location: burrowed
Uh that's a tough one. I havent looked too far into raytracing and it's ups and downs, but i certainly wouldn't dismiss it. We're currently lacking the processing power (and perhaps hardware based optimizations) to raytrace modern games in realtime, but we're certainly getting there. That would result in no more faked or estimated light/shadowmaps, realtime radiosity, actual reflections as compared to cubemaps, and perhaps even more. Sure, it feels like bruteforcing it, but it is still a viable method once given the hard and software to support it in a greater extent.

As for voxels, i'd imagine raytracing pointclouds would be far quicker and easier than generating voxel meshes (if you're not doing texturecubes like minecraft). You don't need to regenerate meshes when one voxel changes and you can have decent and accurate transparency easily.

but yeah, currently? no.

_________________
Long pork is people!

wzl's burrow


Top
 Profile  
 
PostPosted: Thu Dec 27, 2012 7:59 pm 
BANNED

Joined: Sun Jun 24, 2012 12:49 am
Posts: 504
wzl wrote:
We're currently lacking the processing power (and perhaps hardware based optimizations) to raytrace modern games in realtime, but we're certainly getting there.

Pie Man wrote:
I believe that even after hardware advancements succeed to make it viable for gaming ...



CHEESE CAKE wrote:
That would result in no more faked or estimated light/shadowmaps, realtime radiosity, actual reflections as compared to cubemaps, and perhaps even more.

You don't need ray tracing to do any of that. <-- Very very very true but underestimated and poorly recognized fact.

I'm really cool wrote:
It is so intuitive yet so naive. Why pickup an arbitrary solution and then try to resolve its incredible issues without a reason for it in particular? Isn't that quite useless? Define what you need and then find out what will give you what you need after. I'm mostly concerning the necessity for a description of the requirements in technical implementation rather than just the desired features of what it implements. My point simply is that researchers must stop trying to fix ray tracing! It's fundamentally broken.


Quote:
As for voxels, i'd imagine raytracing pointclouds would be far quicker and easier than generating voxel meshes (if you're not doing texturecubes like minecraft). You don't need to regenerate meshes when one voxel changes and you can have decent and accurate transparency easily.

Yes the math for calculating ray-box intersections is extremely simple, but you should have a look here:

http://www.pouet.net/topic.php?which=7295

However these techniques happen to share a few significant issues which raytracing suffers as well (though in different ways).

You can follow up on one implementer of the algorithms in the discussion linked above, here:
http://www.youtube.com/user/shabtronic/ ... rid&view=0

shab wrote:
Switched to ray tracing the terrain. Meshes are great and all - but really messy when it comes to seam blending and LOD (clip mapping, roam e.t.c). Meshes also distort the landscape topography and just bring a load of pain.

I tried various methods - ray marching, cone step mapping and relaxed cone step mapping - but they were all way to slow, and I stumbled onto a much quicker method :)

So the entire system is now 1 tiny shader - no meshes at all (apart from 2 tri's to get the fragment running). Took a lot of work to get this running at speed - currently runs at 50-60 fps on my nvidia 320m (48 oldschool shader cores) at resolution 1280x720p - which is well withing my GPU budget. The draw distance and detail is crazy and just totally trashes mesh based rendering (utube compression kills the detail - so u can't really see it).

There's no LOD switching on this at all everything is rendered with the same detail so it's completely seamless. The planet curvature is faked along with the horizon gradient - needs a bit of tweaking to make it look good, but it works quite well. Nothing is pre-computed apart from the noise texture - every thing created in realtime - no messy caching schemes or hairbrained algo's - pure short and simple: lovely :P

Average number of ray trace steps is around 7, towards the end of the vid - I turn on the debugging - Green is less than 7 steps, white to red is 8 to 64 steps.

Would love to see this running on a GTX 690 - 3072 cores - could probably render at 4k x 4k :P


Of relevance to our discussion:
http://artis.imag.fr/Membres/Cyril.Crassin/
http://maverick.inria.fr/Publications/2011/CNSGE11b/


Top
 Profile  
 
PostPosted: Tue Jan 01, 2013 4:34 pm 
Gamer Geek
User avatar

Joined: Wed Jun 20, 2012 4:03 am
Posts: 32
I only know one thing about raytracing: I am in 3d business since about 15 years, and with every single release of every single raytracing package, i read in the changelog: 'raytracer now up to 20% faster', after 15 years and a new version about every year, it should now render faster then i could press the render button, unfortunately it still takes hours :spin - so i guess we'll stick with rasterization for a wile :lol

_________________
My projects: Gamvas Web - html5 canvas game framework| sge2d - C/C++ 2D SDL game framework


Top
 Profile  
 
PostPosted: Tue Jan 01, 2013 4:41 pm 
Bibliotherapist
User avatar

Joined: Wed Nov 03, 2004 1:28 pm
Posts: 7004
Location: Wilts, Englandshire
I looked at the latest version of Lightwave recently. There's a near-realtime preview now. :eek I remember being excited about solid shaded previews that needed a specific Matrox video card back in the days of TrueSpace.

I meant to reply to this before, my 2c:
I don't think raytracing will ever be fast enough for 'proper' realtime stuff, but it's the nearest thing to a 'real' image. Anything else is shortcuts or smoke and mirrors.

_________________
10 PRINT "Bad Monkey ";
20 GOTO 10


Top
 Profile  
 
PostPosted: Thu Jan 03, 2013 6:24 am 
BANNED

Joined: Sun Jun 24, 2012 12:49 am
Posts: 504
Quote:
so i guess we'll stick with rasterization for a wile :lol

Not as if "rasterization" as it is traditionally implemented is the only imaginable object-order rendering algorithm, or even the only alternative to ray tracing... right? ;)


Codehead wrote:
I don't think raytracing will ever be fast enough for 'proper' realtime stuff, but it's the nearest thing to a 'real' image. Anything else is shortcuts or smoke and mirrors.

I disagree with both of these opinions. With continual increases in hardware power and further software optimization, it will surely be fast enough for "proper realtime stuff" eventually...

Quote:
Anything else is shortcuts or smoke and mirrors.

Of course -- for the sake of clarification -- any ray tracer can be in that category (as the majority are), but this declaration doesn't affect the truth of your statement. Also, shortcuts aren't bad. Optimization (i.e. shortcuts...) is good. Your statement is plainly a fallacy and your opinion, as exhibited by your statement, appears quite tacitly imagined to me.

Quote:
The most important thing to consider is that, while these methods can produce hyper-realistic images, they can only do this when given a scene with point light sources, and perfectly shiny or perfectly diffuse objects. Now, unless you are some kind of rich simpleton, your house probably isn't full of perfectly shiny spheres and point light sources. In fact, unless you live in a universe with completely different physics, your house probably contains hardly any super-sharp shadows.

It it quite common for people to claim that ray tracers and other renderers produce 'photo-realistic' results. But imagine someone were to show you a typical ray traced image, and claim it was a photo. You would claim in return that they were blind or lying.

It should also be noted that, in the real world, it is still possible to see objects that are not directly lit; shadows are never completely black. Direct Illumination renderers try to handle such situations by adding an Ambient Light term. Thus all objects receive a minimum amount of uni-directional light.

Location: http://freespace.virgin.net/hugo.elias/ ... iosity.htm

In fact to date light propagation (including any other sort of electromagnetic phenomena) has most often been modelled more accurately by other means. To my knowledge, one sort of these techniques has proven even faster than ray tracing, and is currently being used in popular games today (e.g. Crysis 2 with DirectX 11; http://www.crytek.com/download/Light_Pr ... olumes.pdf) and a more sophisticated implementation will be available in Unreal Engine 4. I have already provided at least one link whereby you can find information on this technique, in my previous post.

http://maverick.inria.fr/Publications/2011/CNSGE11b/


Thanks everybody for your responses so far. :)


Top
 Profile  
 
PostPosted: Thu Jan 03, 2013 5:24 pm 
Dexterous Droid
User avatar

Joined: Wed Aug 18, 2004 7:40 pm
Posts: 3762
Location: South Africa
Pieman wrote:
Codehead wrote:
Anything else is shortcuts or smoke and mirrors.

Also, shortcuts aren't bad. Optimization (i.e. shortcuts...) is good. Your statement is plainly a fallacy and your opinion, as exhibited by your statement, appears quite tacitly imagined to me.

I agree with Codehead. If you're talking about accurately simulating optical effects, you have to ray trace. The smoke and mirrors comes in with other methods because they get results which look good to the human eye but are usually not physically accurate. No ones saying shortcuts are bad - it's obvious that the rasterization pipeline is employing clever and useful tricks. And "tacitly imagined" etc? Is that really necessary?

_________________
Whatever the mind can conceive and believe, it can achieve


Top
 Profile  
 
PostPosted: Thu Jan 03, 2013 6:28 pm 
Bibliotherapist
User avatar

Joined: Wed Nov 03, 2004 1:28 pm
Posts: 7004
Location: Wilts, Englandshire
Quite. Shortcuts are great. As long as I can get the result I want, I'll happily shave cycles off my rendering routines for use elsewhere. I probably didn't make that clear in my post.

Nice to see Hugo Elias' site is still up, I used to go there when I was writing DOS 3D stuff. It's interesting that Hugo states that raytracers tend to only calculate one bounce for each object in the scene. I'm pretty sure that I remember seeing a setting for a bounce limit in many of my rendering packages. Obviously, you have to limit the bounces to render the scene in a reasonable time, but turning up the value produced better images and more accurate reflections.

I've played with global illumination in 3D packages and had always thought of it as working alongside ray tracing, I didn't realise that it was a whole new take on the problem. However, again, it's too slow unless you start cutting corners.

_________________
10 PRINT "Bad Monkey ";
20 GOTO 10


Top
 Profile  
 
PostPosted: Fri Jan 04, 2013 4:30 am 
BANNED

Joined: Sun Jun 24, 2012 12:49 am
Posts: 504
Quote:
If you're talking about accurately simulating optical effects, you have to ray trace.

Nope! Ray tracing is classified as an image-order algorithm. It is still (and perhaps only) possible to get object -> image one-to-one accuracy without a purely image-order algorithm. :thumbs
Also, this is false despite the existence of alternative algorithmic approaches that share the premises of ray tracing (i.e. discrete light paths). If you want to talk about accurately simulating optical effects, ray tracing should be considered a naive hack. Speaking of ray tracing as a mapping rather than an algorithm, it's a messy injection of light paths into screen-space (whereas a similar technique such as beam tracing is a more accurate). It's absurd to call this accuracy. It's brutal.

The importance of object-space in the prospects of accuracy is demonstrated here (in application to ray tracing; from the aspect of mapping): http://www.cs.uaf.edu/~genetti/Research ... 93/GI.html

Correctness is a different matter. Nevertheless, for the record, many raytracers fail to be physically correct.

Quote:
Quite. Shortcuts are great. As long as I can get the result I want, I'll happily shave cycles off my rendering routines for use elsewhere. I probably didn't make that clear in my post.

Indeed. Inherently, a shortcut is merely a path of execution which arrives at the same destination but in shorter time.

Quote:
It's interesting that Hugo states that raytracers tend to only calculate one bounce for each object in the scene.

Actually, he makes a comparison between radiosity and the Monte Carlo methods of global illumination. Most old raytracers don't implement any diffuse multi-bounce because it would either be horrendously slow to render on old hardware, or without a large increase in sampled rays, it would be pointless. To the contrary, it's pretty easy to simulate multi-bounce specular reflections as long as they are perfectly sharp and not glossy. This is the 'classic' raytraced look.

Quote:
I'm pretty sure that I remember seeing a setting for a bounce limit in many of my rendering packages. Obviously, you have to limit the bounces to render the scene in a reasonable time, but turning up the value produced better images and more accurate reflections.

Me too. From my experience, accounting for "multiple bounces" does not necessarily produce global illumination. Although the simulation of multiple bounces is elemental to the principle of global illumination, I have found that even if a raytracer follows multiple bounces, it may be insufficient for a realistic global illumination effect. There's a lot more to distribution than merely recurrence (what you're distributing and where it is distributed e.g. irradiance and BDRFs). This is where "the Monte Carlo method" is relevant to the topic of global illumination in the context of raytracing.


Let's make a clarification: Ray tracing is not the only technique that models discrete light paths. Also on the behalf of my opinions: in terms of accuracy, image-space is simply inferior to object-space. In terms of performance, I think image-order rendering is usually inferior to object-order, although this comparison is heavily dependent on the situation of the renderer. I believe that it is necessary to develop a new hybrid method.


Top
 Profile  
 
PostPosted: Sat Jan 05, 2013 9:24 am 
Gamer Geek
User avatar

Joined: Wed Jun 20, 2012 4:03 am
Posts: 32
Codehead wrote:
I looked at the latest version of Lightwave recently. There's a near-realtime preview now.


yup, lightwave is my favorite. Thing is though, this 'realtime' rendering thing is available to lightwave users via the fprime plugin from worley labs for years, the speed did IMHO not change in the last years, now its just integrated into lightwave.

Thing is though, it still takes a couple of seconds and they achieve it by reducing or emulating results in time consuming work like global illumination sampling and anti aliasing. I mean 16x anti aliasing is pretty much the standard in today's games, in real raytracing it would mean, rendering the images 16 times, that gonna cost ya ;)

_________________
My projects: Gamvas Web - html5 canvas game framework| sge2d - C/C++ 2D SDL game framework


Top
 Profile  
 
PostPosted: Sat Jan 05, 2013 10:00 am 
Bibliotherapist
User avatar

Joined: Wed Nov 03, 2004 1:28 pm
Posts: 7004
Location: Wilts, Englandshire
I hadn't looked at Lightwave for a good while and I always avoided plug-ins as they used to be sketchy in the early days. My first copy of LightWave was v3.5 for the Amiga back in '94, you can imagine how much things have changed since then.

_________________
10 PRINT "Bad Monkey ";
20 GOTO 10


Top
 Profile  
 
PostPosted: Tue Jan 08, 2013 4:39 am 
BANNED

Joined: Sun Jun 24, 2012 12:49 am
Posts: 504
Yeah, a good number of rendering packages are extending to that kind of capability. I think it's irrelevant anyway. Watch this:
https://www.youtube.com/watch?v=hapCuhAs1nA

Listen to John Carmack's remarks on his 60 fps ray tracer..

So has the ray tracing discussion died? Who wants to discuss the topic of photometry theory and related algorithms?


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 12 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
Jump to:  

Powered by phpBB® Forum Software © phpBB Group