davepermen said:
The Next BIG Thingy in Real-Time Graphics
#61
Posted 20 November 2004 - 08:20 PM
#62
Posted 21 November 2004 - 04:21 PM
shaders will have the same performance as on a rastericer gpu (as it essencially has the exact same hw logic).
flexibility. rastericers don't have much flexibility as well. they can rasterice triangles, lines and points onto rectangular buffers, sample textures, and have two places with shaders.
the raytracer can raytrace triangles onto rectangular buffers, sample textures, and will soon have one place with shaders. so where's the big difference ?
oh, and it works great together with opengl btw..
-Loving a Person is having the wish to see this Person happy, no matter what that means to yourself.
-No matter what it means to myself....
#63
Posted 21 November 2004 - 05:50 PM
davepermen said:
davepermen said:
davepermen said:
davepermen said:
#64
Posted 22 November 2004 - 10:25 AM
I want to get this topic back to The Next BIG Thingy in Real-Time Graphics but before that, just a passing thought to the two friends.
Altair..."Wrong and right" reply for "performance has nothing to do with rendering quality" is perfect as the two factors will still decide how the chip is (sells) as a whole. Also Daveperman... I dont think the discussion here is about if SaarCOR is good. Its hardware that does real rime ray tracing!! it will obviously be a better overall performer (if implemented well) than software counterparts. I think what Altair wants to argue is that if its good enough. Good enough for the time & money that will need to be invested for the development of this. Am I correct?
Well anyways. Coming back to The Next BIG Thingy in Real-Time Graphics I am surprised nobody has talked anything about Volumetric Rendering. (Sorry I joined in late :D ). Lets divide the rendering in two parts One where we do the lighting, shading & effects like shadows & the other part... Modelling. Honestly guys you got to admit.. we FAKE! I mean we know that every sphere that we render is in fact not a sphere, it is a closedfaced set of 2D Polygons. We fake when we say its 3D when we know that its hollow inside. Probably the next big thing, or the next big thing to the next big thing would be when we do the modelling to that LOD that we do layers inside a primitive, think of this... there is a wall (Ah.... no not a textured rectangle) We have detailed the wall to that level that we have layer of bricks of porus material (Ya no more bump maps lets call it 3D Porus material) which is brought together with a layer of thickened cement. & BOOM there goes the rocket from the rocket launcher. The wall (made of volumetric elements) breaks into small peices. There is a real time physics engine that will compute the the impact, breaking of the group of wall elements & what the hell... it will also compute the scatter of each of the voxel. The possibilites are unimaginable!
We can even have water / blood rendered out of small voxels where a realtime Computational Fluid Dynamics engine which will compute the flow.
Ahhh... They say I like to dream :D
But I say I dream thats why I can do! :D
#65
Posted 25 November 2004 - 07:29 AM
but it's okay. you don't even try to think about what i state, and just state me dump instead.
-Loving a Person is having the wish to see this Person happy, no matter what that means to yourself.
-No matter what it means to myself....
#66
Posted 25 November 2004 - 03:16 PM
#67
Posted 29 November 2004 - 12:27 AM
just look at the whole shadow issue. there is no simple 100% working, fast, and scalable solution on gpu's yet.. and gpu's are old today.. isn't that depressing?
raytracing can handle in a clean and natural manner all sort of effects in direct, and indirect illumination situations. it can handle gi well.
rasterisation has not yet proven it can. sure, it can get managed well for movies, but heck, they still render with about 20minutes per frame. thats FAR away from todays gpu's. if we look at saarcor, thats much more close:D its in the near-to-realtime speed for gigantic meshes, it can illuminate them with nice gi, and shaders are just a bit of hw that you could copy from gpu's today. the same parallelity would still exist, only coherence effects (texture cache comes to mind) would get issues.
it looks like you have no clue how far we are away from natural illuminated and rendered scenes.. its quite far. todays images look good, but to get closer to 'the solution', we have to add a lot of additional work onto the gpu (near to 1 render per pixel.. this is not scalable). they can (and do) this in scenarios for movie-renderings. accurate reflections get more or less raytraced with a rastericer for the intersections.
if you read enough about what gi involves, and start to look at the real world again, you notice how much just depends on reflections. every surface gets reflections, that change it's look. often its rather diffuse, and only a bit, but it mathers to detect what sort of material it is. brdfs are highly complex for all sort of materials, and they all need accurate input from the whole surroundings to get an accurate shading output. you can fake that more or less. but only raytracing can give the real input values for your shaders to give the correct output.
i don't see problems in raytracers. if you finally compared the hw of saarcor to the hw of a gf6 (only hw features), and do the math, then you notice that there is a hw-speed difference of a factor 50 to 90 (depending on how you do the math..).
now scale saarcor by a factor 50 in speed (raytracers scale well, you know that yet), and take the other numbers and images on www.openrt.de and you can start imagine what a saarcor with nvidia hw technology in the back-ass would be able to do.
one simple statement: the term "interactive global illumination" would not exist anymore. they could call it "realtime global illumination".
but you fail to, for one time, look at it and _CARE_ABOUT_WHAT_YOU_SEE_. (oh, you should read all the papers..).
i'm tired of saing the sam over and over again, but i got trained as i talk about it since quite long.. i feel quite lonely at my position, people are trained to believe in rasterisation and gpu's, they get trained by their jobs, by the nvidia and ati marketing, and the fact that "everyone around uses it, too..". they don't even bother to look around and 'restart thinking'.
-Loving a Person is having the wish to see this Person happy, no matter what that means to yourself.
-No matter what it means to myself....
#68
Posted 29 November 2004 - 12:28 AM
i had now nearly one week no pc.. now i have a new one.. athlon 64 :D
-Loving a Person is having the wish to see this Person happy, no matter what that means to yourself.
-No matter what it means to myself....
#69
Posted 29 November 2004 - 04:43 AM
davepermen said:
Quote
heck, just getting something as basic as transparency right is such a drag in rasterization...with raytracing, the issue becomes elegantly moot...so too, the issue with pixel overdraw...occlusion culling is inherent!
Quote
Quote
it looks like you have no clue how far we are away from natural illuminated and rendered scenes.. its quite far. todays images look good, but to get closer to 'the solution', we have to add a lot of additional work onto the gpu (near to 1 render per pixel.. this is not scalable). they can (and do) this in scenarios for movie-renderings. accurate reflections get more or less raytraced with a rastericer for the intersections.
if you read enough about what gi involves, and start to look at the real world again, you notice how much just depends on reflections. every surface gets reflections, that change it's look. often its rather diffuse, and only a bit, but it mathers to detect what sort of material it is. brdfs are highly complex for all sort of materials, and they all need accurate input from the whole surroundings to get an accurate shading output. you can fake that more or less. but only raytracing can give the real input values for your shaders to give the correct output.
Quote
now scale saarcor by a factor 50 in speed (raytracers scale well, you know that yet), and take the other numbers and images on www.openrt.de and you can start imagine what a saarcor with nvidia hw technology in the back-ass would be able to do.
Quote
but you fail to, for one time, look at it and _CARE_ABOUT_WHAT_YOU_SEE_. (oh, you should read all the papers..).
i'm tired of saing the sam over and over again, but i got trained as i talk about it since quite long.. i feel quite lonely at my position, people are trained to believe in rasterisation and gpu's, they get trained by their jobs, by the nvidia and ati marketing, and the fact that "everyone around uses it, too..". they don't even bother to look around and 'restart thinking'.
analogy: look at the way scripted "physics" has completely given way to interactive physics...I'm sure there must've been the naysayers decrying the impracticability of it, but look how far desktop physics has gone...bang-for-the-GPU-cycle-wise, raytracing represents a quantum leap over rasterization in performance and quality.
you're not alone, dave...I'm a firm believer that raytracing will rule the day pretty soon.
#70
Posted 29 November 2004 - 07:26 PM
davepermen said:
Sure you can illuminate meshes with GI in raytracing, but for what cost? You make it sound like GI (or reflections/refractions for that matter) are almost free in raytracing, so you have either no clue how it's done or are intentionally giving totally biased claims. Have you even had a thought how much data you need to access per ray to find intersections?
If you had decent understanding of GPUs you would realize that shaders take vast majority of the die size and are not just "a bit of HW". The proportional size of shader HW is nothing but increasing. If you want to have good idea how graphics HW should evolve, you need to understand how it's currently working. You should spend some time in getting into details of current GPUs so that we could have meaningful debate.
#71
Posted 29 November 2004 - 10:48 PM
because there are BENCHES and TESTS with GI SOLUTIONS BASED ON RAYTRACING, AND THEIR COST!
sorry that i cry, but i get really annoyed. they have what they call realtime raytracing, and at the same hw configuration, they can get, what they call, interactive gi.
read up on it, read those papers if you really want to discuss with me. there is the cost. yes, gi is slower, but no, not by much. more something of the sort "uh, i can play the game at 640x480 smooth with raytracing.. lets enable gi.. uhm, about smooth on 320x240.. but what the heck, now i can actually SEE something in 'doom3 openrt edition'.
the numbers are there, those are real tested live numbers (some are just old and hw got faster), they give you your questioned estimate. gi is slower, sure, but if you design right, you can make it very scalable, from no gi, up to perfect montecarlo gi with a blendfactor that scales the quality from the first to the last. this is what openrt more or less provides in the interactive gi demos, and its set to a quality level that makes it interactive.
what i mean with shaders is, they are the same bit of hw on a rasteriser as on a rt-gpu. _THATS_ what i mean. i don't say they don't cost much. but if you have to shade the intersection result of 1024x768 rays with a shader, it will be as much as rendering one fullscreen image with a shader on a rastericer. THAT PART OF THE HW IS EQUAL IN LOGIC. so it equals itself out of the whole equation.
thats what i talk about.
oh, and i know in detail how todays gpus work. thats why i don't believe in them anymore at all.
-Loving a Person is having the wish to see this Person happy, no matter what that means to yourself.
-No matter what it means to myself....
#72
Posted 30 November 2004 - 02:02 AM
davepermen said:
davepermen said:
davepermen said:
davepermen said:
davepermen said:
edit: Oh, and almost forgot. Since you are big fan of scalability and output sensitive rendering, check out Hybrid dPVS. It's an output sensitive visibility system that you can use with GPUs. It doesn't rely on GPU visibility support so it does bunch of redundant work on CPU AFAIK.
#73
Posted 01 December 2004 - 02:41 AM
Rasterization techniques at best lend themselves adequately to simplified local lighting models eg. per-pixel direct diffuse/specular lighting.
Global effects like reflection, refraction, caustics, inter-reflected diffuse, soft shadows with translucency etc require elaborate schemes just to obtain approximate results, often with varying degrees of restrictions.
Raytracing takes care of these effects in a most intuitive, straightforward manner...freeing developers to concentrate on other more pressing challenges in an increasingly complex development environment.
One could also ask the question "at what price?" to the assertion that rasterization can also approximate, albeit with limitations and substantial computational costs, complex global effects...how much monstrous computing capacity must rasterization consume in order to come close to the interactivity and fidelity of complex effects of which raytracing only exacts a fraction? and how many more research papers need be churned out expounding yet more ways to fake/approximate certain aspects of visual effects in isolation from the full gamut of all the global factors?
#74
Posted 01 December 2004 - 03:45 PM
Probably the largest contributor to the performance of this generation GPUs is the coherency or locality they exploit. If you take for instance huge memory bandwidth GPUs nowdays have, this is possible for the most part because of coherent memory access pattern. IIRC, memory in GPUs is nowdays fetched in 128 byte blocks and introducing incoherency to the memory access pattern will bring the bandwidth to its knees. Another benefit of coherency is that caches for pipelines can also be kept minimal which in turns makes adding more pipelines adequate. If you think how much effort has been put into increasing coherency even with current generation GPUs which utilize already inherently coherent technique, rasterization, it's amazing. Only place where raytracing inherently beats rasterization in memory coherency is the way it accesses framebuffer, and even for that GPU designers have went great lenghts to improve it (z-cull, swizzling, quad pipes, etc.)
Now, on top of memory coherency, there is also coherency in shaders (GPUs can be setup with only single shader at once), shading (quad pipes rendering adjacent pixels with similar interpolated shader parameters which therefore can share computations), textures (TMU setup & memory access), vertices (vertex cache), triangles (triangle setup) and what not, which in turn makes monsterous throughput of GPUs possible.
With raytracing you sure can exploit some coherency (IIRC, SaarCOR chip does this by tracing 2x2 block of rays at once), but as I see it, it's WAY more difficult, because raytracing is inherently incoherent way of rendering. Even the seemingly simple tracing of 2x2 rays has its fair share of problems alone (diverging rays in the traversal of spatial data structure). I'm sure there are many other ways to improve coherency in raytracing than what SaarCOR does, but trying to exploit it in turn makes the hardware much more complex.
I sure find those inherent global effects of raytracing attractive and it's quite elegant how they are handled, but when faced all those potential problems, I'm not convinced at all that it's good way to go. Most of the effects raytracing solves are also quite subtle in common cases where cheap approximations do work just fine, so I don't find it well justified to invest loads of processing power for that. At very least it should be optional, but in that case you would need to bring those expensive shaders (in terms of transistors) to the raytracing HW.
You also mentioned how rasterization tries to solve those global effects and which are restricted in a way or another, but raytracing is also very specific in the way it skins the cat. Raytracing requires the higher level knowledge of the rendered environment, whose representation in rasterization is completely free. You can, for instance, with rasterization GPUs generate and render the scene in the way it's most appropriate.
#75
Posted 02 December 2004 - 11:56 AM
Altair said:
davepermen said:
i ment that all the time. just you never got it.
-Loving a Person is having the wish to see this Person happy, no matter what that means to yourself.
-No matter what it means to myself....
#76
Posted 02 December 2004 - 02:21 PM
davepermen said:
davepermen said:
now scale saarcor by a factor 50 in speed (raytracers scale well, you know that yet), and take the other numbers and images on www.openrt.de and you can start imagine what a saarcor with nvidia hw technology in the back-ass would be able to do.
#77
Posted 03 December 2004 - 03:06 AM
To be fair, SaarCOR is not even out of its prototyping diapers yet...while rasterization clearly has had the benefit of relentless and exclusive development in the mainstream realtime 3D industry all these years. But by any standards, SaarCOR is already showing precocious signs of promise.
We should only really start comparing the 2 in earnest when SaarCOR debuts...the issues SaarCOR faces now could well become moot in time, who knows?
Anyway, the point I was trying to make isn't so much on rasterization performance vs raytracing performance but the sheer complexity of development on rasterization platforms vs that of raytracing.
Even for something as basic as transparency, the rasterization approach throws up sorting issues, which despite the standard back-to-front tactic, is generally not robust(eg. intersecting polys between transparent objects or intersecting polys within a transparent object). Then there's the sorting overhead when you run up to hundreds, even thousands or more objects. There's depth peeling for order-independent rendering, but that's 1 heck of a complicated approach just to render transparent polys, notwithstanding the hefty processing overheads.
Speaking of reflections, if 1 object requires 1 cube map, then 100 objects require 100 cube maps....that's of course assuming we care about "reasonably approximate"(but not accurate) reflections on all 100 objects. Suppose we don't, then we just use a single cube map to represent the reflections of all the 100 objects...which would not look even half decent since they'd all look the same. So we use 100 cube maps to get "reasonably approximate"(but not accurate) reflections on all 100 objects, and blow our texture budget and frame rate....to make things worse, for serious apps like product visualization, walkthroughs and what not, these reflections might not even pass muster. Oh and don't forget refractions, per-pixel lighting, shadows and a few other million things we have to "tack" on. Development complexity and processing overheads quickly go up the roof...and you start racking your brain to decide which to compromise over what and by how much.
Precomputed radiance transfer comes to the rescue with fancy tricks like inter-reflection, soft shadows, caustics, scattering...but wait, the caveats list is just as long - only valid if objects don't stray too far from each other, only valid for distant environmental lighting, require lengthy preprocessing of transfer vectors...in a nutshell, it's not truly an interactive approach to global effects. Nevermind whether one actually understands the complex maths behind it.
Shadows have an impressive literature of their own...suffice to say that soft-edged, translucent, alias-free shadows in realtime still remain elusive.
One can certainly spend an inordinate amount of development effort in cheap cheats for these effects, but this effort just gets bigger and bigger with rising expectations each year, and reusability becomes more and more difficult, resulting in the familiar "this engine's rendering pipeline has been rewritten from ground up to take advantage of the latest advances in hardware" claim of pride by engine programmers.
In contrast, the raytracing approach to these challenges is as intuitive as can be, simply because it mimics the way light works in real life.
Devoting ever increasing chunks of developer effort on faking ever more impressive visual effects on rasterization hardware is not unlike faking/scripting elaborate physics behavior back when the CPU wasn't up to it...now it seems silly to do it in this day and age of realtime physics engines.
There comes a point when it makes more sense to do things the correct though inherently more computationally expensive way when the hardware is finally there to make it viable, than doggedly sticking with cheaper/limited approximations that just keep getting increasingly complicated and consequently putting pressure on what initially started out as "economical" rendering hardware to evolve into the gigaflops processing behemoths they are today.
Today, it seems a raytracing prototype with just a fraction of the processing capacity of modern day rasterization hardware can easily produce results that rasterization engines will have to resort to tons of approximations/hacks just to come close to.
Going by what the SaarCOR prototype has already shown it is capable of and will be capable of when it debuts, and the elegant ease with which to implement accurate global effects, I'm not at all convinced that rasterization-based engines is the way forward into the future.
#78
Posted 03 December 2004 - 03:45 PM
Melvin said:
To be fair, SaarCOR is not even out of its prototyping diapers yet...while rasterization clearly has had the benefit of relentless and exclusive development in the mainstream realtime 3D industry all these years. But by any standards, SaarCOR is already showing precocious signs of promise.
We should only really start comparing the 2 in earnest when SaarCOR debuts...the issues SaarCOR faces now could well become moot in time, who knows?
Melvin said:
#79
Posted 06 December 2004 - 06:38 AM
Altair said:
Altair said:
Melvin said:
#80
Posted 08 December 2004 - 03:39 PM
About cubemapping, yes, I'm well aware that it's not perfect solution but it's good, simple and efficient approximation which fits the purpose in most of the cases, in other words, it's practical. If you want to deal with dynamic cubemapping, which isn't actually needed that often to give believable impression of interreflectance, you need memory only for a single cubemap since you can recycle the memory for different objects. There are also solutions coming to shortcomings of rendering to a cubemap.
1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users


This topic is locked










