{"id":834,"date":"2020-04-17T15:00:04","date_gmt":"2020-04-17T20:00:04","guid":{"rendered":"http:\/\/www.moroha.net\/blog\/?p=834"},"modified":"2020-04-17T19:06:52","modified_gmt":"2020-04-18T00:06:52","slug":"sci-fi-rpgs-and-rendering-planets","status":"publish","type":"post","link":"https:\/\/www.moroha.net\/blog\/archives\/834","title":{"rendered":"Sci-Fi RPGs and Rendering Planets"},"content":{"rendered":"\n<p>My bi-weekly RPG group has, like most now, had to move online to keep playing.  Though to many playing pen-and-paper RPGs online has become the norm, we&#8217;re a bit older and more traditional so it was a first for all of us.  But we&#8217;ve been using roll20.net and got it mostly figured out.<\/p>\n\n\n\n<p>Our group has been playing D&amp;D5E, and the campaign is an older but well-known 2nd edition campaign called Night Below, which is a long campaign that takes place entirely in the Underdark. Right now we&#8217;re in the middle of the final adventure and it looks to wrap up in the next 1-2 sessions. With that we&#8217;ve been talking about what to play next.<\/p>\n\n\n\n<p>I&#8217;ve volunteered to take a turn DMing, and we&#8217;re going to try a sci-fi campaign using <a href=\"https:\/\/www.drivethrurpg.com\/product\/226996\/Stars-Without-Number-Revised-Edition\">Stars Without Number<\/a>.  As such I felt that I needed to get an adventure ready and start polishing my adventure\/campaign production skills.  I really like making and using maps in my RPGs, and I noticed that <a href=\"https:\/\/www.profantasy.com\/\">ProFantasy<\/a> has put their excellent Campaign Cartographer software on sale for half price during the Covid-19 pandemic.  I went ahead and bought it, and then splurged for the (not on sale) Cosmographer 3 add-on that adds capability for making spaceship deck plans, star charts, sector charts, solar systems, world maps, and more. Trying it out a little bit, it&#8217;s built kind of like a photoshop or GIMP type of raster image software, but with less graphics manipulation tools and a <em>whole<\/em> lot more templates and built in images. It has a pretty steep learning curve, but there are some tutorial videos on YouTube to help you learn the basics.<\/p>\n\n\n\n<p>So I was going through the tutorials and making a basic solar system map using <a href=\"https:\/\/www.youtube.com\/playlist?list=PL63085211A6CF4156\">this<\/a> tutorial, but I was disappointed in the lack of variety and number of planet icon images.  I thought to myself, &#8220;I could make some myself with a bit of work!&#8221; and immediately got side-tracked for the past several days.<\/p>\n\n\n\n<p>It turns out there are two basic ways you can do this: 2D or 3D based.  The 2D method is something like this:<\/p>\n\n\n\n<ol><li>Download or create a rectangular 2D map of your planet&#8217;s surface.  You can download map images for the planets in our solar system <a href=\"https:\/\/www.solarsystemscope.com\/textures\/\">here<\/a> and <a href=\"https:\/\/stevealbers.net\/albers\/sos\/sos.html\">here<\/a>. For example here is mars:<\/li><\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/i.imgur.com\/3xtr0Yr.jpg\" alt=\"\"\/><\/figure>\n\n\n\n<ol start=\"2\"><li> Import the image into a 2D raster image manipulation program like Photoshop or GIMP. I use GIMP because it&#8217;s more than powerful enough for my level of skill, and because it&#8217;s free.<\/li><li>Use a tool (fortunately included in GIMP) to wrap the rectangular image onto a sphere shape. Basically it&#8217;s a reverse of the cylindrical projection method shown <a href=\"https:\/\/geographx.co.nz\/map-projections\/\">here<\/a>.<\/li><\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/i.imgur.com\/64WGuiB.png\" alt=\"\"\/><\/figure>\n\n\n\n<ol start=\"4\"><li>Choose your options for the rotation\/angle of the sphere, lighting, and you&#8217;re done!<\/li><\/ol>\n\n\n\n<p>Some sample results:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i.imgur.com\/DIQGPoY.jpg\" alt=\"\" width=\"409\" height=\"409\"\/><figcaption>Mars viewed from South Pole<\/figcaption><\/figure><\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i.imgur.com\/CzPJ6No.png\" alt=\"\" width=\"365\" height=\"365\"\/><figcaption>Ceres<\/figcaption><\/figure><\/div>\n\n\n\n<p>What&#8217;s great about this is that you aren&#8217;t even limited to real planets, you can do this with fictional ones as well.  You just need to generate or find the surface map before you transform it.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i.imgur.com\/EgN9sPo.png\" alt=\"\" width=\"372\" height=\"372\"\/><figcaption>Fictional water planet<\/figcaption><\/figure><\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i.imgur.com\/5IQ6piR.png\" alt=\"\" width=\"346\" height=\"346\"\/><figcaption>Terraformed Mars<\/figcaption><\/figure><\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i.imgur.com\/ReLP8qW.png\" alt=\"\" width=\"336\" height=\"336\"\/><figcaption>Fictional rocky planet<\/figcaption><\/figure><\/div>\n\n\n\n<p>This method could also be sped up with a bit of work, since GIMP has a full Python API.  It would be possible to write a script that could upload a directory or a zip file with a bunch of map images, then convert them all to planet images and save the results.<\/p>\n\n\n\n<p>However in making these I noticed there was a pretty severe limitation: there was no way to make a planet with rings like Saturn.  That then brings us to the 3D method:<\/p>\n\n\n\n<ul><li>Choose a 3D modeling software.  I use Blender because, like GIMP, it&#8217;s more than powerful enough for my needs, and it&#8217;s totally free.<\/li><li>The learning curve on 3D modeling is <em>insanely<\/em> steep.  Without instruction you are unlikely to ever be able to make anything cool or useful.<\/li><li>So the next step is: find a tutorial showing how to make the thing your interested in (or the closest you can find).  Fortunately there are several tutorials showing specifically how to make Saturn or a similar ringed planet.<\/li><li>There are two basic approaches taken:<ol><li>Use actual images of Saturn and its rings, and map them onto a 3D surface.<\/li><li>Use texturing and coloring methods and algorithms to make an object that looks like a ringed planet, but doesn&#8217;t specifically try to copy Saturn.<\/li><\/ol><\/li><li>After looking at both, I went with the second approach. I was after all trying to make planet images for fictional planets, so I don&#8217;t care if it looks exactly like the real Saturn or not.<\/li><\/ul>\n\n\n\n<p>Making the basic planet and ring shape is pretty straightforward:  you can use simple shapes of a sphere and a circle (extruding out the circle to make a ring).  Everything else is done using textures, which gets insanely complicated.  Following <a href=\"https:\/\/www.youtube.com\/watch?v=OD5n-jik_7k\">this<\/a> tutorial, here is my ringed planet in Blender:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/i.imgur.com\/H7m3bmY.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>And here is the texture map for the planet surface:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/i.imgur.com\/8w5M4Uu.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>There is no way I could ever figure this out without following a tutorial step by step. Basically what does is this:<\/p>\n\n\n\n<ul><li>Apply random noise to be the color on the sphere surface.<\/li><li>Filter that noise so that it&#8217;s limited to a few colors and transitions smoothly between them. That&#8217;s the ColorRamp block in the middle that goes from black to orange to yellow.<\/li><li>Filter it in space so that it varies a lot in the z-direction, but only a little in the x- and y-directions.  This makes it look like rippling clouds over the planet.<\/li><\/ul>\n\n\n\n<p>And here is the texture map for the rings:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/i.imgur.com\/9l3IG2R.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>This one is even more complicated!  It more or less works like this:<\/p>\n\n\n\n<ul><li>Generate some random noise on the ring surface<\/li><li>Filter it so it only changes in the radial direction, centered on the planet center<\/li><li>Make that noise into changing the brightness and contrast across the surface of the ring.<\/li><li>Make the ring itself to have a mixture of diffuse light scattering, transparency, and translucence.<\/li><li>Use that same noise to make the local transparency vary with the noise level<\/li><li>Adjust the noise so that the frequency and amplitude matches what we are looking for.<\/li><\/ul>\n\n\n\n<p>Setting all of that up is a huge amount of work, especially if you&#8217;re not super-experienced with the software.  However the results are absolutely phenomenal:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/i.imgur.com\/VHMxdPQ.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>It seriously looks good enough to be on a NASA publication or something, I was really impressed by how it turned out.<\/p>\n\n\n\n<p>OK, I think that&#8217;s long enough down this rabbit hole.  I need to get back to preparing the Stars Without Number adventure!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>My bi-weekly RPG group has, like most now, had to move online to keep playing. Though to many playing pen-and-paper RPGs online has become the norm, we&#8217;re a bit older and more traditional so it was a first for all &hellip; <a href=\"https:\/\/www.moroha.net\/blog\/archives\/834\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[19,18,21,20],"_links":{"self":[{"href":"https:\/\/www.moroha.net\/blog\/wp-json\/wp\/v2\/posts\/834"}],"collection":[{"href":"https:\/\/www.moroha.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.moroha.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.moroha.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.moroha.net\/blog\/wp-json\/wp\/v2\/comments?post=834"}],"version-history":[{"count":5,"href":"https:\/\/www.moroha.net\/blog\/wp-json\/wp\/v2\/posts\/834\/revisions"}],"predecessor-version":[{"id":840,"href":"https:\/\/www.moroha.net\/blog\/wp-json\/wp\/v2\/posts\/834\/revisions\/840"}],"wp:attachment":[{"href":"https:\/\/www.moroha.net\/blog\/wp-json\/wp\/v2\/media?parent=834"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.moroha.net\/blog\/wp-json\/wp\/v2\/categories?post=834"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.moroha.net\/blog\/wp-json\/wp\/v2\/tags?post=834"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}