tag:blogger.com,1999:blog-3862349614860735414.comments2023-12-01T18:08:38.825+00:00John Whigham's BlogJohn Whighamhttp://www.blogger.com/profile/10862563515312224241noreply@blogger.comBlogger74125tag:blogger.com,1999:blog-3862349614860735414.post-89217529281041253702015-11-12T18:39:21.038+00:002015-11-12T18:39:21.038+00:00FYI:
We finally launched the GigaVoxels release !...FYI: <br />We finally launched the GigaVoxels release !<br /><br />Information, galeries, bins & sources, doc, papers, all is here : http://gigavoxels.imag.fr/<br />( for Windows/Linux, CUDA/GLSL, in BSD3 - for academics & industry ).<br /><br />enjoy !<br />zarfoubohttps://www.blogger.com/profile/08443951163650255692noreply@blogger.comtag:blogger.com,1999:blog-3862349614860735414.post-8245181609176704432015-10-24T02:29:43.695+01:002015-10-24T02:29:43.695+01:0033% funded but a long way to go. F. Brebion's ...33% funded but a long way to go. F. Brebion's work was the inspiration for me to learn OpenGL nearly 10 years ago, and introduced me to the fascinating art of procedural planet generation (and your website!). Both of you (and others like Miguel Cepero and the Outerra team) have been a constant source of inspiration and education. Thank you for your blog, and for sharing your support, John! Bryan Fishmanhttps://www.blogger.com/profile/02792224903620881571noreply@blogger.comtag:blogger.com,1999:blog-3862349614860735414.post-52309494124007893752015-03-11T04:19:54.015+00:002015-03-11T04:19:54.015+00:00This is an interesting post, and got me thinking a...This is an interesting post, and got me thinking about how to improve the ocean water in my game engine. I'm taking a bit of a different approach with precomputed wave textures and normal maps for small scale waves, and sine waves using a tessellation shader for large scale waves. I think there are advantages to each of our approaches. I particularly like the way you did the ocean foam on the beach - I was never able to get mine to look the way I wanted.<br /><br />Let me know if you're interested in a deeper discussion. My blog is at:<br />http://3dworldgen.blogspot.com/Frank Gennarihttps://www.blogger.com/profile/02815853731800103017noreply@blogger.comtag:blogger.com,1999:blog-3862349614860735414.post-78643274545192088672015-03-07T22:34:51.048+00:002015-03-07T22:34:51.048+00:00Thanks Chris, glad you like it. Regarding the wav...Thanks Chris, glad you like it. Regarding the wave travel direction in the water, you are absolutely right that the waves would be better rolling towards the shore - the problem is that the wind direction is baked in to the water surface grid simulation when it's set up and can't easily be varied at runtime. It's also a constant across the 512x512 sample grid so can't change depending on grid location.<br /><br />In order to have the waves moving sensibly towards the shore unique surface simulation grids would need to be set up for each section of shoreline which would be slow and likely prohibitively expensive in terms of memory and GPU performance. In short I absolutely agree it would look much better, but the amount of work required to even approximate the effect is pretty substantial!John Whighamhttps://www.blogger.com/profile/10862563515312224241noreply@blogger.comtag:blogger.com,1999:blog-3862349614860735414.post-75872380403193645582015-03-07T18:24:42.654+00:002015-03-07T18:24:42.654+00:00Looks really nice, as usual man. Keep up the good ...Looks really nice, as usual man. Keep up the good work. Couple of questions/suggestions...<br /><br />Why does it seem like the "waves" are coming from the shore and heading out into deep water in the video? Instead of coming from deep water and heading onto the shore? Waves, even if it's just simulated with a texture, need to look like they're vectoring into the shore. Don't they? I mean, prevailing winds could be blowing out to sea and all which would make some foam/tips of waves seem to be headed out but the wave energy from deepwater would still be cresting/crashing onto the shoreline. I'm rambling so I hope you get the idea. :P<br /><br />The whole idea that you're creating an actual round world is mind blowingly awesome, and you're doing such an awesome job.<br /><br />So vegetation? Any plans to make a blog entry on it soon?Chris Rasmushttp://morcrist.comnoreply@blogger.comtag:blogger.com,1999:blog-3862349614860735414.post-6740890947200809112015-02-07T16:09:29.372+00:002015-02-07T16:09:29.372+00:00Looks good! The distribution of both countries an...Looks good! The distribution of both countries and the capitols look quite realistic.Jonathan M.https://www.blogger.com/profile/13053063838125968099noreply@blogger.comtag:blogger.com,1999:blog-3862349614860735414.post-66900216539015410842015-01-23T13:31:52.890+00:002015-01-23T13:31:52.890+00:00Awe inspiring. Now when can we test it?! Give!
:P...Awe inspiring. Now when can we test it?! Give!<br /><br />:P<br /><br />Seriously though, very interesting read. Thank you for taking the time to write it up. *DO* you have plans to let the fawning masses (i.e., us) to play around with some version of your engine? I imagine it would be extremely satisfying to orbit, land, take off and fly around a randomized planet. Perhaps one randomized based on an editable config file of some type. Just a thought!<br /><br />Take care, and looking forward to your next update.Chris Rasmushttp://morcrist.comnoreply@blogger.comtag:blogger.com,1999:blog-3862349614860735414.post-23623191260104404002014-10-16T12:29:09.893+01:002014-10-16T12:29:09.893+01:00Thanks for pointing this out, it's not somethi...Thanks for pointing this out, it's not something I had really thought of - after a little Wikipedia though (http://en.wikipedia.org/wiki/List_of_enclaves_and_exclaves) I agree it's definitely worth considering. There are some advantages to having the country boundaries encoded as geometry as I feel they will be useful when placing boundary related entities such as border points or fences which would be hard to locate using noise perturbation but I think it would make things interesting to try to incorporate this real world feature into the control net somehow.<br /><br />Perhaps the merging routine could be adapted so boundaries that are close but not conterminous could be merged to produce exclaves...the odd enclave might appear by chance too. Something to think about anyway!John Whighamhttps://www.blogger.com/profile/10862563515312224241noreply@blogger.comtag:blogger.com,1999:blog-3862349614860735414.post-19905541052082672532014-10-16T12:28:57.978+01:002014-10-16T12:28:57.978+01:00This comment has been removed by the author.John Whighamhttps://www.blogger.com/profile/10862563515312224241noreply@blogger.comtag:blogger.com,1999:blog-3862349614860735414.post-49819505467239204182014-10-15T23:31:33.199+01:002014-10-15T23:31:33.199+01:00Enclaves and Exclaves are a thing. "Bubbles&q...Enclaves and Exclaves are a thing. "Bubbles" of the territory of one country being entirely surrounded by another country are not unrealistic, and in some cases can be very extreme.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-3862349614860735414.post-56497629026160400272014-07-15T23:52:09.451+01:002014-07-15T23:52:09.451+01:00I like this approach, but I think that if the citi...I like this approach, but I think that if the cities of a given country were to be used in a source set, the "flavor" of the resulting names would impose a cultural bias where the virtual country is aligned with the real country. For example, if the country "Calleory" had cities with names generated from your French cities list, an observer would just think of Calleory as being a thinly veiled France. (Not unlike how Romulans are thinly veiled Romans, Klingons are thinly veiled Japanese Samurai, and so forth.)<br /><br />Perhaps a way around this is to group the cities of two or three unlike countries together as a source set. This may provide a result set that still contains plausible city names, is still distinctive from the other result sets, but doesn't present the cultural bias.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-3862349614860735414.post-90152139192327067712014-07-14T12:14:37.371+01:002014-07-14T12:14:37.371+01:00:-):-)John Whighamhttps://www.blogger.com/profile/10862563515312224241noreply@blogger.comtag:blogger.com,1999:blog-3862349614860735414.post-54548905862734999942014-07-14T11:12:29.102+01:002014-07-14T11:12:29.102+01:00Just a cautionary tale : http://thedailywtf.com/Ar...Just a cautionary tale : http://thedailywtf.com/Articles/The-Automated-Curse-Generator.aspxAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-3862349614860735414.post-16893195468379192702014-07-14T00:11:29.826+01:002014-07-14T00:11:29.826+01:00You're alive! Woot woot!
Seriously man, glad ...You're alive! Woot woot!<br /><br />Seriously man, glad to see you back at it. Hope all is well.<br /><br />Interesting post. I prefer all of the examples generated with the preceding 2 characters used. I think they produced the most alien names that were still able to be pronounced. Going up to 3 and the names started to retain too many recognizable elements from Earth.<br /><br />While this was in fact a very interesting diversion, I can't wait till you get back to work on the planet(s)!<br /><br />Take care and again, good to see this blog active!Chris Rasmushttp://morcrist.comnoreply@blogger.comtag:blogger.com,1999:blog-3862349614860735414.post-23081565297950107112014-06-24T18:00:44.387+01:002014-06-24T18:00:44.387+01:00Hi! I have a technical (ish) question. I get that ...Hi! I have a technical (ish) question. I get that most of the difficulties when rendering voxels is how to store the data and how to load it efficiently. Now, I'm also a bit obsessed with the idea of procedural generation of planets and other celestial bodies, and I wonder if couldn't we avoid the problem altogether by describing the planet completely by equations. Diegohttps://www.blogger.com/profile/16988300980755973465noreply@blogger.comtag:blogger.com,1999:blog-3862349614860735414.post-71562967519210179912014-06-23T18:16:20.399+01:002014-06-23T18:16:20.399+01:00Are you still working on Osiris? I was curious ho...Are you still working on Osiris? I was curious how far you had gotten... Would you ever considering posting any of your procedural generation code as examples for others doing similar work? I am interested in this topic and it looks like you have taken it pretty far!Framnknoreply@blogger.comtag:blogger.com,1999:blog-3862349614860735414.post-2064824534548236212014-02-06T10:24:05.826+00:002014-02-06T10:24:05.826+00:00Hi Nicholas, taking the noise effect above as an e...Hi Nicholas, taking the noise effect above as an example what is happening here is I'm using a 3D noise function to perturb the distance values of each point inside it's area of effect - here I'm using a simple 3D box as that area. This means that after computing the signed distance of a voxel from the surface using whatever primitives are in the scene (boxes, cylinders etc.) and the CSG operations that combine them that distance then has the noise value (which may be -ve) added to it.<br /><br />In effect this moves the voxel nearer to or further from the surface. If the distance transitions from +ve to -ve due to this change the voxel has moved from empty to solid or conversely if it's transitioned from -ve to +ve it's moved from solid to empty.<br /><br />The key here is we're working with distance-from-surface values at all times not binary inside/outside states and we're perturbing an area of space rather than surfaces explicitly.<br /><br />Hope that helps, feel free to continue the discussion as I'm always happy to help if I can.John Whighamhttps://www.blogger.com/profile/10862563515312224241noreply@blogger.comtag:blogger.com,1999:blog-3862349614860735414.post-72935275277620577712014-02-05T18:26:04.796+00:002014-02-05T18:26:04.796+00:00I have recently been turned on to sparse voxel oct...I have recently been turned on to sparse voxel octrees. I am trying my hand at making a solid CAD program where I build the SVO using CSG techniques. Everything works mostly great. However, I am trying to apply arbitrary transformations to shapes. Unless I am missing something, interval arithmetic doesn't work on primitives passed through a noise filter. The only semi-effective way I have come up for evaluating whether the voxel is inside, outside, or on the shape is to use Monte Carlo techniques. That seems like a cheat and is definitely not deterministic. How do you deal with that situation? (I have been reading papers and blogs like crazy. You are the only example that I found so far that doesn't limit transformations to affine transformations.)Anonymoushttps://www.blogger.com/profile/10900431439748691107noreply@blogger.comtag:blogger.com,1999:blog-3862349614860735414.post-25932659613039639902014-02-03T13:00:36.501+00:002014-02-03T13:00:36.501+00:00Thanks Chris, no I'm not finished thankfully i...Thanks Chris, no I'm not finished thankfully it's just been difficult to find time recently to work on my projects with this and other real-life developments. I have been pottering around again a bit recently though and hope to be able to post again soon with something hopefully of interest.John Whighamhttps://www.blogger.com/profile/10862563515312224241noreply@blogger.comtag:blogger.com,1999:blog-3862349614860735414.post-56377532904363326572014-02-01T05:42:39.289+00:002014-02-01T05:42:39.289+00:00Hey guy. So are you finished? I've been checki...Hey guy. So are you finished? I've been checking your site almost daily for the last...ever...hoping that you'll resume your work.<br /><br />Hope everything's going alright with you and wish you the best.<br /><br />Take care.Chris Rasmushttp://morcrist.comnoreply@blogger.comtag:blogger.com,1999:blog-3862349614860735414.post-53614044675777434372013-10-05T01:58:24.025+01:002013-10-05T01:58:24.025+01:00@nesetails yeah, tought about that too but didn...@nesetails yeah, tought about that too but didn't know anything of fields<br />just told myself that there must be some way to predefine undergroundAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-3862349614860735414.post-91555529447913118522013-09-11T12:21:50.660+01:002013-09-11T12:21:50.660+01:00This method is significantly better for mobile, wh...This method is significantly better for mobile, where the blank "corners" of a quad would cause overdraw (say, if the use case was a screen full of circles). For a single ring, I would agree with JeBuS.runonthespothttps://www.blogger.com/profile/10658125378321957909noreply@blogger.comtag:blogger.com,1999:blog-3862349614860735414.post-419504004545320152013-08-29T09:15:10.034+01:002013-08-29T09:15:10.034+01:00Thanks for the info.Thanks for the info.Quad ringshttp://www.darcoid.com/noreply@blogger.comtag:blogger.com,1999:blog-3862349614860735414.post-55548427195197408792013-08-24T05:13:19.041+01:002013-08-24T05:13:19.041+01:00I've been thinking about this stuff in the exa...I've been thinking about this stuff in the exact same thought path. Though I've been considering 'fields' of data. The only data stored would be surface topology down to maybe 1m at a side. Everything else is generated on the fly trough seed points. "forest starts here, with seed XXXXX" that kinda stuff. Then have generated detail based on material types and terrain seeds. <br /><br />But for everything underground and even the material itself... defined by fields. Giant boundaries that define volumes. anything inside of it is one material or another. Within that field sub fields are possible, say the area is primarily gabbro, inside of it might be concentrations of metal ores. <br /><br />All this might be 100 meters down, never looked at until some one digs down and hits Gabbro, and only then does it store voxel data for the shaft dug and temporary data for the surrounding voxels (to make digging in to it quick and efficient) <br /><br />This way, the important underground data is there, material type, wealth, perhaps a field defining a cave system, but ungenerated, or an underground lake, also not generated (but from the surface could allow wells to be sunk without defining the underground.)nesetalishttps://www.blogger.com/profile/09742392304980954448noreply@blogger.comtag:blogger.com,1999:blog-3862349614860735414.post-13490282627812481692013-07-12T03:08:52.593+01:002013-07-12T03:08:52.593+01:00Hey John,
I think you could also consider using c...Hey John,<br /><br />I think you could also consider using compression to reduce the amount of data you are really storing by a truly massive amount.<br /><br />Another thing to think about: Use procedural detail generation for areas of the planet that have yet to be modified. That is to say, use your noise functions up until the player actually goes and interacts with it. Or better yet. STILL use procedural generation algorithms, but then modify the result with the stored changes a player may have made.<br />That way you get the best of both worlds.Scott Richmondhttps://www.blogger.com/profile/11435228878954774684noreply@blogger.com