{
    "componentChunkName": "component---src-pages-projects-mdx-slug-js",
    "path": "/projects/rasterizer/",
    "result": {"data":{"mdx":{"body":"var _excluded = [\"components\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"title\": \"Software 3D Rasterizer\",\n  \"author\": \"Sanketh Hegde\",\n  \"type\": \"graphics project\",\n  \"skillTags\": [\"code\", \"computer graphics\"],\n  \"toolTags\": [\"C++\"],\n  \"thumbnailVideo\": \"./rasterizer_thumbnail.mp4\",\n  \"priority\": 0\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, _excluded);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(Block, {\n    caption: \"3D software rasterizer built from scratch in C++. Loads OBJs, applies camera transformations, depth buffering, texture mapping, lighting, and anti-aliasing to render scenes.\",\n    mdxType: \"Block\"\n  }, mdx(Video, {\n    source: \"https://sanketh-hegde.s3.us-west-1.amazonaws.com/projects_compressed/rasterizer/rasterizer_video.mp4\",\n    mdxType: \"Video\"\n  })), mdx(Spacer, {\n    mdxType: \"Spacer\"\n  }), mdx(Block, {\n    caption: \"Supersampling anti-aliasing (SSAA), supporting 1x, 4x, 9x, and 16x samples.\",\n    mdxType: \"Block\"\n  }, mdx(Image, {\n    source: \"https://sanketh-hegde.s3.us-west-1.amazonaws.com/projects/rasterizer/wizard-anti-aliased.png\",\n    alt: \"Anti-aliasing demo\",\n    width: \"500px\",\n    mdxType: \"Image\"\n  })), mdx(Spacer, {\n    mdxType: \"Spacer\"\n  }), mdx(Block, {\n    caption: \"Lambertian shading off (left), and on (right).\",\n    mdxType: \"Block\"\n  }, mdx(Image, {\n    source: \"https://sanketh-hegde.s3.us-west-1.amazonaws.com/projects/rasterizer/lambert_shading.png\",\n    alt: \"Lambert shading demo\",\n    width: \"500px\",\n    mdxType: \"Image\"\n  })), mdx(Spacer, {\n    mdxType: \"Spacer\"\n  }), mdx(Spacer, {\n    mdxType: \"Spacer\"\n  }), mdx(Block, {\n    mdxType: \"Block\"\n  }, mdx(\"p\", null, \"\\\"Wizard\\\" 3D model by \", mdx(\"a\", {\n    href: \"https://www.fab.com/sellers/Kamilla%20Kraus\"\n  }, \"Kamilla Kraus\"), \" via \", mdx(\"a\", {\n    href: \"https://www.fab.com/listings/f76da595-1989-4e05-bf4f-ee7798d8a87b\"\n  }, \"Fab\"), \", used under \", mdx(\"a\", {\n    href: \"https://creativecommons.org/licenses/by/4.0/\"\n  }, \"CC BY 4.0\"), \".\")));\n}\n;\nMDXContent.isMDXComponent = true;","frontmatter":{"title":"Software 3D Rasterizer","author":"Sanketh Hegde","type":"graphics project"},"slug":"rasterizer/"}},"pageContext":{"id":"ffb4bcf1-5c8c-551b-bc1e-73bb7966bb3b","slug":"rasterizer/","__params":{"slug":"rasterizer"}}},
    "staticQueryHashes": []}