{"id":64,"date":"2010-09-18T23:13:18","date_gmt":"2010-09-18T23:13:18","guid":{"rendered":"https:\/\/www.cores2.com\/blog\/?p=64"},"modified":"2010-11-25T07:25:01","modified_gmt":"2010-11-25T07:25:01","slug":"introduction-to-3d-part-i","status":"publish","type":"post","link":"https:\/\/www.cores2.com\/blog\/?p=64","title":{"rendered":"Introduction to 3D, part I"},"content":{"rendered":"<p>A while back, right when I was starting to learn how to program, I found a little CAD (Computer Aided Design &#8211; basically 3D modeling) application for my programable graphing calculator (a TI-89). The application was horribly slow &#8211; it had an &#8220;amazing&#8221; render speed of a new frame every <em>three<\/em> seconds! If you know your away around it, you could even prevent it from crashing well after a <em>few minutes of light usage<\/em>!<\/p>\n<p>Even though the application was pretty rough, it got me wondering as a kid: how in the world could I program this? How does 3D actually work? It took me a few weeks of research, coding, some ugly hacks, and some nasty code to finally get my own program with similar functionality up and running. When I finally got\u00c2\u00a0things\u00c2\u00a0working,\u00c2\u00a0the moment I saw my first rotating 3D cube was the moment I decided programming was for me! Solving this little question of 3D graphics was the big step that pushed me into computer science.<\/p>\n<p>It&#8217;s now a dozen years later and I hope to inspire the next generation of programmers with the same\u00c2\u00a0experience, solving the same question: &#8220;How do I draw\/program 3D?&#8221;<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.cores2.com\/3dtutorial\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-65  aligncenter\" title=\"cores2tutorial\" src=\"https:\/\/www.cores2.com\/blog\/wp-content\/uploads\/2010\/09\/cores2tutorial.png\" alt=\"\" width=\"333\" height=\"503\" srcset=\"https:\/\/www.cores2.com\/blog\/wp-content\/uploads\/2010\/09\/cores2tutorial.png 333w, https:\/\/www.cores2.com\/blog\/wp-content\/uploads\/2010\/09\/cores2tutorial-198x300.png 198w\" sizes=\"auto, (max-width: 333px) 100vw, 333px\" \/><\/a><\/p>\n<p>I&#8217;ve started a three-part tutorial teaching\u00c2\u00a0new or novice level programmers on how to solve this problem. These tutorials will not use any sort of library or wrapper &#8211; they go straight to the lowest level when it comes to 3D graphics! These tutorials are not meant to answer the question &#8220;how do I draw my 3D character&#8221; or &#8220;how do I program a 3D game?&#8221; These\u00c2\u00a0tutorials\u00c2\u00a0are more fundamental, asking &#8220;how does OpenGL or DirectX work?&#8221; which I hope inspires programmers and doesn&#8217;t scare them away with the complexity of modern graphics libraries.<\/p>\n<p><strong><a href=\"https:\/\/www.cores2.com\/3dtutorial\">The first tutorial is linked here, and will be placed within the root directory of this website.<\/a> Expect future tutorials within a few days.<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A while back, right when I was starting to learn how to program, I found a little CAD (Computer Aided Design &#8211; basically 3D modeling) application for my programable graphing calculator (a TI-89). The application was horribly slow &#8211; it &hellip; <a href=\"https:\/\/www.cores2.com\/blog\/?p=64\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-64","post","type-post","status-publish","format-standard","hentry","category-programming"],"_links":{"self":[{"href":"https:\/\/www.cores2.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/64","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cores2.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.cores2.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.cores2.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cores2.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=64"}],"version-history":[{"count":0,"href":"https:\/\/www.cores2.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/64\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.cores2.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=64"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cores2.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=64"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cores2.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=64"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}