Outerra forum

Please login or register.

Login with username, password and session length
Advanced search  

News:

Download Outerra Tech Demo. Unofficial Outerra Discord server, MicroProse Discord server for OWS.

Author Topic: Procedural grass rendering  (Read 16942 times)

cameni

  • Brano Kemen
  • Outerra Administrator
  • Hero Member
  • *****
  • Posts: 6721
  • No sense of urgency.
    • outerra.com
Procedural grass rendering
« on: May 27, 2012, 05:46:23 pm »

A new blog post about procedural rendering of grass has been published:
http://outerra.blogspot.com/2012/05/procedural-grass-rendering.html
Logged

ZeosPantera

  • ||>>-Z-<<||
  • Global Moderator
  • Hero Member
  • *****
  • Posts: 2520
  • #1 Outerra Fan Boy
    • My Youtube
Re: Procedural grass rendering
« Reply #1 on: May 27, 2012, 08:11:00 pm »

NO! Now your secrets are out.
Logged
"Fear accompanies the possibility of death, Calm shepherds its certainty" - General Ka Dargo

Sunnyyello

  • Jr. Member
  • *
  • Posts: 30
  • Nothing to see here, move along...
Re: Procedural grass rendering
« Reply #2 on: May 27, 2012, 08:44:28 pm »

A new blog post about procedural rendering of grass has been published:
http://outerra.blogspot.com/2012/05/procedural-grass-rendering.html

Awesome, This brings new meaning to the phrase;"It's as fun as watching grass grow."
I can't wait to see the further advancement of this engine. I'm gearing up for Anteworld as well...
Logged
I could waste my time training a noob but the end result would just be a really well trained noob...

Jagerbomber

  • Hero Member
  • *****
  • Posts: 1564
Re: Procedural grass rendering
« Reply #3 on: May 27, 2012, 10:38:06 pm »

So I'm curious, in games that look more like they are loading or making things appear smoothly in a circular radius around you, are they actually still loading in square chunks but hiding it?

I guess what I'm saying is, why have them load in chunks vs having them load/appear continuously (not in chunks) as you move around?  Though of course with Outerra's grass, it's kind of hard to tell that it's loading in chunks unless you move too quickly or enable those LOD colors like in the video.

I'm guessing things loading in chunks is just the way it's gotta work?  HOORAY FOR PROGRAMMING ILLITERACY!  ::)  :-[
« Last Edit: May 27, 2012, 10:45:22 pm by Jagerbomber »
Logged
"Perhaps this speaks to some larger trend within society today...  A prevailing desire on the part of indie developers to recreate the entire world into one where you can charge more than $15 for your game design degree coursework." - Yahtzee ;) :P

PytonPago

  • Hero Member
  • *****
  • Posts: 2284
  • It´s way too complex, dont let me try to explain !
Re: Procedural grass rendering
« Reply #4 on: May 28, 2012, 12:57:22 am »

A new blog post about procedural rendering of grass has been published:
http://outerra.blogspot.com/2012/05/procedural-grass-rendering.html

Seeing the last vid.´s grass detail levelled, it genetates the grass not distance-eqally in right sence, but in terrain squares ? Thought such way would make the transitions between detail-levels to be badly seen ... nice outcome doe. Was actually thinking it works the regular circle-way, but seems this approach has some advantages ...
Just some little question: would it be able to use some kind of texturing ? Lets say there will be some triangular grass textures that would be stretched ower the baseparts whyte some wariety of the same kind of grass - year time - location - height ? (I know it sees great as it already is, but i would like to see its capabilities and futher tunning-possabilities). The same way could be then used for other kind of low vegetation of else geometrics, maybe ewen the same way whyte half-transparent texturing or something more complex (both would possably eat some PS specs. whyteout reasonable design and textures) like a long baseline whyte multiple triangles on both sides for :
At the same time, is there some interaction possability planned ? I mean, when you stepp on it (maybe ewen just little deformations by touch - would be possably drain the whole procesor capacity in combination whyte the other approaches and such plentifull plant variations in swamps and rain forests), or driwe trought whyte something heawy combined whyte a little terrain alteration too ?
Logged
We are still undeveloped as long as we don´t realize, that all our science is still descriptive, and than beyond that description lies a whole new world we just haven´t even started to fully understand.

cameni

  • Brano Kemen
  • Outerra Administrator
  • Hero Member
  • *****
  • Posts: 6721
  • No sense of urgency.
    • outerra.com
Re: Procedural grass rendering
« Reply #5 on: May 28, 2012, 01:38:34 am »

So I'm curious, in games that look more like they are loading or making things appear smoothly in a circular radius around you, are they actually still loading in square chunks but hiding it?

I guess what I'm saying is, why have them load in chunks vs having them load/appear continuously (not in chunks) as you move around?  Though of course with Outerra's grass, it's kind of hard to tell that it's loading in chunks unless you move too quickly or enable those LOD colors like in the video.

