I installed an NVIDIA 560Ti a few months back, and yesterday I tried out the Heaven benchmark to see how it did. It ended up being a solid "okay". Anti-aliasing and SSAO were the biggest fps hog. No surprise there, though I am a little surprised this is still such a big issue. I mean, with anti-aliasing, we have really nice post processing approaches like FXAA and its successor, SMAA, which work like a charm if there is enough meat on the screen to analyze, can be added to any game as an afterthought, and have a nearly imperceptible impact of the framerate, but people never use it. I think Crytek even created a hybrid approach where they use multi-sampling on skinny object like cables, and post processing on everything else to get the best of both worlds. Why not something like that?
Then with SSAO, it's such a crap technique to begin with and looks terrible if implemented poorly. I could see how it might be helpful for dynamic models, but things like buildings? Just bake that on. It's not like it is adversely affected by dynamic lighting, and the extra texture or memory will not hurt nearly as much as doing it in the shader will. Also, it was a visual hack to begin with. There's no way it could ever look as convincing as pre-rendered lighting. Just because you have hardware that can recreate the world from scratch doesn't mean you have to do that. Sometimes the old-school solutions will work just fine.
But the main thing I noticed about the demo is how badly tessellation was implemented, especially with the stones. The demo gives you a slider so you can try out different degrees of subdivision, and it was pretty clear what was going on. All base geometry that would take on tessellation starts out completely flat and uniform. Then, the only way to get details which are better than potato quality under scrutiny, you need to subdivide the geometry up until each polygon is around a pixel in size, and once you've done that you've killed your pixel shader pipeline. They aren't built to efficiently handle microscopic patches of one or two pixels, and are actually rendering a larger area and throwing away most of the results. The GPU manufacturers put a band-aid on the problem by dividing up the shader clusters further so they won't all get stalled on the same polygon, but the underlying inefficiency is still there.
And the whole thing could have been avoided if the slightest bit of care was put into designing the mesh that would take the tessellation. Subdivided polygons are evenly spaced, and the stones are fairly uniformly sized, so if the parent mesh had vertices following the creases of the rocks (and you get vertex placement for free), then you wouldn't need nearly as much subdivision to manifest the shape of the rock. Even better would be to not waste tessellation on walls to begin with. You have perfectly good pixel shader tricks like relief mapping and parallax occlusion mapping (which is per-pixel and so gets cheaper the farther you are from the target). Those techniques are efficient unless you have a large number of ray-marching steps between the mesh and the virtual surface, and showing profiles, but that is where tessellation shines. You could marry the two and have lower-degree tessellation creating an approximation of the virtual surface of however much detail you like, and finishing the job with relief mapping, and let the tessellation take care of the profile.
There's tons and tons of innovation and brilliant solutions to problems in game graphics, but the developers of the Heaven benchmark just said "screw it, let the GPU power make up for our laziness". And so it became a suitable benchmark, because even though the demo should be able to run on older hardware, it strains even cutting edge GPUs by using them as a cudgel. Now, don't get me wrong, there is a lot going for Unigine, but whomever made this particular demo either did not know how to take advantage of what it can do, or didn't care, and that's the part that annoys me.
In its favor, I will say the lighting and colors looked fantastic, especially at dawn and dusk. I don't know whether it was precomputed or on the fly atmospheric scattering, but it was very convincing. And though the shadow quality looked awful on everything but ultra (resolution of the shadow map was the only thing that changed), on ultra it looked pretty great, as well. And I saw that unigine can do global illumination as well. I'd love to see a demo of that.
Fr0stbyte Rants About the Unigine Heaven Benchmark
- fr0stbyte124
- Developer
- Posts:727
- Joined:Fri Dec 07, 2012 3:39 am
- Affiliation:Aye-Aye
-
- Designer
- Posts:397
- Joined:Fri Dec 07, 2012 11:59 pm
- Affiliation:Alteran
- Location:In the Holy Citadel of Altera
Re: Fr0stbyte Rants About the Unigine Heaven Benchmark
Well, that's one market you can find for a game that fails.
This is a signature.
- fr0stbyte124
- Developer
- Posts:727
- Joined:Fri Dec 07, 2012 3:39 am
- Affiliation:Aye-Aye
Re: Fr0stbyte Rants About the Unigine Heaven Benchmark
Right? Same with Metro 2033. It runs horribly on PCs, but because it has such high system requirements people automatically assume it must be state of the art. And it does look good, but Crysis came out 6 years ago for DX9 hardware and still looks amazing. It's no different than playing an instrument. A concert violinist will be able to make a hundred dollar instrument sound better than a novice with a million dollar one. It's all about the effort you invest in making it sing, and too often PC ports get screwed in this regard.
Admittedly, PC is much more difficult to develop for, because you have a massive array of hardware combinations and capabilities and it has to work on all of them, while an exclusive game like Uncharted you can hand craft functions down at the assembly level specifically for a single piece of hardware. When a game is ported, developers tend to stick to out-of-the box engine functionality, and only tweak settings they can do without making major changes, like texture quality and AA options. I get why they do it, but it is still sad to see all that innovation in the industry go to waste.
Admittedly, PC is much more difficult to develop for, because you have a massive array of hardware combinations and capabilities and it has to work on all of them, while an exclusive game like Uncharted you can hand craft functions down at the assembly level specifically for a single piece of hardware. When a game is ported, developers tend to stick to out-of-the box engine functionality, and only tweak settings they can do without making major changes, like texture quality and AA options. I get why they do it, but it is still sad to see all that innovation in the industry go to waste.
Re: Fr0stbyte Rants About the Unigine Heaven Benchmark
Yea, that is actually what I am afraid of in GTA 5 (didn't know the reason but the pattern is quite obvious)
They're watching ... 
"I am forbidden tag" -CvN

"I am forbidden tag" -CvN