{"id":1151,"date":"2022-04-30T18:07:00","date_gmt":"2022-04-30T22:07:00","guid":{"rendered":"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/?p=1151"},"modified":"2022-04-30T18:07:00","modified_gmt":"2022-04-30T22:07:00","slug":"final-project-3d-tile-generator","status":"publish","type":"post","link":"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/jdboucher\/final-project-3d-tile-generator\/","title":{"rendered":"Final Project: 3D Tile Generator"},"content":{"rendered":"\n<p>For my final project, I created a set of tiles and a small Unity application to view them in a procedurally generated environment. This application is available on itch.io!<br><a href=\"https:\/\/thepiratepup.itch.io\/3d-tile-generator\">https:\/\/thepiratepup.itch.io\/3d-tile-generator<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Tile-Generator-4_30_2022-5_27_52-PM.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Tile-Generator-4_30_2022-5_27_52-PM-1024x576.png\" alt=\"\" class=\"wp-image-1152\" srcset=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Tile-Generator-4_30_2022-5_27_52-PM-1024x576.png 1024w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Tile-Generator-4_30_2022-5_27_52-PM-800x450.png 800w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Tile-Generator-4_30_2022-5_27_52-PM-768x432.png 768w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Tile-Generator-4_30_2022-5_27_52-PM-1536x864.png 1536w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Tile-Generator-4_30_2022-5_27_52-PM-533x300.png 533w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Tile-Generator-4_30_2022-5_27_52-PM.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>This is what the final product looks like. My goal was to keep a relatively simple workflow creating and texturing the 3D models and to take a deep dive into simple but effective ways to present these. Ultimately I think I was successful, as I learned in-depth information about parts of Unity that I have never explored before, and I feel confident in my ability to make relatively good-looking art in the future while taking a more technical approach to achieve this.<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Hallway.mb-Autodesk-MAYA-2022.3_-C__Users_josia_Documents_maya_projects_default_scenes_Hallway.mb-4_25_2022-12_28_22-PM.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"534\" data-id=\"1153\" src=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Hallway.mb-Autodesk-MAYA-2022.3_-C__Users_josia_Documents_maya_projects_default_scenes_Hallway.mb-4_25_2022-12_28_22-PM-1024x534.png\" alt=\"\" class=\"wp-image-1153\" srcset=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Hallway.mb-Autodesk-MAYA-2022.3_-C__Users_josia_Documents_maya_projects_default_scenes_Hallway.mb-4_25_2022-12_28_22-PM-1024x534.png 1024w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Hallway.mb-Autodesk-MAYA-2022.3_-C__Users_josia_Documents_maya_projects_default_scenes_Hallway.mb-4_25_2022-12_28_22-PM-800x417.png 800w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Hallway.mb-Autodesk-MAYA-2022.3_-C__Users_josia_Documents_maya_projects_default_scenes_Hallway.mb-4_25_2022-12_28_22-PM-768x400.png 768w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Hallway.mb-Autodesk-MAYA-2022.3_-C__Users_josia_Documents_maya_projects_default_scenes_Hallway.mb-4_25_2022-12_28_22-PM-1536x801.png 1536w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Hallway.mb-Autodesk-MAYA-2022.3_-C__Users_josia_Documents_maya_projects_default_scenes_Hallway.mb-4_25_2022-12_28_22-PM-575x300.png 575w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Hallway.mb-Autodesk-MAYA-2022.3_-C__Users_josia_Documents_maya_projects_default_scenes_Hallway.mb-4_25_2022-12_28_22-PM.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Hallway.mb-Autodesk-MAYA-2022.3_-C__Users_josia_Documents_maya_projects_default_scenes_Hallway.mb-4_25_2022-12_30_27-PM.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"534\" data-id=\"1155\" src=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Hallway.mb-Autodesk-MAYA-2022.3_-C__Users_josia_Documents_maya_projects_default_scenes_Hallway.mb-4_25_2022-12_30_27-PM-1024x534.png\" alt=\"\" class=\"wp-image-1155\" srcset=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Hallway.mb-Autodesk-MAYA-2022.3_-C__Users_josia_Documents_maya_projects_default_scenes_Hallway.mb-4_25_2022-12_30_27-PM-1024x534.png 1024w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Hallway.mb-Autodesk-MAYA-2022.3_-C__Users_josia_Documents_maya_projects_default_scenes_Hallway.mb-4_25_2022-12_30_27-PM-800x417.png 800w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Hallway.mb-Autodesk-MAYA-2022.3_-C__Users_josia_Documents_maya_projects_default_scenes_Hallway.mb-4_25_2022-12_30_27-PM-768x400.png 768w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Hallway.mb-Autodesk-MAYA-2022.3_-C__Users_josia_Documents_maya_projects_default_scenes_Hallway.mb-4_25_2022-12_30_27-PM-1536x801.png 1536w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Hallway.mb-Autodesk-MAYA-2022.3_-C__Users_josia_Documents_maya_projects_default_scenes_Hallway.mb-4_25_2022-12_30_27-PM-575x300.png 575w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Hallway.mb-Autodesk-MAYA-2022.3_-C__Users_josia_Documents_maya_projects_default_scenes_Hallway.mb-4_25_2022-12_30_27-PM.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Hallway.mb-Autodesk-MAYA-2022.3_-C__Users_josia_Documents_maya_projects_default_scenes_Hallway.mb-4_25_2022-12_31_06-PM.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"534\" data-id=\"1154\" src=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Hallway.mb-Autodesk-MAYA-2022.3_-C__Users_josia_Documents_maya_projects_default_scenes_Hallway.mb-4_25_2022-12_31_06-PM-1024x534.png\" alt=\"\" class=\"wp-image-1154\" srcset=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Hallway.mb-Autodesk-MAYA-2022.3_-C__Users_josia_Documents_maya_projects_default_scenes_Hallway.mb-4_25_2022-12_31_06-PM-1024x534.png 1024w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Hallway.mb-Autodesk-MAYA-2022.3_-C__Users_josia_Documents_maya_projects_default_scenes_Hallway.mb-4_25_2022-12_31_06-PM-800x417.png 800w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Hallway.mb-Autodesk-MAYA-2022.3_-C__Users_josia_Documents_maya_projects_default_scenes_Hallway.mb-4_25_2022-12_31_06-PM-768x400.png 768w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Hallway.mb-Autodesk-MAYA-2022.3_-C__Users_josia_Documents_maya_projects_default_scenes_Hallway.mb-4_25_2022-12_31_06-PM-1536x801.png 1536w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Hallway.mb-Autodesk-MAYA-2022.3_-C__Users_josia_Documents_maya_projects_default_scenes_Hallway.mb-4_25_2022-12_31_06-PM-575x300.png 575w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Hallway.mb-Autodesk-MAYA-2022.3_-C__Users_josia_Documents_maya_projects_default_scenes_Hallway.mb-4_25_2022-12_31_06-PM.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Hallway.mb-Autodesk-MAYA-2022.3_-C__Users_josia_Documents_maya_projects_default_scenes_Hallway.mb-4_25_2022-12_33_02-PM.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"534\" data-id=\"1157\" src=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Hallway.mb-Autodesk-MAYA-2022.3_-C__Users_josia_Documents_maya_projects_default_scenes_Hallway.mb-4_25_2022-12_33_02-PM-1024x534.png\" alt=\"\" class=\"wp-image-1157\" srcset=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Hallway.mb-Autodesk-MAYA-2022.3_-C__Users_josia_Documents_maya_projects_default_scenes_Hallway.mb-4_25_2022-12_33_02-PM-1024x534.png 1024w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Hallway.mb-Autodesk-MAYA-2022.3_-C__Users_josia_Documents_maya_projects_default_scenes_Hallway.mb-4_25_2022-12_33_02-PM-800x417.png 800w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Hallway.mb-Autodesk-MAYA-2022.3_-C__Users_josia_Documents_maya_projects_default_scenes_Hallway.mb-4_25_2022-12_33_02-PM-768x400.png 768w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Hallway.mb-Autodesk-MAYA-2022.3_-C__Users_josia_Documents_maya_projects_default_scenes_Hallway.mb-4_25_2022-12_33_02-PM-1536x801.png 1536w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Hallway.mb-Autodesk-MAYA-2022.3_-C__Users_josia_Documents_maya_projects_default_scenes_Hallway.mb-4_25_2022-12_33_02-PM-575x300.png 575w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Hallway.mb-Autodesk-MAYA-2022.3_-C__Users_josia_Documents_maya_projects_default_scenes_Hallway.mb-4_25_2022-12_33_02-PM.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Hallway.mb-Autodesk-MAYA-2022.3_-C__Users_josia_Documents_maya_projects_default_scenes_Hallway.mb-4_25_2022-12_47_37-PM.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"534\" data-id=\"1156\" src=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Hallway.mb-Autodesk-MAYA-2022.3_-C__Users_josia_Documents_maya_projects_default_scenes_Hallway.mb-4_25_2022-12_47_37-PM-1024x534.png\" alt=\"\" class=\"wp-image-1156\" srcset=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Hallway.mb-Autodesk-MAYA-2022.3_-C__Users_josia_Documents_maya_projects_default_scenes_Hallway.mb-4_25_2022-12_47_37-PM-1024x534.png 1024w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Hallway.mb-Autodesk-MAYA-2022.3_-C__Users_josia_Documents_maya_projects_default_scenes_Hallway.mb-4_25_2022-12_47_37-PM-800x417.png 800w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Hallway.mb-Autodesk-MAYA-2022.3_-C__Users_josia_Documents_maya_projects_default_scenes_Hallway.mb-4_25_2022-12_47_37-PM-768x400.png 768w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Hallway.mb-Autodesk-MAYA-2022.3_-C__Users_josia_Documents_maya_projects_default_scenes_Hallway.mb-4_25_2022-12_47_37-PM-1536x801.png 1536w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Hallway.mb-Autodesk-MAYA-2022.3_-C__Users_josia_Documents_maya_projects_default_scenes_Hallway.mb-4_25_2022-12_47_37-PM-575x300.png 575w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Hallway.mb-Autodesk-MAYA-2022.3_-C__Users_josia_Documents_maya_projects_default_scenes_Hallway.mb-4_25_2022-12_47_37-PM.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<p>I started by creating the models in Maya. I had planned to use NURBs modeling tools to create tileable stone walls and floor sections but was recommended to limit the complexity strictly to the texturing. The result was very simple models, using primarily re-scaled cube primitives. I wanted to make sure at least one element of the project was more complex than that, so I created a pillar tile as well. Additionally, I attempted to create a lantern, but it wasn&#8217;t turning out how I had hoped so I ended up abandoning that aspect of it.<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/3D-Tile-Generator-SampleScene-PC-Mac-Linux-Standalone-Unity-2020.3.32f1-Personal_-_DX11_-4_28_2022-6_14_32-PM.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"521\" data-id=\"1160\" src=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/3D-Tile-Generator-SampleScene-PC-Mac-Linux-Standalone-Unity-2020.3.32f1-Personal_-_DX11_-4_28_2022-6_14_32-PM-1024x521.png\" alt=\"\" class=\"wp-image-1160\" srcset=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/3D-Tile-Generator-SampleScene-PC-Mac-Linux-Standalone-Unity-2020.3.32f1-Personal_-_DX11_-4_28_2022-6_14_32-PM-1024x521.png 1024w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/3D-Tile-Generator-SampleScene-PC-Mac-Linux-Standalone-Unity-2020.3.32f1-Personal_-_DX11_-4_28_2022-6_14_32-PM-800x407.png 800w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/3D-Tile-Generator-SampleScene-PC-Mac-Linux-Standalone-Unity-2020.3.32f1-Personal_-_DX11_-4_28_2022-6_14_32-PM-768x390.png 768w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/3D-Tile-Generator-SampleScene-PC-Mac-Linux-Standalone-Unity-2020.3.32f1-Personal_-_DX11_-4_28_2022-6_14_32-PM-1536x781.png 1536w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/3D-Tile-Generator-SampleScene-PC-Mac-Linux-Standalone-Unity-2020.3.32f1-Personal_-_DX11_-4_28_2022-6_14_32-PM-590x300.png 590w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/3D-Tile-Generator-SampleScene-PC-Mac-Linux-Standalone-Unity-2020.3.32f1-Personal_-_DX11_-4_28_2022-6_14_32-PM.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/3D-Tile-Generator-SampleScene-PC-Mac-Linux-Standalone-Unity-2020.3.32f1-Personal-_DX11_-4_29_2022-9_31_19-AM.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"521\" data-id=\"1158\" src=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/3D-Tile-Generator-SampleScene-PC-Mac-Linux-Standalone-Unity-2020.3.32f1-Personal-_DX11_-4_29_2022-9_31_19-AM-1024x521.png\" alt=\"\" class=\"wp-image-1158\" srcset=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/3D-Tile-Generator-SampleScene-PC-Mac-Linux-Standalone-Unity-2020.3.32f1-Personal-_DX11_-4_29_2022-9_31_19-AM-1024x521.png 1024w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/3D-Tile-Generator-SampleScene-PC-Mac-Linux-Standalone-Unity-2020.3.32f1-Personal-_DX11_-4_29_2022-9_31_19-AM-800x407.png 800w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/3D-Tile-Generator-SampleScene-PC-Mac-Linux-Standalone-Unity-2020.3.32f1-Personal-_DX11_-4_29_2022-9_31_19-AM-768x390.png 768w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/3D-Tile-Generator-SampleScene-PC-Mac-Linux-Standalone-Unity-2020.3.32f1-Personal-_DX11_-4_29_2022-9_31_19-AM-1536x781.png 1536w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/3D-Tile-Generator-SampleScene-PC-Mac-Linux-Standalone-Unity-2020.3.32f1-Personal-_DX11_-4_29_2022-9_31_19-AM-590x300.png 590w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/3D-Tile-Generator-SampleScene-PC-Mac-Linux-Standalone-Unity-2020.3.32f1-Personal-_DX11_-4_29_2022-9_31_19-AM.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/3D-Tile-Generator-SampleScene-PC-Mac-Linux-Standalone-Unity-2020.3.32f1-Personal-_DX11_-4_29_2022-11_04_55-AM.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"521\" data-id=\"1159\" src=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/3D-Tile-Generator-SampleScene-PC-Mac-Linux-Standalone-Unity-2020.3.32f1-Personal-_DX11_-4_29_2022-11_04_55-AM-1024x521.png\" alt=\"\" class=\"wp-image-1159\" srcset=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/3D-Tile-Generator-SampleScene-PC-Mac-Linux-Standalone-Unity-2020.3.32f1-Personal-_DX11_-4_29_2022-11_04_55-AM-1024x521.png 1024w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/3D-Tile-Generator-SampleScene-PC-Mac-Linux-Standalone-Unity-2020.3.32f1-Personal-_DX11_-4_29_2022-11_04_55-AM-800x407.png 800w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/3D-Tile-Generator-SampleScene-PC-Mac-Linux-Standalone-Unity-2020.3.32f1-Personal-_DX11_-4_29_2022-11_04_55-AM-768x390.png 768w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/3D-Tile-Generator-SampleScene-PC-Mac-Linux-Standalone-Unity-2020.3.32f1-Personal-_DX11_-4_29_2022-11_04_55-AM-1536x781.png 1536w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/3D-Tile-Generator-SampleScene-PC-Mac-Linux-Standalone-Unity-2020.3.32f1-Personal-_DX11_-4_29_2022-11_04_55-AM-590x300.png 590w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/3D-Tile-Generator-SampleScene-PC-Mac-Linux-Standalone-Unity-2020.3.32f1-Personal-_DX11_-4_29_2022-11_04_55-AM.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<p>Next, I started the procedural generation. I had planned to use code from past projects to implement generation algorithms like Random Walk, Perlin Noise, and Binary Space Partitioning, but the code I had created in the past was not as reusable as I thought it was. To keep things focused on the artistic workflow, I only implemented a coin flip algorithm, randomly determining whether a tile should be filled or empty. Then I run through the generated tile data, and determine what model should be placed at each tile, and how it should be oriented, by looking at whether the neighboring tiles are filled or empty.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/3D-Tile-Generator-SampleScene-PC-Mac-Linux-Standalone-Unity-2020.3.32f1-Personal-_DX11_-4_30_2022-5_19_55-PM.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"549\" src=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/3D-Tile-Generator-SampleScene-PC-Mac-Linux-Standalone-Unity-2020.3.32f1-Personal-_DX11_-4_30_2022-5_19_55-PM-1024x549.png\" alt=\"\" class=\"wp-image-1161\" srcset=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/3D-Tile-Generator-SampleScene-PC-Mac-Linux-Standalone-Unity-2020.3.32f1-Personal-_DX11_-4_30_2022-5_19_55-PM-1024x549.png 1024w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/3D-Tile-Generator-SampleScene-PC-Mac-Linux-Standalone-Unity-2020.3.32f1-Personal-_DX11_-4_30_2022-5_19_55-PM-800x429.png 800w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/3D-Tile-Generator-SampleScene-PC-Mac-Linux-Standalone-Unity-2020.3.32f1-Personal-_DX11_-4_30_2022-5_19_55-PM-768x412.png 768w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/3D-Tile-Generator-SampleScene-PC-Mac-Linux-Standalone-Unity-2020.3.32f1-Personal-_DX11_-4_30_2022-5_19_55-PM-1536x824.png 1536w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/3D-Tile-Generator-SampleScene-PC-Mac-Linux-Standalone-Unity-2020.3.32f1-Personal-_DX11_-4_30_2022-5_19_55-PM-559x300.png 559w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/3D-Tile-Generator-SampleScene-PC-Mac-Linux-Standalone-Unity-2020.3.32f1-Personal-_DX11_-4_30_2022-5_19_55-PM.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>I used Unity&#8217;s node-based shader tool to texture the models. While the end result only uses a texture map and a normal map, I ended up learning a lot about this process. Which render pipeline you&#8217;re using in Unity can have a dramatic effect on certain things like what tools are available, and I feel confident navigating this space in the future. Additionally, I learned how to do cool shader effects like creating a glowing border that grows and shrinks over time. Unfortunately, such effects did not feel like they had a place in the final version of this project.<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-3 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Tile-Generator-4_30_2022-5_27_56-PM.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" data-id=\"1163\" src=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Tile-Generator-4_30_2022-5_27_56-PM-1024x576.png\" alt=\"\" class=\"wp-image-1163\" srcset=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Tile-Generator-4_30_2022-5_27_56-PM-1024x576.png 1024w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Tile-Generator-4_30_2022-5_27_56-PM-800x450.png 800w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Tile-Generator-4_30_2022-5_27_56-PM-768x432.png 768w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Tile-Generator-4_30_2022-5_27_56-PM-1536x864.png 1536w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Tile-Generator-4_30_2022-5_27_56-PM-533x300.png 533w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Tile-Generator-4_30_2022-5_27_56-PM.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Tile-Generator-4_30_2022-5_28_16-PM.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" data-id=\"1162\" src=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Tile-Generator-4_30_2022-5_28_16-PM-1024x576.png\" alt=\"\" class=\"wp-image-1162\" srcset=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Tile-Generator-4_30_2022-5_28_16-PM-1024x576.png 1024w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Tile-Generator-4_30_2022-5_28_16-PM-800x450.png 800w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Tile-Generator-4_30_2022-5_28_16-PM-768x432.png 768w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Tile-Generator-4_30_2022-5_28_16-PM-1536x864.png 1536w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Tile-Generator-4_30_2022-5_28_16-PM-533x300.png 533w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Tile-Generator-4_30_2022-5_28_16-PM.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Tile-Generator-4_30_2022-5_28_26-PM.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" data-id=\"1164\" src=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Tile-Generator-4_30_2022-5_28_26-PM-1024x576.png\" alt=\"\" class=\"wp-image-1164\" srcset=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Tile-Generator-4_30_2022-5_28_26-PM-1024x576.png 1024w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Tile-Generator-4_30_2022-5_28_26-PM-800x450.png 800w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Tile-Generator-4_30_2022-5_28_26-PM-768x432.png 768w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Tile-Generator-4_30_2022-5_28_26-PM-1536x864.png 1536w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Tile-Generator-4_30_2022-5_28_26-PM-533x300.png 533w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Tile-Generator-4_30_2022-5_28_26-PM.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<p>The rest of the work done for this project is difficult to capture in pictures, but you can see much of it in action by downloading the project from the link provided above. The application features a pause menu that tweens in and out of existence, which is an effect that I&#8217;ve been meaning to learn how to implement for ages. I used a library called LeanTween, which has a plethora of incredible features for tweening via code in Unity. In this menu, you can view a mini-map of the generated environment, re-size, and re-generate the environment. There is a spot to select a different generation method, but I never implemented additional algorithms.<\/p>\n\n\n\n<p>Additionally, I made use of Post-Processing effects. The render pipeline you&#8217;re using in Unity again has a significant impact on this, and I finally understand how to work with post-processing across all of the render pipelines. These are quite subtle, but I think they make the project feel much better. A vignette effect is barely noticeable if you&#8217;re not looking for it, and the depth of field effect makes the camera view feel a little more dynamic.<\/p>\n\n\n\n<p>Speaking of cameras, I learned so much about cameras in unity! My favorite effect that I implemented for this project was the small marching tiles along the top and bottom of the image. These are tiny versions of the 3D tiles that I created, and they exist on the UI! To achieve this, I placed each tile in a row in 3D space in the game. I had an additional camera viewing these, and the camera view is sent to a render texture, which can then be placed on an image in the UI canvas. From there, I made a tiled image effect that scrolls along the top and bottom of the screen, and made the actual 3D version of the tiles spin and bob up and down. I also learned about the camera stack in the universal render pipeline, in addition to creating a dynamically-sized mini-map that views the environment, along with a camera-panning effect that also scales its view with the size of the environment.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Tile-Generator-4_30_2022-5_27_52-PM-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Tile-Generator-4_30_2022-5_27_52-PM-1-1024x576.png\" alt=\"\" class=\"wp-image-1171\" srcset=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Tile-Generator-4_30_2022-5_27_52-PM-1-1024x576.png 1024w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Tile-Generator-4_30_2022-5_27_52-PM-1-800x450.png 800w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Tile-Generator-4_30_2022-5_27_52-PM-1-768x432.png 768w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Tile-Generator-4_30_2022-5_27_52-PM-1-1536x864.png 1536w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Tile-Generator-4_30_2022-5_27_52-PM-1-533x300.png 533w, https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Tile-Generator-4_30_2022-5_27_52-PM-1.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>I&#8217;m very happy with the final result, and I feel like I will be able to take my newly gained knowledge and effectively apply it to every Unity project I work on in the future!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>For my final project, I created a set of tiles and a small Unity application to view them in a procedurally generated environment. This application is available on itch.io!https:\/\/thepiratepup.itch.io\/3d-tile-generator This is what the final product looks like. My goal was to keep a relatively simple workflow creating and texturing the 3D models and to take&#8230; <\/p>\n<div class=\"link-more\"><a href=\"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/jdboucher\/final-project-3d-tile-generator\/\">Read More<\/a><\/div>\n","protected":false},"author":258,"featured_media":1163,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"cybocfi_hide_featured_image":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-1151","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"jetpack_featured_media_url":"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-content\/uploads\/sites\/22\/2022\/04\/Tile-Generator-4_30_2022-5_27_56-PM.png","_links":{"self":[{"href":"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-json\/wp\/v2\/posts\/1151","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-json\/wp\/v2\/users\/258"}],"replies":[{"embeddable":true,"href":"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-json\/wp\/v2\/comments?post=1151"}],"version-history":[{"count":1,"href":"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-json\/wp\/v2\/posts\/1151\/revisions"}],"predecessor-version":[{"id":1172,"href":"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-json\/wp\/v2\/posts\/1151\/revisions\/1172"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-json\/wp\/v2\/media\/1163"}],"wp:attachment":[{"href":"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-json\/wp\/v2\/media?parent=1151"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-json\/wp\/v2\/categories?post=1151"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.joshuarosenstock.com\/teaching\/imgd-fundamentals-22\/wp-json\/wp\/v2\/tags?post=1151"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}