I'm guessing things loading in chunks is just the way it's gotta work?  HOORAY FOR PROGRAMMING ILLITERACY!  ::)  :-[
Those tiles are basic blocks that are thrown at the card. The only difference is that each further LOD level sends half the amount of blades compared to the previous ones. Well, it actually doesn't send the blades to render, it only commands to draw N blades. The shader on the GPU says ok, computes where each blade should be, fetches colors and lengths and does all the hard work. In OT it's done by tiles because in OT everything is tile-based. The information about terrain height, grass height, textures.

However, if the shader didn't do extra work to transition between LOD levels, it would be fairly noticeable. In the next level there are only half of the blades, but they are twice as wide to cover the same area. Distant blades in the first level are widening and narrowing to match how blades look in the second one. There is still occasional glitch as the LOD levels switch due to the overlaps, but it can be tuned out I think.

Just some little question: would it be able to use some kind of texturing ? Lets say there will be some triangular grass textures that would be stretched ower the baseparts whyte some wariety of the same kind of grass - year time - location - height ? (I know it sees great as it already is, but i would like to see its capabilities and futher tunning-possabilities). The same way could be then used for other kind of low vegetation of else geometrics, maybe ewen the same way whyte half-transparent texturing or something more complex (both would possably eat some PS specs. whyteout reasonable design and textures) like a long baseline whyte multiple triangles on both sides for
These should be done differently, as there is a much lower amount of them, covering a larger area, shrub-level. Grass is the worst one because of the amount of geometry needed.

Quote
At the same time, is there some interaction possability planned ? I mean, when you stepp on it (maybe ewen just little deformations by touch - would be possably drain the whole procesor capacity in combination whyte the other approaches and such plentifull plant variations in swamps and rain forests), or driwe trought whyte something heawy combined whyte a little terrain alteration too ?
Yes. Should be the same thing as the roads. When you create a road, it removes the grass. The road surface doesn't have to be asphalted, could be the original grass texture without the blades being rendered.
Logged

Jagerbomber

  • Hero Member
  • *****
  • Posts: 1564
Re: Procedural grass rendering
« Reply #6 on: May 28, 2012, 10:55:47 am »

Somewhat related to that, I think once there are more trees, there should be a tree clearer (and maybe a mass tree adder) that clears trees without effecting the ground at all, unlike the road tool does.  Plus the road tool doesn't go all that wide.  Perhaps drawing a square or a freeform polygon shape like in Paint programs or maybe like a brush/spraypaint/eraser tool?
« Last Edit: May 28, 2012, 10:57:21 am by Jagerbomber »
Logged
"Perhaps this speaks to some larger trend within society today...  A prevailing desire on the part of indie developers to recreate the entire world into one where you can charge more than $15 for your game design degree coursework." - Yahtzee ;) :P

cameni

  • Brano Kemen
  • Outerra Administrator
  • Hero Member
  • *****
  • Posts: 6721
  • No sense of urgency.
    • outerra.com
Re: Procedural grass rendering
« Reply #7 on: May 28, 2012, 12:09:16 pm »

There will be a different tool for that, where one can draw polygons and assign type to them. Used to create fields, pastures and any artificial human-made areas, that could be imported from maps (OSM) or hand-drawn.

It will also serve to designate areas for city block generator later.
Logged

Ozybolairy

  • Jr. Member
  • *
  • Posts: 40
  • newbie
Re: Procedural grass rendering
« Reply #8 on: June 01, 2012, 09:58:01 am »

Is there a reason why grass is limited to a distance of 50m?

Also, what would the possibilities be of introducing a screen render function which would calculate full tile settings into the far distance? I often wonder why there has been no such images released for games to show what the game world would look like given unlimited processing power. Imagine for example red dead redemptions vistas which detailed shadows and textures as far as the eye can see. Interested to know your views or if there are technical limitations to do this?
Logged

cameni

  • Brano Kemen
  • Outerra Administrator
  • Hero Member
  • *****
  • Posts: 6721
  • No sense of urgency.
    • outerra.com
Re: Procedural grass rendering
« Reply #9 on: June 01, 2012, 10:25:03 am »

It's limited to 50m because it doesn't yet reflect the terrain quality setting, which would allow it to be higher (or lower) based on your TQ setting. For TQ=720p the limit s roughly 50m, for higher TQ it will be proportionally higher (1080p -> 75m).

But I guess you are asking why is the limit there at all. It's because of the architecture and optimization decisions. The limit is there because the grass generator is tied to a particular level of detail of terrain. Terrain is generated/rendered in quad-tree tiles, with each successive level quarter of its parent, with twice the resolution. Grass is tied to a tile with resolution of 30cm, meaning that every 30cm there's a point determining the height and presence of the grass tuft.

If I wanted to generate grass beyond 75m, it would have to be tied to the next level that covers a wider area but has a coarser resolution. It would be possible to extend the current system by this, to have areas from 75 to 150m covered by this coarser grass level, and it can go even further this way (up until the grass is 1px high). The reason why it wasn't done so is that with the current level of hardware it's not practical to spend time on features that won't be normally used, and it's better to use the time elsewhere instead. But it can be done, and for some things (visualizations, movies) it would make sense even now. However, there are other areas lacking, so I saw no point in pushing one feature to the max while others aren't up to the task yet (like the trees). In the future it can and will be extended.
Logged

Ozybolairy

  • Jr. Member
  • *
  • Posts: 40
  • newbie
Re: Procedural grass rendering
« Reply #10 on: June 01, 2012, 10:36:17 am »

Thanks for the quick response, of course in the essence of time this makes sense. Would like to see how far the engine can be pushed graphically, even if it does take several minutes to load a single frame. One for a rainy day perhaps. Keep up the good work!
Logged