{"id":2146,"date":"2016-01-03T23:54:15","date_gmt":"2016-01-03T23:54:15","guid":{"rendered":"http:\/\/phoenixgamedevelopment.com\/blog\/?p=2146"},"modified":"2016-01-03T23:54:15","modified_gmt":"2016-01-03T23:54:15","slug":"p-152-virtual-world-concept-update-89-chunked-levels-of-detail-using-quad-trees-part-56","status":"publish","type":"post","link":"https:\/\/phoenixgamedevelopment.com\/blog\/p-152-virtual-world-concept-update-89-chunked-levels-of-detail-using-quad-trees-part-56\/","title":{"rendered":"P-152: Virtual World Concept Update 89: Chunked Levels of Detail Using Quad Trees Part 56"},"content":{"rendered":"<p>I have made significant changes to the algorithms which I have been using to initialise and populate the quad tree. I now have the terrain successfully rendering using these algorithms.<\/p>\n<p>Unlike the recursive system that I was using, these algorithms use &#8220;breadth first&#8221; or &#8220;level order&#8221; search, which means the first tier will be processes first, then the second, and so on. This is exactly what I want.<\/p>\n<p>I am not certain how this will affect the efficiency of the system, but so far, I am only using the algorithms at load time, so it shouldn&#8217;t make much difference. I believe my current recursive algorithm should work for the run-time subdivision of the nodes.<\/p>\n<p>I am currently rendering all nodes, for testing purposes, but I believe that I should now be able to run my optimised tree parsing algorithm without the difficulties that I was seeing before. I should be very close to proof of concept here, if everything has worked as I believe it has.<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-2154\" src=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/01\/PhoenixGameDevelopment37-Jan.-03-21.20-300x165.jpg\" alt=\"PhoenixGameDevelopment37 Jan. 03 21.20\" width=\"300\" height=\"165\" srcset=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/01\/PhoenixGameDevelopment37-Jan.-03-21.20-300x165.jpg 300w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/01\/PhoenixGameDevelopment37-Jan.-03-21.20-768x422.jpg 768w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/01\/PhoenixGameDevelopment37-Jan.-03-21.20-1024x563.jpg 1024w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/01\/PhoenixGameDevelopment37-Jan.-03-21.20.jpg 1920w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/> <img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-2153\" src=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/01\/PhoenixGameDevelopment39-Jan.-03-21.20-300x165.jpg\" alt=\"PhoenixGameDevelopment39 Jan. 03 21.20\" width=\"300\" height=\"165\" srcset=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/01\/PhoenixGameDevelopment39-Jan.-03-21.20-300x165.jpg 300w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/01\/PhoenixGameDevelopment39-Jan.-03-21.20-768x422.jpg 768w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/01\/PhoenixGameDevelopment39-Jan.-03-21.20-1024x563.jpg 1024w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/01\/PhoenixGameDevelopment39-Jan.-03-21.20.jpg 1920w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/> <img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-2152\" src=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/01\/PhoenixGameDevelopment40-Jan.-03-21.20-300x165.jpg\" alt=\"PhoenixGameDevelopment40 Jan. 03 21.20\" width=\"300\" height=\"165\" srcset=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/01\/PhoenixGameDevelopment40-Jan.-03-21.20-300x165.jpg 300w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/01\/PhoenixGameDevelopment40-Jan.-03-21.20-768x422.jpg 768w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/01\/PhoenixGameDevelopment40-Jan.-03-21.20-1024x563.jpg 1024w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/01\/PhoenixGameDevelopment40-Jan.-03-21.20.jpg 1920w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/> <img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-2147\" src=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/01\/PhoenixGameDevelopment35-Jan.-03-00.23-300x168.jpg\" alt=\"PhoenixGameDevelopment35 Jan. 03 00.23\" width=\"300\" height=\"168\" srcset=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/01\/PhoenixGameDevelopment35-Jan.-03-00.23-300x168.jpg 300w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/01\/PhoenixGameDevelopment35-Jan.-03-00.23-768x431.jpg 768w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/01\/PhoenixGameDevelopment35-Jan.-03-00.23-1024x575.jpg 1024w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/01\/PhoenixGameDevelopment35-Jan.-03-00.23.jpg 1783w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-2151\" src=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/01\/PhoenixGameDevelopment41-Jan.-03-22.59-300x233.jpg\" alt=\"PhoenixGameDevelopment41 Jan. 03 22.59\" width=\"300\" height=\"233\" srcset=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/01\/PhoenixGameDevelopment41-Jan.-03-22.59-300x233.jpg 300w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/01\/PhoenixGameDevelopment41-Jan.-03-22.59-768x595.jpg 768w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/01\/PhoenixGameDevelopment41-Jan.-03-22.59-1024x794.jpg 1024w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/01\/PhoenixGameDevelopment41-Jan.-03-22.59.jpg 1040w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/> <img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-2150\" src=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/01\/PhoenixGameDevelopment43-Jan.-03-22.59-300x233.jpg\" alt=\"PhoenixGameDevelopment43 Jan. 03 22.59\" width=\"300\" height=\"233\" srcset=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/01\/PhoenixGameDevelopment43-Jan.-03-22.59-300x233.jpg 300w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/01\/PhoenixGameDevelopment43-Jan.-03-22.59-768x595.jpg 768w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/01\/PhoenixGameDevelopment43-Jan.-03-22.59-1024x794.jpg 1024w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/01\/PhoenixGameDevelopment43-Jan.-03-22.59.jpg 1040w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/> <img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-2149\" src=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/01\/PhoenixGameDevelopment45-Jan.-03-22.59-300x233.jpg\" alt=\"PhoenixGameDevelopment45 Jan. 03 22.59\" width=\"300\" height=\"233\" srcset=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/01\/PhoenixGameDevelopment45-Jan.-03-22.59-300x233.jpg 300w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/01\/PhoenixGameDevelopment45-Jan.-03-22.59-768x595.jpg 768w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/01\/PhoenixGameDevelopment45-Jan.-03-22.59-1024x794.jpg 1024w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/01\/PhoenixGameDevelopment45-Jan.-03-22.59.jpg 1040w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/> <img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-2148\" src=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/01\/PhoenixGameDevelopment46-Jan.-03-22.59-300x233.jpg\" alt=\"PhoenixGameDevelopment46 Jan. 03 22.59\" width=\"300\" height=\"233\" srcset=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/01\/PhoenixGameDevelopment46-Jan.-03-22.59-300x233.jpg 300w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/01\/PhoenixGameDevelopment46-Jan.-03-22.59-768x595.jpg 768w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/01\/PhoenixGameDevelopment46-Jan.-03-22.59-1024x794.jpg 1024w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/01\/PhoenixGameDevelopment46-Jan.-03-22.59.jpg 1040w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I have made significant changes to the algorithms which I have been using to initialise and populate the quad tree. I now have the terrain successfully rendering using these algorithms. Unlike the recursive system that I was using, these algorithms use &#8220;breadth first&#8221; or &#8220;level order&#8221; search, which means the first tier will be processes [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,17,10,11],"tags":[],"class_list":["post-2146","post","type-post","status-publish","format-standard","hentry","category-astral-realms","category-p-0","category-software-and-games","category-spiritus-astrum","has-post-title","has-post-date","has-post-category","has-post-tag","has-post-comment","has-post-author",""],"aioseo_notices":[],"builder_content":"","_links":{"self":[{"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/posts\/2146"}],"collection":[{"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/comments?post=2146"}],"version-history":[{"count":2,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/posts\/2146\/revisions"}],"predecessor-version":[{"id":2156,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/posts\/2146\/revisions\/2156"}],"wp:attachment":[{"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/media?parent=2146"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/categories?post=2146"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/tags?post=2146"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}