I have a new video of the streaming and LOD system in action. This one is guaranteed to make you sick, so watch at your own risk.
I managed to push LOD switches a lot further, now it does not change under your feet unless the streaming lags behind for too long. The amount of detail on screen increased a lot too. Still, the required download rate remains pretty much the same. It is interesting how I did it, this will be the topic of a future post.
Your suggestions and comments for the earlier iteration of the LOD/Streaming were on the money. Please keep them coming.
Here is the video:
As awesome as usual :)
ReplyDeleteHow is the city building stuff going by the way, or is this what you area focussing on at the moment?
Wow, that one is orders of magnitude better than the last. Stunning scenery as usual. :)
ReplyDeleteAWESOME !!!
ReplyDeleteI think it will be cool to have some subdivision surface (maybe with displacement texture) running on client side. I think, better systems could handle it :)
Keep doing this awesome thing :)
great video!
ReplyDeletebtw LOD is based on (x,y) cord or (x,y,z)?
Hmm, an infinite landscape may take a little longer to explore than Skyrim.
ReplyDelete:)
@Anonymous: The city building is on hold. I wanted to make sure the streaming was acceptable and find out how much compression I needed. I will move next to vegetation. Cities and buildings will be last.
ReplyDelete@Aroidzap: Yes it is a good idea. I already keep a displacement map for each texture, along with the normal map but I don't use it yet. I rather invest time making this run smoothly on lower end systems. This capture was taken on a Radeon 4770, which has no problem running it, but I would like smaller cards to be supported. The shaders -actually the one shader- is still a bit heavy.
ReplyDelete-=Y=-: LOD is based on x,y,z
ReplyDeleteYes, true... never forget for weaker PCs :) I'll be glad to help somehow.. but I'm still not enough skilled in OpenGL.. etc... I really like your project :)
ReplyDelete@Kerrash: There is no arguing with that, only this is not an infinite terrain. I precompute it in advance. Since we are on the topic, anyone knows how big Skyrim's world is?
ReplyDelete@MCeperoG
ReplyDeleteWith no offence intended, the 4770 isn't high end any more, when it came out with was high middle of the range in dedicated graphics cards, now I'd call low middle. There been another 2 generations of graphics cards since that came out, and and the 7000 series is on its way :)
Anybody who has a gaming computer form the last few years should be able to run it as well as you can I imagine.
@Anonymous: You are correct, 4770 is low middle today, but still is more capable than all the low end cards out there, even in more recent series like 5000 and 6000. There are many of them, not necessarily on gaming rigs, but they are quite common. I would like my engine to run on them as well.
ReplyDelete@MCeperoG,
ReplyDeleteSkyrim ingame geographical size is 37.6 km^2.
Source: http://i.imgur.com/B7rBN.jpg
That was bumpy ride for sure :D Will you fix it for the NEXT video again? :D
ReplyDeleteThe landscape looks pretty epic now because you can see those distant mountains, but up close it's too rough. But I can imagine what it will look like when you focus more on that again.
When it comes to streaming, I don't have any ideas... So I'll just say again world curvation would be cool :P
@Anonymous: Thanks for the link. 7 x 6 km is not big, but dimensions alone are deceiving. It is better to hit a nice density and quality of content.
ReplyDeleteThe first test world I'm planning is four times that size. If you revisit the posts I did about cities, roads, etc, you can see some of it in a larger scale.
This particular video happens in an area of approximately 3 km by 3 km. I did not compute the entire world for it. It feels large at first, but after walking around for a while you discover yourself coming back to the same places.
I was fascinated to see clouds, only to realize that they were distant mountains that had been fogged white.
ReplyDeleteIt got me thinking though, what's the plan for clouds? It's pretty simple to procedurally generate simple skybox clouds on the client end, but it would be way, way cooler for the server to generate some basic wind patterns, allowing the weather to interact with the world a little. One of the nice things about clouds is that they scale down pretty well (that is to say, weaker machines can use cheaper and cheaper effects until they just aren't rendering clouds at all).
i keep wondering if the way you are applying textures could be done better. have you thought about using a splatmap to apply textures ontop of the mesh ? this would definitely increase data size so it may not be possible since you are streaming everything but just a thought. the other possibility is simply to have less higher frequency details in your high poly source mesh (if i recall you bake down from a high poly source mesh, could be wrong though) anyways if you focused on generating larger more fantastical low frequency large detail shapes it would a) make the world less bumpy (world should be bumpy from placed rock meshes not a chopped up mesh?) and b) would possibly look more interesting. just a thought though, i cant play with your world generator so i dont know specifically what the actual problems are.
ReplyDeleteThis comment has been removed by the author.
ReplyDelete@planaria: Splatmap? Could you elaborate more?
ReplyDeleteI agree this terrain is consistently rough, which ends up being less interesting. It should be no problem to change that, but for now I rather test with an extreme setup.
I've got one question. You are doing this alone? Am I right? It is incredible :)
ReplyDelete@tentus: For cloud generation I'm looking at this: http://video.google.com/videoplay?docid=3133893853954925559
ReplyDelete@Aroidzap: Thanks, yes I am doing this alone for now.
ReplyDeletePlease could you do a bug fix release next? I've been following this for a while now but find the camera penetrations and gaps/holes quite distracting from the technical contribution. Also could the distant lod streaming be reduced with a geometric horizon curve (e.g. a vertex shader to move far away vertices smoothly lower)? Good Work.
ReplyDelete@Anonymous: Thanks for the suggestions. Keep in mind this is still a prototype, which means it will be thrown away in a few months when I start working on the actual client. My main goal is testing the streaming rates and compression formats. I apologize for the many quirks and kindly ask to use your imagination to fill in the holes.
ReplyDeleteYes, I will eventually pull faraway vertices down in the vertex shader to create the illusion of a horizon.
i just watched the cloud generation link video
ReplyDelete-> how much drain on game performance would introducing clouds/weather have? because from a players perspective, complex weather interactions can significantly boost immersion levels! i think the neatest possibility would be the weather having the capacity to interact with and alter the terrain!
@hellomrtrout: I don't think this cloud video is realtime. Realistic weather is expensive to compute. Once I get the I will see what the limits are.
ReplyDeleteIn this video I noticed some terrain generation errors, such as the occasional floating rock and such. I understand this is not top priority, but will this be fixed in the future?
ReplyDeleteCheers,
Ignite A Light
@Ignite: Yes, I intent to add a cleanup phase later. What you see here is to test the streaming, the floating bits actually help since they make meshes more complex.
ReplyDelete