Page 1 of 1
Question about tesselation and Spring
Posted: 27 Sep 2010, 23:37
by Master-Athmos
While it of course is a feature request I'm actually more interested in some facts here. I recently read about tests showing that tesselation even on the current "1st gen" hardware featuring it is more performant than using parallax mapping (while being a superior method in terms of the visual result)...
I'm now curious what it would take to support this in Spring. I guess it currently isn't available as Spring is built upon OpenGL 2 as far as I know and fancy new stuff like that would need V3 (is it already included in the latest version at all?). Could someone roughly outline what needs to be done when switching an engine such as Spring to another OpenGL version or are there even ways to include a feature like tesselation without totally switching the OpenGL base?
Re: Question about tesselation and Spring
Posted: 28 Sep 2010, 08:49
by Beherith
http://www.ludicon.com/castano/blog/200 ... sellation/
P-p-p-posting spree.*
*Free bump courtesy of me, Batteries not included.
Re: Question about tesselation and Spring
Posted: 28 Sep 2010, 10:34
by Argh
Hmm.
At least when I tested it, parallax was actually pretty reasonable.
You sure you aren't confusing that with displacement?
Re: Question about tesselation and Spring
Posted: 28 Sep 2010, 10:43
by Master-Athmos
You can look at it for yourself e.g. here (scroll to the bottom):
http://www.hardware.fr/articles/795-5/d ... x-460.html
Re: Question about tesselation and Spring
Posted: 28 Sep 2010, 19:43
by Argh
In English, for those of us too lazy to Babelfish:
http://www.behardware.com/articles/795- ... x-460.html
What I gathered from that is that if you have a high-end nVidia card, it is probably possible to do displacement mapping in realtime. Us poor ATi users, on the other hand, are hosed as usual

Re: Question about tesselation and Spring
Posted: 28 Sep 2010, 20:29
by Tobi
Master-Athmos wrote:Could someone roughly outline what needs to be done when switching an engine such as Spring to another OpenGL version or are there even ways to include a feature like tesselation without totally switching the OpenGL base?
Usually features are available as extensions. You can query (at runtime) whether the card/driver combo you are running on supports some new feature and if it does, load the entry points and start using it.
Then when you really require a bunch of such features you could actually do a check against the installed OpenGL version, and simply refuse to run with anything lower than a particular version. (Good for maintainability since you can reduce the amount of code paths: e.g. just one instead of one for extension x and y available, one for only x, one for y only and one for no x and no y...)
Disclaimer: This is assuming this kind of thing remained the same with OGL 3 as it was with OGL 1-2. It might be that this isn't the case, I did nothing at all yet with OGL 3. (Did OGL 3 remove the FFP?)
EDIT: also in practice it's way harder than I describe here because sometimes features are reported as supported, but if you attempt to use them the driver switches to software rendering and the performance is gone. Or a feature is reported to be supported but broken in practice. Etc.
Re: Question about tesselation and Spring
Posted: 28 Sep 2010, 23:34
by Master-Athmos
What I gathered from that is that if you have a high-end nVidia card, it is probably possible to do displacement mapping in realtime. Us poor ATi users, on the other hand, are hosed as usual
Why should this feature be "NVIDIA only"? Sure - AMD's DX11 cards don't have the same tesselation power but it's still faster than using parallax mapping in the given situation (not mentioning the follow-up gen getting introduced next month which most certainly will increase that horse power by a factor 2-4)...
That's also why I'd vote for the integration of this once someone actually finds the time to write some engine side shader stuff. As things like that don't happen often skipping parallax mapping might be a good idea in order to have a feature with a higher liftetime. But we'll probably see another follow-up feature until something like that happens...
@Tobi:
Thanks for the info!
Didn't know yet that OpenGL extension were this much compatible in terms of being able to combine them with pretty much any version of the OpenGL base...
Re: Question about tesselation and Spring
Posted: 29 Sep 2010, 02:28
by Coresair
Those of you who are in doubt of the absolutely stunning effect tessellation can have (And have a DX11 or OGL 3/4.0 capable card), try the unigine heaven 2.0 benchmark. It also allows you to see exactly how and when the geometry is being modified. You can also tweak the levels and the distance to gauge how it performs in many cases.
Obviously the caliber of tessellation as used in it's extreme mode, while extremely beautiful, has no place in an rts; more subtle use in the environment can have a nice effect too. Whether or not the more practical use has a major advantage over alternative methods such as parallax mapping is a good question.