You can get Voxel Farm now. For more information click here.

Friday, December 2, 2011

The fine art of motion sickness

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:


28 comments:

  1. As awesome as usual :)

    How is the city building stuff going by the way, or is this what you area focussing on at the moment?

    ReplyDelete
  2. Wow, that one is orders of magnitude better than the last. Stunning scenery as usual. :)

    ReplyDelete
  3. AWESOME !!!

    I 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 :)

    ReplyDelete
  4. great video!
    btw LOD is based on (x,y) cord or (x,y,z)?

    ReplyDelete
  5. Hmm, an infinite landscape may take a little longer to explore than Skyrim.

    :)

    ReplyDelete
  6. @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
  7. @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
  8. Yes, 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
  9. @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
  10. @MCeperoG

    With 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.

    ReplyDelete
  11. @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
  12. @MCeperoG,

    Skyrim ingame geographical size is 37.6 km^2.

    Source: http://i.imgur.com/B7rBN.jpg

    ReplyDelete
  13. That was bumpy ride for sure :D Will you fix it for the NEXT video again? :D
    The 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

    ReplyDelete
  14. @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.

    The 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.

    ReplyDelete
  15. I was fascinated to see clouds, only to realize that they were distant mountains that had been fogged white.

    It 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).

    ReplyDelete
  16. 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.

    ReplyDelete
  17. This comment has been removed by the author.

    ReplyDelete
  18. @planaria: Splatmap? Could you elaborate more?

    I 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.

    ReplyDelete
  19. I've got one question. You are doing this alone? Am I right? It is incredible :)

    ReplyDelete
  20. @tentus: For cloud generation I'm looking at this: http://video.google.com/videoplay?docid=3133893853954925559

    ReplyDelete
  21. @Aroidzap: Thanks, yes I am doing this alone for now.

    ReplyDelete
  22. Please 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
  23. @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.

    Yes, I will eventually pull faraway vertices down in the vertex shader to create the illusion of a horizon.

    ReplyDelete
  24. i just watched the cloud generation link video
    -> 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!

    ReplyDelete
  25. @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.

    ReplyDelete
  26. In 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?

    Cheers,
    Ignite A Light

    ReplyDelete
  27. @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

There was an error in this gadget