DaveH
|
|
« on: July 09, 2012, 04:06:34 AM » |
|
Hey folks, this video shows the latest additions to my landscape rendering project. It now has a really gnarly landscape, more realistic clouds, and fractal texture grass patches, with occasional flowers randomly spatted on them. It goes on forever, or thousands of 'miles' before the floating point numbers start crapping out anyway. It's all fractal based, with quite some time spent on colours. It just a video of me flying around trying to find interesting areas, the previous video showed night time effect. It does about 130+- fps at 1280x768 on a GTX 260, so I might have room for more stuff to render. I really want to put some trees in, finding the correct way to randomize them should be an interesting job. I hope you like it, I certainly enjoyed making, errr, finding this landscape! Dave. LATEST VID
http://www.youtube.com/v/8-5Z_031x00&rel=1&fs=1&hd=1PREVIOUS VID with less detail, but showing night time:-
http://www.youtube.com/v/tw1GncYrowc&rel=1&fs=1&hd=1
|
|
« Last Edit: July 09, 2012, 04:20:41 AM by DaveH »
|
Logged
|
|
|
|
asimes
|
|
« Reply #1 on: July 09, 2012, 05:41:23 AM » |
|
That's amazing. How did you go about generating those?
|
|
|
Logged
|
|
|
|
cKleinhuis
|
|
« Reply #2 on: July 09, 2012, 06:34:14 AM » |
|
now you are talking great scenes! amazing far view, and the grass really give additional feeling of realism ... you are really creating all this dynamically ?! cool ! randomizing trees ... start out with leaf-less tress, obtaining a "gnarly" wood texture, for rendering the base structue, i am unsure how speed-tree defines their trees, if they just use modified l-systems, or if they use a more specific way to define their trees, nevertheless, i dont know how to implement a pure gpu based tree algorithm that would basically need no extra memory, but generate lots of stuff ...
|
|
|
Logged
|
---
divide and conquer - iterate and rule - chaos is No random!
|
|
|
subblue
|
|
« Reply #3 on: July 09, 2012, 09:40:05 AM » |
|
Very impressive. I would love to hear about the techniques you are using in this.
|
|
|
Logged
|
|
|
|
DaveH
|
|
« Reply #4 on: July 09, 2012, 09:45:43 AM » |
|
Thanks guys, I didn't want it to look like a 'computer game' so everything has to be unique, and not blurry or soft looking, which so many games look like to me. The CPU is creating the basic chunks surrounding the camera down to 5 levels of of fractal, then the shader is adding a further 6, you can see the underlying mesh on close-by peaks. The biggest trick was getting a super fast fbm value, that's used all over the place. Generally you have to cheat when making these landscape, and I found it interesting that the random fractal approach of inaccurately covering the grass with colour and shade seemed to work. I propose it's the overall uniqueness that's fooling the eye with complexity, I don't really know. Because i've gone down the route of 'no resources,' for trees I'll have to draw the bark fractally in 2d, using a formula for normal mapping a texture on a 3d surface I found on this forum somewhere. For leaves I was thinking of using billboard sprites, much in the same way as the 'woody3d' software, athough they don't work when looking directly up at them. But then again, it is all cheating!
|
|
« Last Edit: July 09, 2012, 11:55:10 AM by DaveH »
|
Logged
|
|
|
|
LhoghoNurbs
|
|
« Reply #5 on: July 09, 2012, 10:34:49 AM » |
|
A.M.A.Z.I.N.G.!.!.!
"See Mom, no textures!"
As for the trees, some year ago I made pseudo random trees in this way: I had a list of 32 predefined subtrees (a subtree is the main trunk + one main branch + all its subbranches). Then when I want to make a tree, I overlap 2 3 or 4 randomly selected subtrees. This produces a large variety of different trees without generating them in real time. To increase "randomness", each subtree was transformed by a matrix which zoomed it in/out a little, rotated it a little and shewed it a little.
|
|
|
Logged
|
|
|
|
Syntopia
|
|
« Reply #6 on: July 09, 2012, 02:27:44 PM » |
|
Looks stunning, DaveH. Any clues to how you accelerate the Perlin-noise (especially on the GPU)? I've used the Ashima-libs so far ( https://github.com/ashima/webgl-noise/), but they are still rather slow? Btw, this guy: http://procworld.blogspot.ca/ is also doing some amazing stuff on procedural generation of terrain, trees, and buildings.
|
|
|
Logged
|
|
|
|
cbuchner1
|
|
« Reply #7 on: July 09, 2012, 02:29:04 PM » |
|
This is game engine worthy.
Flight simulators, role playing games and lots of other genres could benefit from this kind of rendering. It could use some weather and seasonal effects though.
Christian
|
|
« Last Edit: July 09, 2012, 06:34:37 PM by cbuchner1 »
|
Logged
|
|
|
|
weavers
|
|
« Reply #8 on: July 10, 2012, 03:44:46 AM » |
|
_______________________________________________________________________________________________________________________ ____ Diagnosis Criteria : Compositionality : terrain appropriate : Core Goal idea 2 mind 2 brain 2 program 2 rendering 2 scene to our screens, opinion 2 U : data : fabulous execution presentation camera roving in and out of curious exploratories involving stop and turns manifesting seeming as a safari extraordinaire, Thanks, it was a pleasure filled trip, we enjoyed it! DO more! Heres what we think : data story line : exploration experience inquisitiory very cool : sound accompaniment needs work : hope to see more of your project thanks a lot for sharingwhat we like about your clip is the feeling it gives of actually being there and the sense that we are there vulnerable to the ravages of time and space in that world you created, the work you did on the ambient-al color modulations were realistic and the sky backdrop were real looking and the gritty feeling of earth, mud, stone really had the natural feel to them! A special congratulations for the section of the clip where you had the camera circle around a the mountain. Showing different sides of it : data : a real accomplishment! 5 STARS . .
|
|
« Last Edit: July 10, 2012, 03:57:17 AM by weavers, Reason: reply »
|
Logged
|
|
|
|
DaveH
|
|
« Reply #9 on: July 10, 2012, 10:37:27 AM » |
|
Thanks for the comments. I've read some of procworld's blog and it's very interesting, he also admits to 'cheating' with things faking their look. Computers are just not fast enough - ever! If this was to become a game, it's inevitable that at some point human intervention is necessary to give a narrative without the need for such vast openness. It's a difficult issue. I wanted to get the feeling of complete control, so it was given a jetpack feel to movement. You won't at first have a jetpack of course... This what I eventually want for it, but it has to stay as a hobby at the moment... Old buildings, but really old stone almost like weather beaten dry stone walls, or a stone henge feel. Trees of course, but hopefully small bunches of them dotted about. A sense of insignificance with the player, alone on an alien world, trying to understand his/her place in it and survival. Scale - I want it to have massive creatures walking about about doing their own thing, like scavenging for resources. As well as small creatures, which give the impression the 'player' has to figure out how these resources and creatures work together. I've always loved the differences of scale and point of view. At one point the player will encounter a light at night which will turn out to be a hidden black 'angler fish' type of creature laying in wait for something to go by...then show it's red eyes and pointy teeth... ; ) ...but that's all way off in the future for the project.
|
|
« Last Edit: July 10, 2012, 10:39:40 AM by DaveH »
|
Logged
|
|
|
|
cKleinhuis
|
|
« Reply #10 on: July 12, 2012, 09:22:22 AM » |
|
since you are already gpu heavy, ever thought about combining a ray marcher ? i know this could be hard, but wouldnt it be cool to place mandelbox buildings around !? a ray marcher would be a completely different object approach since it is more like including a billboard into your scene, and interacting (shadow casting ) with the polygonal parts can be really tricky to perfomantly implement, but i would love it
|
|
|
Logged
|
---
divide and conquer - iterate and rule - chaos is No random!
|
|
|
DaveH
|
|
« Reply #11 on: July 12, 2012, 05:04:33 PM » |
|
Yes, one idea was to place a cube on it's point buried slightly in the ground. When the deferred pass reaches it, it knows the xyz coordinate and the ray vector from the eye. So in theory I could start tracing at that location into a mandelbox, but only a short way in I suspect. To ray march the whole thing for objects would be expensive!
|
|
|
Logged
|
|
|
|
cKleinhuis
|
|
« Reply #12 on: July 12, 2012, 05:56:00 PM » |
|
yay, just low iterations would work smoothly, but when you have a nice DE larger step sizes could work, i was always wanting ( back in 2000 ) do a some kind of museum movie, where different fractals are presented behind backlit glass structures, but you could easily place many boxes with different params located in various locations, so that one really would have something to explore would love it !!!!11eleven! and one!
|
|
|
Logged
|
---
divide and conquer - iterate and rule - chaos is No random!
|
|
|
Dinkydau
|
|
« Reply #13 on: August 08, 2012, 09:01:30 AM » |
|
This is really amazing. Something like this could be the future for high-detailed game landscapes (or any other uses) that don't use up gigabytes of space.
|
|
|
Logged
|
|
|
|
|
|