{"id":3598,"date":"2016-09-04T05:14:24","date_gmt":"2016-09-04T04:14:24","guid":{"rendered":"http:\/\/phoenixgamedevelopment.com\/blog\/?p=3598"},"modified":"2016-09-04T05:14:24","modified_gmt":"2016-09-04T04:14:24","slug":"p-152-virtual-world-concept-update-167-planet-sized-terrain-part-46","status":"publish","type":"post","link":"https:\/\/phoenixgamedevelopment.com\/blog\/p-152-virtual-world-concept-update-167-planet-sized-terrain-part-46\/","title":{"rendered":"P-152: Virtual World Concept Update 167: Planet-sized Terrain: Part 46"},"content":{"rendered":"<p>The idea that I had to correct the offset on the Z-axis didn&#8217;t seem to be working out well, so I decided to try to convert the coordinate system that I am using into spherical coordinates.<\/p>\n<p>Once I have done this, the plan is to use Rodrigues&#8217; rotation formula to rotate, instead of translate, the nodes. IE, instead of moving the nodes back towards the origin (in a linear fashion) as the player moves, I would instead rotate the nodes back along the radius of the planet. I can then convert the nodes back to cartesian coordinates, and this should solve the problem.<\/p>\n<p>This process has been going well, and I think I am fairly close to being able to implement this, but I am not sure if it will actually work.<\/p>\n<p>The first of the below images show my attempts to add an offset to the z-axis of the terrain. I made some progress with this, but it is quite a messy solution, and doesn&#8217;t appear to work as well the further the player travels from the origin (in world space).<\/p>\n<figure id=\"attachment_3604\" aria-describedby=\"caption-attachment-3604\" style=\"width: 300px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/09\/PhoenixGameDevelopment-29_08_2016-12_01_06-AM.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-3604\" src=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/09\/PhoenixGameDevelopment-29_08_2016-12_01_06-AM-300x209.jpg\" alt=\"wgnuplot 29\/08\/2016 , 12:01:06 AM Gnuplot (window id : 0)\" width=\"300\" height=\"209\" srcset=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/09\/PhoenixGameDevelopment-29_08_2016-12_01_06-AM-300x209.jpg 300w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/09\/PhoenixGameDevelopment-29_08_2016-12_01_06-AM-768x534.jpg 768w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/09\/PhoenixGameDevelopment-29_08_2016-12_01_06-AM-1024x712.jpg 1024w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/09\/PhoenixGameDevelopment-29_08_2016-12_01_06-AM.jpg 1216w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-3604\" class=\"wp-caption-text\">wgnuplot<br \/>29\/08\/2016 , 12:01:06 AM<br \/>Gnuplot (window id : 0)<\/figcaption><\/figure>\n<figure id=\"attachment_3603\" aria-describedby=\"caption-attachment-3603\" style=\"width: 300px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/09\/PhoenixGameDevelopment-28_08_2016-07_21_16-PM.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-3603\" src=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/09\/PhoenixGameDevelopment-28_08_2016-07_21_16-PM-300x209.jpg\" alt=\"wgnuplot 28\/08\/2016 , 07:21:16 PM Gnuplot (window id : 0)\" width=\"300\" height=\"209\" srcset=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/09\/PhoenixGameDevelopment-28_08_2016-07_21_16-PM-300x209.jpg 300w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/09\/PhoenixGameDevelopment-28_08_2016-07_21_16-PM-768x534.jpg 768w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/09\/PhoenixGameDevelopment-28_08_2016-07_21_16-PM-1024x712.jpg 1024w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/09\/PhoenixGameDevelopment-28_08_2016-07_21_16-PM.jpg 1216w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-3603\" class=\"wp-caption-text\">wgnuplot<br \/>28\/08\/2016 , 07:21:16 PM<br \/>Gnuplot (window id : 0)<\/figcaption><\/figure>\n<figure id=\"attachment_3602\" aria-describedby=\"caption-attachment-3602\" style=\"width: 300px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/09\/PhoenixGameDevelopment-28_08_2016-07_22_02-PM.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-3602\" src=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/09\/PhoenixGameDevelopment-28_08_2016-07_22_02-PM-300x209.jpg\" alt=\"wgnuplot 28\/08\/2016 , 07:22:02 PM Gnuplot (window id : 0)\" width=\"300\" height=\"209\" srcset=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/09\/PhoenixGameDevelopment-28_08_2016-07_22_02-PM-300x209.jpg 300w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/09\/PhoenixGameDevelopment-28_08_2016-07_22_02-PM-768x534.jpg 768w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/09\/PhoenixGameDevelopment-28_08_2016-07_22_02-PM-1024x712.jpg 1024w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/09\/PhoenixGameDevelopment-28_08_2016-07_22_02-PM.jpg 1216w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-3602\" class=\"wp-caption-text\">wgnuplot<br \/>28\/08\/2016 , 07:22:02 PM<br \/>Gnuplot (window id : 0)<\/figcaption><\/figure>\n<figure id=\"attachment_3601\" aria-describedby=\"caption-attachment-3601\" style=\"width: 300px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/09\/PhoenixGameDevelopment-28_08_2016-07_22_07-PM.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-3601\" src=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/09\/PhoenixGameDevelopment-28_08_2016-07_22_07-PM-300x209.jpg\" alt=\"wgnuplot 28\/08\/2016 , 07:22:07 PM Gnuplot (window id : 0)\" width=\"300\" height=\"209\" srcset=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/09\/PhoenixGameDevelopment-28_08_2016-07_22_07-PM-300x209.jpg 300w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/09\/PhoenixGameDevelopment-28_08_2016-07_22_07-PM-768x534.jpg 768w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/09\/PhoenixGameDevelopment-28_08_2016-07_22_07-PM-1024x712.jpg 1024w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/09\/PhoenixGameDevelopment-28_08_2016-07_22_07-PM.jpg 1216w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-3601\" class=\"wp-caption-text\">wgnuplot<br \/>28\/08\/2016 , 07:22:07 PM<br \/>Gnuplot (window id : 0)<\/figcaption><\/figure>\n<figure id=\"attachment_3594\" aria-describedby=\"caption-attachment-3594\" style=\"width: 300px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/08\/PhoenixGameDevelopment-28_08_2016-08_19_20-AM.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-3594\" src=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/08\/PhoenixGameDevelopment-28_08_2016-08_19_20-AM-300x209.jpg\" alt=\"wgnuplot 28\/08\/2016 , 08:19:20 AM Gnuplot (window id : 0)\" width=\"300\" height=\"209\" srcset=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/08\/PhoenixGameDevelopment-28_08_2016-08_19_20-AM-300x209.jpg 300w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/08\/PhoenixGameDevelopment-28_08_2016-08_19_20-AM-768x534.jpg 768w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/08\/PhoenixGameDevelopment-28_08_2016-08_19_20-AM-1024x712.jpg 1024w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/08\/PhoenixGameDevelopment-28_08_2016-08_19_20-AM.jpg 1216w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-3594\" class=\"wp-caption-text\">wgnuplot<br \/>28\/08\/2016 , 08:19:20 AM<br \/>Gnuplot (window id : 0)<\/figcaption><\/figure>\n<p>These images show my attempts to convert the cartesian node positions to spherical.<\/p>\n<figure id=\"attachment_3607\" aria-describedby=\"caption-attachment-3607\" style=\"width: 300px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/09\/PhoenixGameDevelopment-29_08_2016-10_05_10-PM.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-3607\" src=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/09\/PhoenixGameDevelopment-29_08_2016-10_05_10-PM-300x199.jpg\" alt=\"wgnuplot 29\/08\/2016 , 10:05:10 PM Gnuplot (window id : 0)\" width=\"300\" height=\"199\" srcset=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/09\/PhoenixGameDevelopment-29_08_2016-10_05_10-PM-300x199.jpg 300w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/09\/PhoenixGameDevelopment-29_08_2016-10_05_10-PM-768x510.jpg 768w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/09\/PhoenixGameDevelopment-29_08_2016-10_05_10-PM-1024x680.jpg 1024w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/09\/PhoenixGameDevelopment-29_08_2016-10_05_10-PM.jpg 1416w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-3607\" class=\"wp-caption-text\">wgnuplot<br \/>29\/08\/2016 , 10:05:10 PM<br \/>Gnuplot (window id : 0)<\/figcaption><\/figure>\n<figure id=\"attachment_3606\" aria-describedby=\"caption-attachment-3606\" style=\"width: 300px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/09\/PhoenixGameDevelopment-29_08_2016-03_41_42-AM.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-3606\" src=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/09\/PhoenixGameDevelopment-29_08_2016-03_41_42-AM-300x209.jpg\" alt=\"wgnuplot 29\/08\/2016 , 03:41:42 AM Gnuplot (window id : 0)\" width=\"300\" height=\"209\" srcset=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/09\/PhoenixGameDevelopment-29_08_2016-03_41_42-AM-300x209.jpg 300w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/09\/PhoenixGameDevelopment-29_08_2016-03_41_42-AM-768x535.jpg 768w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/09\/PhoenixGameDevelopment-29_08_2016-03_41_42-AM-1024x713.jpg 1024w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/09\/PhoenixGameDevelopment-29_08_2016-03_41_42-AM.jpg 1823w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-3606\" class=\"wp-caption-text\">wgnuplot<br \/>29\/08\/2016 , 03:41:42 AM<br \/>Gnuplot (window id : 0)<\/figcaption><\/figure>\n<figure id=\"attachment_3605\" aria-describedby=\"caption-attachment-3605\" style=\"width: 300px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/09\/PhoenixGameDevelopment-29_08_2016-03_41_36-AM.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-3605\" src=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/09\/PhoenixGameDevelopment-29_08_2016-03_41_36-AM-300x209.jpg\" alt=\"wgnuplot 29\/08\/2016 , 03:41:36 AM Gnuplot (window id : 0)\" width=\"300\" height=\"209\" srcset=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/09\/PhoenixGameDevelopment-29_08_2016-03_41_36-AM-300x209.jpg 300w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/09\/PhoenixGameDevelopment-29_08_2016-03_41_36-AM-768x535.jpg 768w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/09\/PhoenixGameDevelopment-29_08_2016-03_41_36-AM-1024x713.jpg 1024w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2016\/09\/PhoenixGameDevelopment-29_08_2016-03_41_36-AM.jpg 1823w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-3605\" class=\"wp-caption-text\">wgnuplot<br \/>29\/08\/2016 , 03:41:36 AM<br \/>Gnuplot (window id : 0)<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The idea that I had to correct the offset on the Z-axis didn&#8217;t seem to be working out well, so I decided to try to convert the coordinate system that I am using into spherical coordinates. Once I have done this, the plan is to use Rodrigues&#8217; rotation formula to rotate, instead of translate, the [&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-3598","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\/3598"}],"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=3598"}],"version-history":[{"count":3,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/posts\/3598\/revisions"}],"predecessor-version":[{"id":3609,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/posts\/3598\/revisions\/3609"}],"wp:attachment":[{"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/media?parent=3598"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/categories?post=3598"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/tags?post=3598"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}