Announcing Tesseract... |
by eihrul
on 04/18/2012 00:48, 137 messages, last message: 08/19/2013 16:01, 177990 views, last view: 10/13/2024 02:43 |
|
What is Tesseract? Tesseract is a sort of Frankenstein's monster that escaped the lab when I ripped out the static lightmapped heart of Sauerbraten, squished it under-foot with extreme prejudice, and stitched it back together with deferred shading and shadowmapping.
Run-down of the cool new features:
deferred shading
HDR rendering with tonemapping and bloom
omnidirectional point-light shadowmaps
sunlight cascaded shadowmap
screen-space ambient occlusion
screen-space water reflections (no more reflection plane limits)
refractive alpha cubes
refractive glass material
A dorky video of some of this stuff in action:
http://www.youtube.com/watch?v=ZkFT1ra2w-A
The actual code is at a github repository for the moment:
https://github.com/lsalzman/tesseract
See the README for some more details about running it.
The code is still under Zlib license.
The work on this code was done in collaboration with Benjamin Segovia over the last month or so.
The codebase is still in a state of high flux, so I would expect a lot of changes coming in the future.
The goal of all of this is not really to replace Sauerbraten and development on Sauerbraten itself will continue into the future. This is just a fork, a what-if experiment to see what it might look like if it dropped all concerns about compatibility and good performance on old hardware and just tried to modernize.
In fact, while it can load Sauerbraten maps, the lighting model of Tesseract is roughly incompatible, as not only do Sauerbraten maps use way too many lights, but Tesseract renders the lights a bit differently.
Tesseract is not at this moment endeavoring to be a stand-alone game, but just another parallel codebase people interested in the engine can choose from to work from if they want to mod it into a game of their own.
|
|
Board Index
|
|
#1: .. |
by Sir Alex
on 04/18/2012 01:14
|
|
That\'s pretty awesome.
I for one would welcome if this would replace sauer. As long as a bunch of us adjusted the current maps for the new lighting.
What made you pick git? I have tried to maintain a git mirror of the sauer codebase(http://github.com/amstan/sauerbraten/), i could look at a way to get your fork to preserve all that history. Git seems to work well for everything that sauer has except the packages folder(i see you thought the same).
reply to this message
|
|
#2: OSX users |
by baby~rabbit
on 04/18/2012 02:07
|
|
1/ The launcher expects a 'packages' folder within the tesseract folder. The easiest way is to create an empty folder with the appropriate name.
2/ In the Launcher 'advanced options' field enter:
-ktesseract -k/games/sauerbraten/packages
Where "/games/sauerbraten/packages" is the path to the packages directory within an existing sauerbraten installation.
3/ Upon launching there will be three GLSL compile errors (about clipDistance) - just ignore, as these shaders aren't used unless you enable /smtetra
NOTE: Currently only tested on Lion with a GeForce 9400. (Somewhat slow - but it's pretty :P)
reply to this message
|
|
#3: .. |
by Sir Alex
on 04/18/2012 02:12
|
|
I managed to get your repo grafted on the svn clone i had, now the tesseract tree goes all the way back to the first sauer version in svn: https://github.com/amstan/sauerbraten/network
reply to this message
|
|
#4: .. |
by Razgriz
on 04/18/2012 07:23
|
|
This.. is real freaking awesome. I remember graphitemaster trying to do something similar and creating a demo that needed about 8 cores to get 20 frames on a newmap.
But this, far better than i expected! Proper model lighting, multiple shadow directions, actual reflections, and of course, real time rendering atop of it all! While this would certainly be of much joy to everyone if it ever got officially included, i do wonder how exactly the new light entities are handled
.
The entity system sauer has is pretty much an archaic copy of the one the original Cube had, with a few modifications and additions. Having an all new system would be required if we are to have any considerable progress in the game's map lighting sector, since only radious and RGB for a light just doesn't cut it anymore.
reply to this message
|
|
#5: Re: .. |
by Razgriz
on 04/18/2012 07:30, refers to #4
|
|
And holy shit, i only just realised that eihrul made this thread.. o.O
reply to this message
|
|
#6: Awesome! |
by kripkenstein
on 04/18/2012 07:59
|
|
I for one would love to see this become the future of sauerbraten. Would be much more fun to play in maps with this new rendering stuff :)
reply to this message
|
|
#7: .. |
by Hirato Kirata
on 04/18/2012 14:12
|
|
I see what you mean with existing sauer maps being incompatible http://i40.tinypic.com/11m52bp.jpg \o/
Others have mediocre performance, but that aside, this is freaking awesome!
reply to this message
|
|
#8: .. |
by _Spiney
on 04/18/2012 14:45
|
|
This makes me happy, I no longer have to bitch about the LDR lightmapping in Sauer! :D
Eihrul: I know you did a cascaded light propagation volumes demo. Any chance that gets added?
The lighting reminds me of Darkplaces, I believe you had a hand in that as well :)
reply to this message
|
|
#9: Re: .. |
by Q009
on 04/18/2012 15:12, refers to #8
|
|
Except the lighting in Darkplaces is A WHOLE LOT slower. I'm actually really suprised it's got so good performance here
reply to this message
|
|
#10: Re: .. |
by Razgriz
on 04/18/2012 15:12, refers to #8
|
|
Don't get too excited, it's gonna be a really long time before it makes it to the official release, lots of bugs, and the whole thing isn't exactly cheap on power draw.
reply to this message
|
|
#11: Re: .. |
by eihrul
on 04/18/2012 16:07, refers to #8
|
|
Tesseract builds off the work I implemented in DarkPlaces for omnidirectional shadowmapping.The unrolled cubemap system LordHavoc and I designed, the culling and PCF filtering code I wrote, and other things I sort of lifted wholesale from code I wrote for DP. That greatly accelerated the initial implementation. Stuff like the option for tetrahedral shadowmapping to reduce the number of renders from 6 to 4 and cascaded shadowmaps is entirely new.
LPV, I am not sure about yet. The LPV I implemented for the demo would have no occlusion, meaning it would bleed straight through a wall as if the wall did not exist, which would make it much worse than the existing SSAO. And doing good occlusion for it is quite expensive. There are potential other ways to do it, but I just wanted to get the basics in place first on which other stuff can be built.
reply to this message
|
|
#12: .. |
by suicizer01
on 04/18/2012 18:47
|
|
When a final or even the beta of this comes out, I'll be there to map on this damn great new fork.
reply to this message
|
|
#13: .. |
by _Spiney
on 04/18/2012 18:56
|
|
Playing with debugbuffersplit 1 is strangely hypnotic :P
reply to this message
|
|
#14: Amazing! |
by Windecker
on 04/19/2012 17:24
|
|
I just spent the last two hours abusing the dynamic lighting. It's great! :D
I can adjust ever light source in the map at once without waiting, and watch the changes. :)
reply to this message
|
|
#15: .. |
by great.
on 04/19/2012 19:48
|
|
how do you install on windows?
reply to this message
|
|
#16: Re: .. |
by _Spiney
on 04/20/2012 00:23, refers to #15
|
|
go here and download the .zip file
https://github.com/lsalzman/tesseract/downloads
unpack it.
now you need to add the packages folder of a recent Sauer build into the ../tesseract/packages folder
you can find a recent build here
http://sauerbraten.svn.sourceforge.net/viewvc/sauerbraten/
click on "download gnu tarball"
you'll need to use an archiver such as winrar or 7zip to unpack it.
If you get prompted to overwrite older files make sure to say no, so you don't accidentally mess up the Tesseract files.
reply to this message
|
|
#17: .. |
by Windecker
on 04/20/2012 04:10
|
|
I just created a junction point from my sauer svn packages folder.
Saves space. :)
reply to this message
|
|
#18: Re: .. |
by great.
on 04/20/2012 04:23, refers to #16
|
|
Thanks. I installed it, it looks very nice but it is very choppy on the lowest settings.
reply to this message
|
|
#19: Dynamic Rough Gem! |
by Zamwa
on 04/20/2012 07:43
|
|
After experimenting this is what I concluded:
.Coincidentally I'm not going to miss using the "old shool" lightmap generator ether though I'd like to use both in conjunction for optimal performance!
.It be handy to have a command line setting of the dynamic refresh rate!
.hardware compatibility is like an old mans love for a maxed out old dino MS-DOS purring like a kitty at 3 frames per second! :"P
Out of curiosity were the name Tesseract came from?
reply to this message
|
|
#20: Re: Dynamic Rough Gem! |
by Razgriz
on 04/20/2012 09:12, refers to #19
|
|
Gonna be a problem. The whole idea is ripping out the static lightmapping of the game, so there's no fixed-function pipeline for users who can't support this to fall back to. So either your hardware supports shaders and openGL, or it doesn't.
http://en.wikipedia.org/wiki/Tesseract
reply to this message
|
|
|
Board Index
|
|