tag:blogger.com,1999:blog-3779956188045272690.post472953570842830649..comments2024-03-22T01:46:59.425-04:00Comments on Procedural World: When Mountains MoveMiguel Ceperohttp://www.blogger.com/profile/17586513342346629237noreply@blogger.comBlogger16125tag:blogger.com,1999:blog-3779956188045272690.post-5373064891894942122017-06-01T16:05:15.268-04:002017-06-01T16:05:15.268-04:00I have a question. This may go far outside of the ...I have a question. This may go far outside of the scope of voxel farm. Currently, procedural content is rendered via noise-based solutions that seek to approximate a 'realistic' appearance. Are there any scientists out there who have developed algorithms that describe actual terrain on earth? If not-<br />could it be possible to import actual natural terrain, use some kind of neural network to "learn" it, then import that into the procedural generation system?<br /><br />It seems believable that neural networks, which can generate realistic audio, text, and pictures, after being trained, can be used to generate realistic terrain.<br />https://affinelayer.com/pixsrv/index.htmlrainstaredhttps://www.blogger.com/profile/06792979533316255477noreply@blogger.comtag:blogger.com,1999:blog-3779956188045272690.post-35628271401110978282017-06-01T16:01:57.911-04:002017-06-01T16:01:57.911-04:00Could existing map formats be ported to new map fo...Could existing map formats be ported to new map formats that have additional 3 dimensions of voxels that are perhaps like 10x as big-invisible giant voxels that serve to trace boundaries of areas generated via algorithm, like biomes, and which are used to register marker information like who last changed the voxel and when it was last changed?<br /><br />with regards to determining what to change- run the content generation algo as currently programmed in parallel using existing seeds to get a generic map, diff it, the diff is user changes, then generate the new terrain using the new setup, then import the diff on top of it?rainstaredhttps://www.blogger.com/profile/06792979533316255477noreply@blogger.comtag:blogger.com,1999:blog-3779956188045272690.post-42963735038306188022017-03-26T04:18:00.278-04:002017-03-26T04:18:00.278-04:00I suggest adding a 'Local Procedural Override&...I suggest adding a 'Local Procedural Override' tool. It would be an anchored alteration of procedural settings that is configurable and movable. If a procedural change breaks par of your map, then you would copy the procedural settings of the last matching state to a Local Procedural Override object. The override would probably have a radius, falloff settings, an probably some sort of blend function so you can make a more complicated transition mask. This would allow you to keep the terrain under a city static while the world around it conforms to updates. Additionally if it's object based then you could move the object around so you could effectively move geological features with it too. It wouldn't need to be just for localised backwards compatibility, you could use it for all kinds of things. Anonymoushttps://www.blogger.com/profile/08958410166892985999noreply@blogger.comtag:blogger.com,1999:blog-3779956188045272690.post-26763955019203676472017-02-16T01:38:36.062-05:002017-02-16T01:38:36.062-05:00In addition to what others have mentioned, there a...In addition to what others have mentioned, there are two general practices I like that are applicable; Making all those options that would be 99% of users don't use but are nice to have fore weird edge bases into text tags in an config file or an "additional tags" text box or something, and for versioning backwards compatibility specifically collapsing it into a single number for what version to use instead of a bunch of individual options. Anonymoushttps://www.blogger.com/profile/04503557151969368995noreply@blogger.comtag:blogger.com,1999:blog-3779956188045272690.post-82571652427374239772017-01-24T13:17:32.942-05:002017-01-24T13:17:32.942-05:00Not sure what you mean by visible and invisible us...Not sure what you mean by visible and invisible user changes. Some user edits are adding "air", which makes portions of the procedural layer invisible, if that is what you meant.<br /><br />Snap to terrain would be very nice. In our case it is a bit more difficult since we do not use heightmap topologies only. So you could dealing with a Bat City, which actually hangs from a down-facing mountain cliff. In that case down is up, and figuring out where the city should move is far from trivial.Miguel Ceperohttps://www.blogger.com/profile/17586513342346629237noreply@blogger.comtag:blogger.com,1999:blog-3779956188045272690.post-73780411266200552042017-01-24T07:24:09.336-05:002017-01-24T07:24:09.336-05:00Interesting.
These two methods seem to be the sam...Interesting.<br /><br />These two methods seem to be the same but with different values given to the "regularity". In a sense, it's a bit like changing the amount of blur in an image processor.<br />The numerical value is the best way to handle this situation as sugested previously. Anyone opening a project without such variable gets the legacy "square" value. This gives flexibility and might allow people to transition if they want to. This way, you're not only implementing a fix but an entire feature by letting people achieve different results by playing around with the values.<br />Not sure if it could allow for more twisted results but this is good.<br /><br />On the subject of user made content, you can probably implement a "snap to terrain" based on axis/gravity feature based on the current selection and/or on a specific user modifications layer.<br />I don't know how the engine handles user content but surely there is also a difference between visible and invisible human made changes ?TheSliderhttps://www.blogger.com/profile/00722113578654952345noreply@blogger.comtag:blogger.com,1999:blog-3779956188045272690.post-56717049636166839102017-01-18T11:31:27.271-05:002017-01-18T11:31:27.271-05:00Relocating a city would be involved, after moving ...Relocating a city would be involved, after moving it to the location you would need to correct the height translations of buildings and potentially rebuild/reshape roads/neighbourhoods. But having layers available would make all of that simpler. Not only would it assist in selecting/translating fabricated content. But it would also allow for the creation of a translation layer. A layer where the content creator can freely add/remove from the proc layer without impacting their previously created content.Ajmhttps://www.blogger.com/profile/12985928729302303917noreply@blogger.comtag:blogger.com,1999:blog-3779956188045272690.post-86003104446492409012017-01-18T11:20:44.493-05:002017-01-18T11:20:44.493-05:00A layer translation method would be a great soluti...A layer translation method would be a great solution.<br /><br />The data is already layered in the engine like that, although not exposed in Voxel Studio's UI.<br /><br />Relocating a whole city can be quite involved. This is not a feature you would develop naively. People already had this problem in Landmark while relocating entire claims. A claim's size is a fraction of a city's, and just rendering a preview can be challenging. But it is quite doable once the system is designed for it. We'll think about this option.Miguel Ceperohttps://www.blogger.com/profile/17586513342346629237noreply@blogger.comtag:blogger.com,1999:blog-3779956188045272690.post-52892925516807064222017-01-18T10:38:22.207-05:002017-01-18T10:38:22.207-05:00Additionally, you could introduce voxel layering. ...Additionally, you could introduce voxel layering. Similar to how image editing programs work. If you assigned voxel data to layers. That way, an artist could choose the build order of the voxel data, or quickly hide layers of data to make voxel selection easier. That way if their city ends up in the middle of an ocean or mountain, they can hide the proc layer and quickly/easily select/relocate their work manually.Ajmhttps://www.blogger.com/profile/12985928729302303917noreply@blogger.comtag:blogger.com,1999:blog-3779956188045272690.post-77521246190380909762017-01-18T10:21:23.879-05:002017-01-18T10:21:23.879-05:00It is an interesting idea, but how to manage a smo...It is an interesting idea, but how to manage a smooth transition from outside the area into the area? If the algorithms change, there is no practical way to interpolate from old to new.Miguel Ceperohttps://www.blogger.com/profile/17586513342346629237noreply@blogger.comtag:blogger.com,1999:blog-3779956188045272690.post-39842271948938884432017-01-18T10:18:32.075-05:002017-01-18T10:18:32.075-05:00Would it be possible to create a proc gen tool? Ra...Would it be possible to create a proc gen tool? Rather than regenerating the entire world again, you can use the tool to select an area to regenerate with the current algorithms. Alternatively, you could have a tool to lock/unlock voxel data to procedural generation.Ajmhttps://www.blogger.com/profile/12985928729302303917noreply@blogger.comtag:blogger.com,1999:blog-3779956188045272690.post-84425759192233991572017-01-18T08:02:57.668-05:002017-01-18T08:02:57.668-05:00These are all good suggestions, thanks! In this pa...These are all good suggestions, thanks! In this particular case we will add a numeric value to the Terrain node UI named "warp" or something like that. It will default to zero, so older projects will look the same.Miguel Ceperohttps://www.blogger.com/profile/17586513342346629237noreply@blogger.comtag:blogger.com,1999:blog-3779956188045272690.post-71567482521006347732017-01-18T03:45:56.720-05:002017-01-18T03:45:56.720-05:00When it comes to the settings, set it up in such a...When it comes to the settings, set it up in such a way that only the people who want backwards compatibility have to navigate more options, but people who start a new project, don't have to worry about that. Maybe =P.Kamicahttps://www.blogger.com/profile/09074839497845172950noreply@blogger.comtag:blogger.com,1999:blog-3779956188045272690.post-52764679265754161062017-01-18T02:35:02.783-05:002017-01-18T02:35:02.783-05:00Oh right, the 'Irregular Quadrilaterals Grid&#...Oh right, the 'Irregular Quadrilaterals Grid' checkbox would be toggled by default.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-3779956188045272690.post-1328108372030653672017-01-18T02:34:09.289-05:002017-01-18T02:34:09.289-05:00I like both of the generated terrains and could se...I like both of the generated terrains and could see myself taking some of the bits in the square one and placing them in the more organic one, so the most sensible approach would be a checkbox 'Irregular Quadrilaterals Grid'.<br /><br />The most you can do is advertise the big features or fixes in the change logs really. I have Blender and Unity projects that break when opening them in later versions, but I am not going to blame them for improving their software.<br /><br />There's a reason people choose a fixed version for a whole production cycle and only move to the newest iteration of the program after development is finished. Unless you are say Maya adding a whole new fluids renderer and only then it is better as a separate installation and only for the use of that really specific feature for VFX rather than modeling.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-3779956188045272690.post-28996609628911495782017-01-17T17:16:13.435-05:002017-01-17T17:16:13.435-05:00Have a single option that ask's the user if th...Have a single option that ask's the user if they want Human interaction or not. Based on the answer you can then funnel that into the UI presented to the user and define the complexity you want to present based on beginner/intermediate/expert.<br /><br />That does however beg the question of how far you are willing to go to take your code and allow that opportunity of manual intervention vs back end coding required.Anonymoushttps://www.blogger.com/profile/08605384875626343929noreply@blogger.com