Patryk Kizny
|
|
« on: November 11, 2015, 02:36:31 PM » |
|
I've been playing a bit for the last few days with creating a more realistic and flexible terrain generator. I am using also the latest version of my raytracer that includes nicely integrated Sky model. Part of R&D for an upcoming short.
The default terrain in fragmentarium is based on the cnoise implementation which is very slow for the task. Recently I posted a bunch of other noise functions and the IQ noise is way faster. I also developed a nice compound sinus noise mode and pulse gizmos to control all this in larger scale.
This is all still in works, but I'll be sharing the bits and bites as soon as it gets more polished form.
|
|
|
Logged
|
Visual Artist, Director & Cinematographer specialized in emerging imaging techniques.
|
|
|
Patryk Kizny
|
|
« Reply #1 on: November 11, 2015, 04:45:09 PM » |
|
Erosion does not look bad!
|
Visual Artist, Director & Cinematographer specialized in emerging imaging techniques.
|
|
|
3dickulus
|
|
« Reply #2 on: November 11, 2015, 08:14:17 PM » |
|
very very nice, I can't wait to test it out I think we might need a "PatrykKizny" folder in the examples, if that's ok with you to distribute the sky does look really good. can this generate a water like surface? more than one surface ie:land and water? with land, water, clouds is there enough shader code space for other stuff like, DE advances, bulbs, sponges, julias, etc.etc.etc. I am concerned that only Titan+ will be able to use this code
|
|
|
Logged
|
|
|
|
cKleinhuis
|
|
« Reply #3 on: November 11, 2015, 08:34:55 PM » |
|
yay, terrain based on noise maps instead of heightmaps is the way to go, excellent!
|
|
|
Logged
|
---
divide and conquer - iterate and rule - chaos is No random!
|
|
|
Crist-JRoger
|
|
« Reply #4 on: November 11, 2015, 08:50:01 PM » |
|
|
|
|
Logged
|
|
|
|
mclarekin
|
|
« Reply #5 on: November 11, 2015, 08:58:18 PM » |
|
|
|
|
Logged
|
|
|
|
Patryk Kizny
|
|
« Reply #6 on: November 11, 2015, 09:01:07 PM » |
|
On my end the terrain itself seems to be even faster than the cnoise based one. It's based on the IQ noise functions I shared earlier (pinned now). The other noise stuff based on sin function is also very fast. The power of this is a flexibility of mixing various components (not coding needed for users).
Yes, It can do water if you decrease amplitude.
I am working on that within a wider 'framework' for adding other fractals as hybrids and as soon as it is more polished I'll eagerly share it. I can easily add a few fractals. Depending on the complexity of course it can finally kill any GPU, but I tend to explore the stuff from outside instead of doing deep zooms (which are not impressive on a GPU anyways).
True, the raytracer itself got very complex, but I've kept it modular, so you can strip it down and work only with needed components or the stuff you can afford. the terrain generator though is not dependent on the tracer.
What would help to make it all way more elegant is the feature I suggested long ago - filtering out uniforms on compile that are sitting within #ifdef blocks.
|
|
|
Logged
|
Visual Artist, Director & Cinematographer specialized in emerging imaging techniques.
|
|
|
Crist-JRoger
|
|
« Reply #7 on: November 11, 2015, 09:02:25 PM » |
|
with land, water, clouds is there enough shader code space for other stuff like, DE advances, bulbs, sponges, julias, etc.etc.etc. I am concerned that only Titan+ will be able to use this code CRY-engine for fractals
|
|
|
Logged
|
|
|
|
3dickulus
|
|
« Reply #8 on: November 11, 2015, 09:35:58 PM » |
|
the terrain generator though is not dependent on the tracer.
Do you have to render the "land,air,sea" separately and merge object images after? does the terrain interact with bulbs and other stuff? What would help to make it all way more elegant is the feature I suggested long ago - filtering out uniforms on compile that are sitting within #ifdef blocks. I've done some simple stuff just to remove the defines I've added,AUTO_FOCUS and DEPTH_TO_ALPHA ifdef,else,endif but handling multiple and/or nested conditions is going to be tricky and require some testing, if it can be kept to two conditions #ifdef and #ifndef with no #else or nesting then it would be very easy but that might be an unreasonable imposition on programmers.
|
|
« Last Edit: November 11, 2015, 09:42:04 PM by 3dickulus »
|
Logged
|
|
|
|
Patryk Kizny
|
|
« Reply #9 on: November 11, 2015, 09:40:58 PM » |
|
simple #ifdef or #ifndef would be sufficient for this usage. The purpose at the moment is only hiding unused uniforms in the GUI.
|
|
|
Logged
|
Visual Artist, Director & Cinematographer specialized in emerging imaging techniques.
|
|
|
Patryk Kizny
|
|
« Reply #10 on: November 14, 2015, 02:24:59 PM » |
|
It looks like I already have a nice set of layers for creating alien worlds!
|
|
|
Logged
|
Visual Artist, Director & Cinematographer specialized in emerging imaging techniques.
|
|
|
3dickulus
|
|
« Reply #11 on: November 14, 2015, 07:28:30 PM » |
|
"hiding" uniforms in the GUI means stripping out code before it goes for processing by the current parser that generates the widgetry, easy todo for #define + #ifdef + #endif, a bit harder to have the parser test all uniforms for usage and compliance.
|
|
|
Logged
|
|
|
|
Patryk Kizny
|
|
« Reply #12 on: November 14, 2015, 07:36:02 PM » |
|
No need for testing and compliance. Just strip down the code for uniforms the same way normal code is stripped when sits within #ifdefs
|
|
|
Logged
|
Visual Artist, Director & Cinematographer specialized in emerging imaging techniques.
|
|
|
Patryk Kizny
|
|
« Reply #13 on: November 15, 2015, 03:19:33 AM » |
|
Almost there!
|
|
|
Logged
|
Visual Artist, Director & Cinematographer specialized in emerging imaging techniques.
|
|
|
3dickulus
|
|
« Reply #14 on: November 15, 2015, 03:43:05 AM » |
|
that is looking really nice No need for testing and compliance. Just strip down the code for uniforms the same way normal code is stripped when sits within #ifdefs
the GPU compiler does this, not done in Fragmentarium C++ code that's why some stuff don't get cleaned.
|
|
|
Logged
|
|
|
|
|