O.k, so last week I made a post on Thursday detailing the progress I made with regards to terrain manipulation, but I only previewed it and never actually committed to a submit, so I just chucked it up to a bad day.
Over the past couple weeks I've been programming a lot, especially this week. I think so far I've logged 20hr of sit down time, which it's quite remarkable what I've been able to achieve in this short amount of time.
Some pictures to show what I've accomplished:
In the picture above you can see the world is divided into 68 shapes of proportional size and shape, kinda like a squished cross or something.
in order to maximise the detail and minimise the processing power I divided the world up into these shapes and then depending on where the camera is located determines which shapes are visible at a given time. So as you zoom around the world, very fluidly, it seems as though the whole world is loaded, but nah, just a few shapes. And of course the closer you zoom into the world the fewer and fewer shapes the system has to process. Nothing new in that respect, did this part months ago but, now I've created buffer geometry, not THREE.BufferGeometry, but rather geometry that is buffered into memory with a defined vertices and face count. the total vertices and faces never change, only the location of vertices and faces. Each of the 68 world geometries is paired with it's own buffer Geometry. From this buffered geometry comes dynamic user assets and also plants, minerals and stuff, as it stands, each shape should be able to host about 1000 unique objects of varying complexity, no Notre-Dame but sufficient for what I'm going for. Oh and each buffered geometry currently has two material types, plain and metal, but this can easily be scaled up. Very proud of this.
Now on to terrain manipulation So in the above screen shot we see a plot of land to be edited.
Now we see the land has been curved, it can also be flattened, the surface color has been changed just for reference, I'll likely keep some aesthetic aspect to this, but haven't settled on a color or idea yet.
Here we see a thin foundation laid over top the surface. This foundation has a plane from which all walls will orient themselves if a structure is to be built on this pad, as in all walls will be perpendicular to the surface of the foundation.
And here we see me playing around with the foundation menu and some of the 'solid' structures that are possible. the two shown and many others are possible with my dynamic asset creator. No need to resort to a predefined list of assets, you can make your own pyramid or what ever. Not only that, the AI will dynamically interact with your created assets as well, walking on their floors, climbing up their stairs, maybe even sleeping in one or two of them depending, but first the little buggers will have to build your masterpiece. The little spec in between the two structures, that is the size of an AI, of course you have a better view of it zoomed in more, but right now it's just an stretched box.
Please feel free to comment or ask questions.
:D
[ added content 27/01/17 ]
I like the idea of the plane to give the buildings a local value to set walls and items correctly.