tag:blogger.com,1999:blog-3779956188045272690.post7095911076124157804..comments2024-03-22T01:46:59.425-04:00Comments on Procedural World: Slaying the LOD monsterMiguel Ceperohttp://www.blogger.com/profile/17586513342346629237noreply@blogger.comBlogger22125tag:blogger.com,1999:blog-3779956188045272690.post-60993677188368662792017-07-15T18:07:23.738-04:002017-07-15T18:07:23.738-04:00You mention not storing normals in voxels, which b...You mention not storing normals in voxels, which brings up a question I've always wondered about regarding DC in general and VoxelFarm in specific which is how you represent flat surface intersections.<br />You could probably get away with assuming all natural terrain has smooth normals, but if a player inserts a cube (or any polyhedron) into the world in one of your videos or in Landmark it appears the flat face intersections are preserved. eg, the normals appear to remain discontinuous at vertices (and edges). <br />Is this an optical illusion or do you <br />a) flag vertices as flat/smooth-shaded in your stored representation of user edits?<br />b) try to compute flat vs. smooth on the fly during reconstruction based on the sharpness of the angles of the incident faces?<br />c) Something else?<br />Thanks!David Redkeynoreply@blogger.comtag:blogger.com,1999:blog-3779956188045272690.post-72659961207354097562016-12-23T12:55:22.501-05:002016-12-23T12:55:22.501-05:00Here it may be also illumination, hard to tell (mo...Here it may be also illumination, hard to tell (mountains on the left): https://youtu.be/D6Uuoy4G-Dw?t=46sGrayFacehttps://www.blogger.com/profile/16203447667447387999noreply@blogger.comtag:blogger.com,1999:blog-3779956188045272690.post-72275624718211871352016-12-23T07:37:06.811-05:002016-12-23T07:37:06.811-05:00Well this is the one video where we claim no notic...Well this is the one video where we claim no noticeable geometry LOD popping. Like you say there are some noticeable swaps in illumination, but this is not coming from voxel content and it can be easily avoided. In fact, did you notice any of this in the second part of the video, which is using UE4 rendering?<br /><br />Vegetation LOD is managed by UE4, it depends largely on how you configure your assets. The particular pop in you linked in the video was caused by a bug in our instance tracking system, it is not really a LOD pop in. Note it is not the same objects changing LOD, this bug caused entire instances to disappear or appear. It has been fixed since.Miguel Ceperohttps://www.blogger.com/profile/17586513342346629237noreply@blogger.comtag:blogger.com,1999:blog-3779956188045272690.post-43879118281303053422016-12-22T22:34:46.640-05:002016-12-22T22:34:46.640-05:00I disagree. All videos so far show very noticeable...I disagree. All videos so far show very noticeable LOD swapping. Not much in this one, only noticeable in the way shadows change. I suspect what isn't noticeable is the density. I doubt even rendering a scene with 4 times more triangles in each LOD would make much difference.<br />Biggest LOD issues aren't related to geometry, like foliage getting reorganized here: https://youtu.be/LPWtNRkpqZo?t=2m20sGrayFacehttps://www.blogger.com/profile/16203447667447387999noreply@blogger.comtag:blogger.com,1999:blog-3779956188045272690.post-6751567394979268402016-11-28T11:50:24.858-05:002016-11-28T11:50:24.858-05:00Surface mesh simplification happens in real time. ...Surface mesh simplification happens in real time. The blog posts you mentioned are about Voxel Farm version 1, which was doing everything offline in a server farm. With Voxel Farm 2 and 3, this happens on the fly, often in the user's machine.<br /><br />For the LOD optimization described here, however, there is a new occlusion filtering that happens offline.<br /><br />Like you said, we do not store normals in voxels. The wobbly effect in DC is caused by the octree/mesh simplification. Since there is always an error threshold involved, you may have multiple surface configurations that meet this threshold. The more lenient you are with the allowed simplification error, the more allowed possible configurations you will have. Switching from one configuration to the next is what is perceived a wobbling.Miguel Ceperohttps://www.blogger.com/profile/17586513342346629237noreply@blogger.comtag:blogger.com,1999:blog-3779956188045272690.post-4100145608852568572016-11-28T05:42:21.749-05:002016-11-28T05:42:21.749-05:00Is all of the LOD/decimation still done in a post-...Is all of the LOD/decimation still done in a post-process as was described *hundreds* of posts ago?<br /><br />I was skimming the VoxelFarm docs on extensions and noticed that the voxels were positions without normals. While it made it a lot clearer how you get such smooth edit results (dodging DC's constant wobbly verts) and some of the nifty tools, sure left me baffled about how an octree could be collapsed with just that until I came across the farm/dispatch post.Anonymoushttps://www.blogger.com/profile/13448574895765502719noreply@blogger.comtag:blogger.com,1999:blog-3779956188045272690.post-30077121506427723612016-11-07T20:39:04.004-05:002016-11-07T20:39:04.004-05:00Well that was kind of silly now, hey! ;)Well that was kind of silly now, hey! ;)DaveHhttps://www.blogger.com/profile/03144797839905475079noreply@blogger.comtag:blogger.com,1999:blog-3779956188045272690.post-39144032987723443532016-10-31T17:44:30.492-04:002016-10-31T17:44:30.492-04:00Very good guess. It is the frustum culling. It is ...Very good guess. It is the frustum culling. It is testing using spheres and they all should be 1.4142135623730950488016887242097 times larger.Miguel Ceperohttps://www.blogger.com/profile/17586513342346629237noreply@blogger.comtag:blogger.com,1999:blog-3779956188045272690.post-56731302390453316092016-10-31T13:02:38.480-04:002016-10-31T13:02:38.480-04:00It appears that some of your geometry bounding box...It appears that some of your geometry bounding boxes might be too small, as the screen clipping is happening too early on some polygons near the beginning.DaveHhttps://www.blogger.com/profile/03144797839905475079noreply@blogger.comtag:blogger.com,1999:blog-3779956188045272690.post-58365287901233937232016-10-30T01:25:37.887-04:002016-10-30T01:25:37.887-04:00Epic!Epic!Anonymoushttps://www.blogger.com/profile/02841122186021304017noreply@blogger.comtag:blogger.com,1999:blog-3779956188045272690.post-53187203322398098572016-10-26T12:49:45.346-04:002016-10-26T12:49:45.346-04:00For realtime GI do they involve LOD and occlusion ...For realtime GI do they involve LOD and occlusion methods, or more importantly, can they tie in to what you are doing with your LOD methodology as seen above?Ajmhttps://www.blogger.com/profile/12985928729302303917noreply@blogger.comtag:blogger.com,1999:blog-3779956188045272690.post-64524054926507966502016-10-26T10:54:08.920-04:002016-10-26T10:54:08.920-04:00Yes, Global Illumination is thinking about light, ...Yes, Global Illumination is thinking about light, how it bounces off objects and has its properties changed, like color. So far realtime GI methods are not very practical, but we'll get there. Meanwhile there are multiple degrees of hackery, like using screen-space ambient occlusion.Miguel Ceperohttps://www.blogger.com/profile/17586513342346629237noreply@blogger.comtag:blogger.com,1999:blog-3779956188045272690.post-73302832689152184082016-10-25T21:35:20.506-04:002016-10-25T21:35:20.506-04:00I think it is important to think about shadows not...I think it is important to think about shadows not as if they were stencils to darken the surroundings, but to think of light in general. The shade beside the trunk of a big leafy tree will be darker than the shade of a dead tree. This is because the sky itself is a light source, the more of that light source a given space gets the brighter it will be. Same goes for the shadow your hand casts. The further from your hand the more light will be shining upon the surface. Unless of course you are in a windowless room with a singular point source and black walls except for one... this last scenario will produce extremely detailed shadows even at a distance.Ajmhttps://www.blogger.com/profile/12985928729302303917noreply@blogger.comtag:blogger.com,1999:blog-3779956188045272690.post-87139276596733214672016-10-25T16:56:48.215-04:002016-10-25T16:56:48.215-04:00To clarify a bit more. When there is a large shado...To clarify a bit more. When there is a large shadow, this shadow makes the scene dark. Say there is a large building blocking the sun then the townsquare is covered in shadows. But if there is a player on the towssquare, then there should be a second shadow coming from the player which makes the townsquare even darker. Your engine doest do this. when the player walks into a shadow his own shadow disapears into the shadow on the ground. This shadow isnt add up with the shadow on the ground. The ground just get the same darker output whether it has 2, 3 or 4 objects in front of him blocking the sun. Its the most notable when walking in a house, where everything has the same lighting. Everything looks as if there is no shadow at all. As if you used ambient lighting with a dark grey color. What do you think about this. Will this ever change or is this a technical limitation where you just stop raytracing the first oclusion you hit, assuming you raytrace the shadows, or something else?Anonymoushttps://www.blogger.com/profile/15659193375869113565noreply@blogger.comtag:blogger.com,1999:blog-3779956188045272690.post-81994736291721690912016-10-25T16:46:46.857-04:002016-10-25T16:46:46.857-04:00We do not raytrace. This is rendered using polygon...We do not raytrace. This is rendered using polygons and using traditional shadowing algorithms.<br /><br />We are working on global illumination solutions, but you could also apply any third party solution. In fact the second part of the video uses UE4's screen space ambient occlusion.Miguel Ceperohttps://www.blogger.com/profile/17586513342346629237noreply@blogger.comtag:blogger.com,1999:blog-3779956188045272690.post-28353863675610874672016-10-25T16:35:29.461-04:002016-10-25T16:35:29.461-04:00Good stuff! Is screen space ambient oclusion also ...Good stuff! Is screen space ambient oclusion also coming soon? I see you raytrace...? the shadows, but my point is the shadows are all the same intensity. Its all the same grey color, making the scene a little bit grey. maybe you can test a shadow technique where you count the length of the shadow ray and cast draw a darker shadow if the ray is short and more grey if the shadowray becomes longer. Its based on real life where the shadow of your hand close to the table is darker then the shadow of your hand far above the table. I think your scene would look much better and realistic that way. I think your scene has not as much depth if you understand what i mean, because the shadows all just make the scene more grey and less "dark". Do you understand what im saying and what do you think about the shadows.Anonymoushttps://www.blogger.com/profile/15659193375869113565noreply@blogger.comtag:blogger.com,1999:blog-3779956188045272690.post-33879944431552885382016-10-19T15:08:17.967-04:002016-10-19T15:08:17.967-04:00It sounds an interesting idea, but we do not do an...It sounds an interesting idea, but we do not do anything like that. We do use a view-dependent criteria to remove complexity, there was a post a while ago about it: http://procworld.blogspot.ca/2016/02/improving-building-lod.htmlMiguel Ceperohttps://www.blogger.com/profile/17586513342346629237noreply@blogger.comtag:blogger.com,1999:blog-3779956188045272690.post-36513761751159587622016-10-19T14:53:10.538-04:002016-10-19T14:53:10.538-04:00Good stuff! For those of us who are impatient an...Good stuff! For those of us who are impatient and can't wait for your next post, are you perhaps doing view-dependent deformation of voxel shapes prior to polygonalization? <br />eg, if a chunk lies far away, primarily in the x direction, convert the voxels to long, narrow boxes that are fat in x and thin in y and z. It seems you could preserve one-pixel accuracy while still getting reduced distant geometry that way.David Redkeynoreply@blogger.comtag:blogger.com,1999:blog-3779956188045272690.post-66560258502475968262016-10-18T11:11:41.016-04:002016-10-18T11:11:41.016-04:00There is a lot of room for improvement here. This ...There is a lot of room for improvement here. This technique relies on early occlusion culling, which can be improved. I will be covering this in the next post. <br /><br />The immediate goal is to bring all this into the Unity and Unreal Engine integrations.<br /><br />I'll keep a lid on the major big goals for now. Not making any promises, but we have a couple of really cool things going on at the moment.Miguel Ceperohttps://www.blogger.com/profile/17586513342346629237noreply@blogger.comtag:blogger.com,1999:blog-3779956188045272690.post-61380626422228177022016-10-18T10:52:51.202-04:002016-10-18T10:52:51.202-04:00Wow, congratulations!
It's absolutely seamless...Wow, congratulations!<br />It's absolutely seamless.<br /><br />What's your next big goal?<br />(animation, l-system integration, more procedural integration)Anonymoushttps://www.blogger.com/profile/03798401726458628496noreply@blogger.comtag:blogger.com,1999:blog-3779956188045272690.post-53999574372067908512016-10-18T07:51:47.179-04:002016-10-18T07:51:47.179-04:00Thanks, just remember this has been a team's e...Thanks, just remember this has been a team's effort since 2013.<br /><br />We designed Voxel Farm for any type of game world, not just large open worlds with lots of content in them. But these are maybe the most complex game worlds you can aspire to create, if we can do them well it provides a good idea of the range of the engine.Miguel Ceperohttps://www.blogger.com/profile/17586513342346629237noreply@blogger.comtag:blogger.com,1999:blog-3779956188045272690.post-35450905881897360452016-10-18T07:27:02.571-04:002016-10-18T07:27:02.571-04:00Dude, I've been following your blog for a few ...Dude, I've been following your blog for a few years now, and every time I come back your voxel engine is even more impressive. Hoping to see a lot of games using voxel farm in the future.<br /><br />I have one question. How general purpose is voxel farm? All your examples until now have been RPGish scenarios. You do have UE4 integration so that gives me hope.Vartulhttps://www.blogger.com/profile/16948418700637563881noreply@blogger.com