{"assets":[{"original":"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/05\/12-550x309.jpg","local":"\/data\/posts\/2014\/05\/55255ea5dc311120ea6a107e2a698c79.jpg"},{"original":"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/05\/21-550x309.jpg","local":"\/data\/posts\/2014\/05\/3407792aeb06ae666bec05a42185888d.jpg"},{"original":"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/05\/31-550x309.jpg","local":"\/data\/posts\/2014\/05\/10342fbd599683b53ba9e8abb781f819.jpg"}],"author_link":"author\/teamflare\/","author_name":"RevelBase","cat":"LD #29","categories":["LD #29"],"comments":[],"epoch":1400173860,"event":"LD29","likes":7,"metadata":{"p_key":"82200","p_author":"RevelBase","p_authorkey":"0","p_urlkey":"292932","p_title":"Scanning the Blackwald Forest, Part 2","p_cat":"LD #29","p_event":"LD29","p_time":"1400173860","p_likes":"7","p_comments":"0","p_status":"WAYBACK","us_key":null,"us_name":null,"us_username":null,"event_start":"1398384000","event_key":"22","event_name":"LD29"},"source_url":"2014\/05\/15\/scanning-the-blackwald-forest-part-2\/","text":"<div style=\"color: #000000\">\n<p>3D Scanned mesh to game ready asset in a few minutes :<\/p>\n<p>Scanning the Blackwald Forest<\/p>\n<p>\u00a0<br\/>\nThis is part two of our 3D Scanning Postmortem.<\/p><\/div>\n<div style=\"color: #000000\"><strong><a href=\"http:\/\/www.ludumdare.com\/compo\/2014\/05\/04\/360358\/\">Read part one here.<\/a><\/strong><\/div>\n<div style=\"color: #000000\"><a href=\"http:\/\/www.ludumdare.com\/compo\/ludum-dare-29\/?action=preview&amp;uid=25793\">( or play our game )<\/a>\n<p>What you get out of the 3D scan is a very high density triangulated mesh, that is uv mapped using a very large atlas texture.<\/p>\n<p>What we want is a low poly object, 3k polys max, with a nice uv map, as well as a clean high poly we can use for the bake.<\/p>\n<p>And we want that fast <img alt=\":)\" class=\"wp-smiley\" src=\"http:\/\/ludumdare.com\/compo\/wp-includes\/images\/smilies\/simple-smile.png\" style=\"height: 1em; max-height: 1em;\"\/><\/p>\n<hr\/>\n<p>Cleaning up the scan :<\/p>\n<p>This is what it looks like when imported into zBrush. As you notice, there are some parts flying around, and the scan has a hole in the top.<\/p>\n<p>We\u2019re going to fix that now.<\/p>\n<p><a href=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/05\/12.jpg\"><img alt=\"1\" class=\"aligncenter wp-image-362697\" height=\"224\" sizes=\"(max-width: 399px) 100vw, 399px\" src=\"\/data\/posts\/2014\/05\/55255ea5dc311120ea6a107e2a698c79.jpg\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2014\/05\/12-300x168.jpg 300w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2014\/05\/12-550x309.jpg 550w\" width=\"399\"\/><\/a><\/p>\n<p>First we\u00a0applied the bitmap texture and deleted the useless parts by splitting the mesh into subtools.<\/p>\n<p>Then we subdivided the mesh a couple of times, for converting the bitmap texture into a polypaint(vertex map) texture.<\/p>\n<p><a href=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/05\/21.jpg\"><img alt=\"2\" class=\"aligncenter wp-image-362698\" height=\"226\" src=\"\/data\/posts\/2014\/05\/3407792aeb06ae666bec05a42185888d.jpg\" width=\"402\"\/><\/a><\/p>\n<p>Retopology and fixing texture errors :<\/p>\n<p>We\u00a0ran a zRemesh over the scan. This converts the scan into a mesh with better ( all quad ) topology.<\/p>\n<p>It won\u2019t conform entirely to the scan, and will also lose the vertex colors. But we can project that back from the original scan.<\/p>\n<p>Before we do that, now is the time to close the holes in the mesh.<\/p>\n<p>Remeshed with zRemesher :<\/p>\n<p><a href=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/05\/31.jpg\"><img alt=\"3\" class=\"aligncenter wp-image-362699\" height=\"233\" sizes=\"(max-width: 415px) 100vw, 415px\" src=\"\/data\/posts\/2014\/05\/10342fbd599683b53ba9e8abb781f819.jpg\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2014\/05\/31-300x168.jpg 300w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2014\/05\/31-550x309.jpg 550w\" width=\"415\"\/><\/a><\/p><\/div>\n<div style=\"color: #000000\"><\/div>\n<div style=\"color: #000000\">Projected the polypaint from the scan to the new cleaner scan :<\/div>\n<div style=\"color: #000000\"><a href=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/05\/41.jpg\"><img alt=\"4\" class=\"aligncenter wp-image-362702\" height=\"240\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/05\/41-550x309.jpg\" width=\"427\"\/><\/a>\n<p>Converting the cleaned mesh into lowpoly :<\/p>\n<p>We duplicated the cleaned mesh, and ran a decimation over it, and brought it down to roughly 1k polys.<\/p>\n<p>After that, we did an automated unwrapping. This works very fine in zBrush. It won\u2019t fill the uv space optimal, but it has little to no seams.<\/p>\n<\/div>\n<div style=\"color: #000000\"><\/div>\n<div style=\"color: #000000\">Reduced to 1k polys using decimationMaster :<br\/>\n<a href=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/05\/6.jpg\"><img alt=\"6\" class=\"aligncenter wp-image-362700\" height=\"241\" sizes=\"(max-width: 429px) 100vw, 429px\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/05\/6-550x309.jpg\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2014\/05\/6-300x168.jpg 300w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2014\/05\/6-550x309.jpg 550w\" width=\"429\"\/><\/a><\/div>\n<div style=\"color: #000000\"><\/div>\n<div style=\"color: #000000\"><\/div>\n<div style=\"color: #000000\">UVs with zBrush uvMaster :<\/div>\n<div style=\"color: #000000\"><a href=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/05\/5.jpg\"><img alt=\"5\" class=\"aligncenter wp-image-362701\" height=\"239\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/05\/5-550x309.jpg\" width=\"425\"\/><\/a><br\/>\nBaking the texture with Substance Designer :\n<p>Substance is amazing when you need to batch through a couple of similar objects. It\u2019s like a node based photoshop that also has every texture baking option available you could think of <img alt=\":)\" class=\"wp-smiley\" src=\"http:\/\/ludumdare.com\/compo\/wp-includes\/images\/smilies\/simple-smile.png\" style=\"height: 1em; max-height: 1em;\"\/><\/p>\n<p>We\u00a0did the node graph once, and then used that as a preset for all objects. It also takes care of downsizing the textures.<br\/>\nWhat we\u00a0baked :<\/p>\n<ul>\n<li>Bake vertex map from high poly onto the lowpoly as a diffuse texture.<\/li>\n<li>Bake a normal map from the high poly to the lowpoly<\/li>\n<li>Bake an ambient occlusion map<\/li>\n<\/ul>\n<p>The rest is blending and color correcting the maps, with some further tweaking of the normal map<\/p>\n<p>\u00a0<\/p>\n<p>Baking and processing in Substance Designer :<\/p>\n<p><a href=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/05\/7.jpg\"><img alt=\"7\" class=\"aligncenter wp-image-362703\" height=\"244\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/05\/7-550x309.jpg\" width=\"434\"\/><\/a><br\/>\nInside Unity we used the Marmoset Shaders on every object and lighted the scene with an very blurred hdr image.<\/p>\n<p>In the end we used some post effects to finetune the look abit.<\/p>\n<p>This is what it looked without post :<\/p>\n<p><a href=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/05\/8.jpg\"><img alt=\"8\" class=\"wp-image-362693 aligncenter\" height=\"190\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/05\/8-550x309.jpg\" width=\"338\"\/><\/a><\/p>\n<p>\u00a0<\/p>\n<p>And like this after some grading, vignette, and blur :<\/p><\/div>\n<div style=\"color: #000000\"><a href=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/05\/9.jpg\"><img alt=\"9\" class=\"aligncenter wp-image-362694\" height=\"191\" sizes=\"(max-width: 340px) 100vw, 340px\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/05\/9-550x309.jpg\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2014\/05\/9-300x168.jpg 300w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2014\/05\/9-550x309.jpg 550w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2014\/05\/9.jpg 1920w\" width=\"340\"\/><\/a>\n<hr\/>\n<p>What went right :<\/p>\n<p>+ Confused village people staring at a bunch of nerd\u00a0taking pictures of rocks and tree barks \u2013 priceless.<\/p>\n<p>+ after we figured out what steps to make, the scanning was rather quickly<\/p>\n<p>+ would have been impossible to get the same level of detail and texture work with traditional modeling\/texturing in that short timeframe<\/p>\n<hr\/>\n<p>What went wrong :<\/p>\n<p>\u2013 as usual, could have used some more time to finetune the distribution of level objects<\/p>\n<p>\u2013 if the pipeline would have been defined abit earlier, we could have used a lot of automatization.<\/p>\n<p>\u2013 was not aware of that unity can actually use LUTs for color correction. We could have graded the scene in Photoshop instead of using Unity\u2019s limited color correction post effect.<\/p>\n<hr\/>\n<p>None of us had ever done 3D Scanning using Photogrammetry before. Although the result was not optimal in some parts, it\u2019s interesting enough to pursue further, and the LD gave a good kickstart of how to do that and optimize the process even further <img alt=\":)\" class=\"wp-smiley\" src=\"http:\/\/ludumdare.com\/compo\/wp-includes\/images\/smilies\/simple-smile.png\" style=\"height: 1em; max-height: 1em;\"\/> In total, the entire experience was a blast.<\/p>\n<p>\u00a0<\/p>\n<p><strong><a href=\"http:\/\/www.ludumdare.com\/compo\/ludum-dare-29\/?action=preview&amp;uid=25793\">Enjoy our game <img alt=\":)\" class=\"wp-smiley\" src=\"http:\/\/ludumdare.com\/compo\/wp-includes\/images\/smilies\/simple-smile.png\" style=\"height: 1em; max-height: 1em;\"\/><\/a><\/strong><\/p>\n<p>\u00a0<\/p>\n<\/div>","time":"May 15th, 2014 5:11 pm","title":"Scanning the Blackwald Forest, Part 2","title_was_empty":false}