{"id":3123,"date":"2016-06-18T02:45:01","date_gmt":"2016-06-18T01:45:01","guid":{"rendered":"http:\/\/phoenixgamedevelopment.com\/blog\/?p=3123"},"modified":"2016-06-18T02:45:01","modified_gmt":"2016-06-18T01:45:01","slug":"p-152-virtual-world-concept-update-125-planet-sized-terrain-part-4","status":"publish","type":"post","link":"https:\/\/phoenixgamedevelopment.com\/blog\/p-152-virtual-world-concept-update-125-planet-sized-terrain-part-4\/","title":{"rendered":"P-152: Virtual World Concept Update 125: Planet-sized Terrain: Part 4"},"content":{"rendered":"<p>Upon further consideration, it seems that my idea for the realistic planet-size terrain won&#8217;t work properly. The reason for this is that even though\u00a0the terrain is locked at 10,000 units, and it will continue to subdivide as the player gets closer, it&#8217;s actual size will not increase. It will still just be a 10,000 scale terrain. I need to find some way to divide the terrain into chunks, all of which combine to form a planet that is the same size as it would be in real life.<\/p>\n<p>My new idea is to store the &#8220;true&#8221; position of the center and radius of the planet as a 64-bit float in the spherical terrain object. I will also store the actual position of the player (as a 64-bit float, or a fixed point set of coordinates).\u00a0When the player is actually standing on the surface of the terrain, I will be able to use the &#8220;true&#8221; values to cull all nodes\u00a0that are not within 10,000 units of the player. This should eliminate the texturing and rendering issues that I was having before. More importantly, however, it will allow me to move the player to a new position in world space every time they exceed the 10,000 unit limit, but keep their local coordinates the same (using the floating origin system).<\/p>\n<p>This means that as the player moves through the world, different nodes\u00a0from the terrain will be paged in and others paged out. This should work, although I am still unsure of how exactly I should implement this.<\/p>\n<p>At long ranges, I will use the aforementioned scaling technique to handle terrain rendering. Switching back and forth between the two will be another challenge I will need to solve.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Upon further consideration, it seems that my idea for the realistic planet-size terrain won&#8217;t work properly. The reason for this is that even though\u00a0the terrain is locked at 10,000 units, and it will continue to subdivide as the player gets closer, it&#8217;s actual size will not increase. It will still just be a 10,000 scale [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,17,10,11],"tags":[],"class_list":["post-3123","post","type-post","status-publish","format-standard","hentry","category-art-and-designs","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\/3123"}],"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=3123"}],"version-history":[{"count":2,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/posts\/3123\/revisions"}],"predecessor-version":[{"id":3125,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/posts\/3123\/revisions\/3125"}],"wp:attachment":[{"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/media?parent=3123"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/categories?post=3123"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/tags?post=3123"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}