tag:blogger.com,1999:blog-5055426614227209030.post8955875953087553896..comments2022-09-22T17:40:53.185-07:00Comments on Nick's Voxel Blog: SSE2 QEF implementationNick Gildeahttp://www.blogger.com/profile/14927025572317527151noreply@blogger.comBlogger9125tag:blogger.com,1999:blog-5055426614227209030.post-10651298881948279982017-10-27T11:21:32.498-07:002017-10-27T11:21:32.498-07:00Sorry I missed your comment until now! Yeah I have...Sorry I missed your comment until now! Yeah I have a Clipmap class which maintains the chunks in an octree and the LOD is decided by walking the octree and selecting "active" nodes which will be drawn, based on the distance of the node to the camera. If you check the code on github its all in clipmap.cpp. Hope that helpsNick Gildeahttps://www.blogger.com/profile/14927025572317527151noreply@blogger.comtag:blogger.com,1999:blog-5055426614227209030.post-2982415581954041002017-09-29T10:02:15.975-07:002017-09-29T10:02:15.975-07:00Nice to see this blog is still going! Quick questi...Nice to see this blog is still going! Quick question; how are you managing chunks' creation/destruction and their positions in relation to the camera distance? A chunk manager class? If so, does this then also handle LOD or do the chunks themselves do that?Anonymoushttps://www.blogger.com/profile/11833641757756842210noreply@blogger.comtag:blogger.com,1999:blog-5055426614227209030.post-85655122889833685432017-03-23T06:55:34.531-07:002017-03-23T06:55:34.531-07:00The use case would be the main difference. The Ope...The use case would be the main difference. The OpenCL version would have a lot of overhead attached if you want to _just_ use OpenCL to calculate the QEFs (i.e. everything else was on the CPU). This is for when the code is all running on the CPU.<br /><br />I had a look but didn't see many opportunties for taking advantage of the wider registers in AVX. The obvious case is the matrix multiply but that didn't really make any difference.Nick Gildeahttps://www.blogger.com/profile/14927025572317527151noreply@blogger.comtag:blogger.com,1999:blog-5055426614227209030.post-79801049188314878992017-03-23T06:38:56.222-07:002017-03-23T06:38:56.222-07:00How does this compare to the OpenCL version? Also,...How does this compare to the OpenCL version? Also, do you have any plans to extend this to other instruction sets, like AVX? Anonymoushttps://www.blogger.com/profile/12829502910103362391noreply@blogger.comtag:blogger.com,1999:blog-5055426614227209030.post-31188177236496621222017-03-09T07:33:11.573-08:002017-03-09T07:33:11.573-08:00Okay, I see.Okay, I see.Zauber Paracelsushttps://www.blogger.com/profile/05779527903717005599noreply@blogger.comtag:blogger.com,1999:blog-5055426614227209030.post-81594186250114981022017-03-03T09:25:29.147-08:002017-03-03T09:25:29.147-08:00Thanks :)Thanks :)Nick Gildeahttps://www.blogger.com/profile/14927025572317527151noreply@blogger.comtag:blogger.com,1999:blog-5055426614227209030.post-15272265115804499402017-03-03T09:25:13.754-08:002017-03-03T09:25:13.754-08:00You can think of it doing something similar to a &...You can think of it doing something similar to a "line of best fit" you might have drawn on a graph in school, except in 3D with a point of best fit, not a line. You have the input points and then the QEF minimises the error introduced by the approximation with the new position/vertex, giving a "point of best fit".<br /><br />Something like this, but in 3D: https://en.wikipedia.org/wiki/Least_squaresNick Gildeahttps://www.blogger.com/profile/14927025572317527151noreply@blogger.comtag:blogger.com,1999:blog-5055426614227209030.post-89873367799127719932017-03-03T08:29:16.645-08:002017-03-03T08:29:16.645-08:00Okay, noob question:
What exactly does a QEF do?Okay, noob question:<br /><br />What exactly does a QEF do?Zauber Paracelsushttps://www.blogger.com/profile/05779527903717005599noreply@blogger.comtag:blogger.com,1999:blog-5055426614227209030.post-40699109773750193982017-03-02T19:44:06.466-08:002017-03-02T19:44:06.466-08:00That's pretty neatThat's pretty neatAnonymousnoreply@blogger.com