{"id":2346,"date":"2016-07-31T19:05:48","date_gmt":"2016-08-01T02:05:48","guid":{"rendered":"http:\/\/mattfife.com\/?page_id=2346"},"modified":"2023-04-25T19:35:42","modified_gmt":"2023-04-26T02:35:42","slug":"code-projects","status":"publish","type":"page","link":"https:\/\/mattfife.com\/?page_id=2346","title":{"rendered":"Projects"},"content":{"rendered":"\n<p>A few things I&#8217;ve worked with have found their way to the public. Some of which you can find below.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"#ProfessionalPublications\">Professional publications<\/a><\/li>\n\n\n\n<li><a href=\"#GithubProjects\">Github projects<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Professional Publications:<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><a rel=\"noreferrer noopener\" href=\"https:\/\/software.intel.com\/en-us\/blogs\/2013\/03\/27\/adaptive-volumetric-shadow-maps\" target=\"_blank\">Adaptive Volumetric Shadowmaps<\/a><\/h3>\n\n\n\n<p><a href=\"https:\/\/mattfife.com\/?page_id=4171\" target=\"_blank\" rel=\"noreferrer noopener\">Archived version here just in case the link breaks.<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/software.intel.com\/en-us\/blogs\/2013\/03\/27\/adaptive-volumetric-shadow-maps\" target=\"_blank\" rel=\"noreferrer noopener\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/software.intel.com\/sites\/default\/files\/managed\/38\/d6\/AVSM1.png?w=640&#038;ssl=1\" alt=\"\"\/><\/a><\/figure>\n\n\n\n<p>Adaptive Volumetric Shadow Maps use a new technique that allows a developer to generate real-time adaptively sampled shadow representations for transmittance through volumetric media.&nbsp; This new data structure and technique allows for generation of dynamic, self-shadowed volumetric media in realtime rendering engines using today\u2019s DirectX 11 hardware.<\/p>\n\n\n\n<p>Each texel of this new kind of shadow map stores a compact approximation to the transmittance curve along the corresponding light ray.&nbsp; The main innovation of the AVSM technique is a new streaming compression algorithm that is capable of building a constant-storage, variable-error representation of a visibility curve that represents the light ray\u2019s travel through the media that can be used in later shadow lookups.<\/p>\n\n\n\n<p>Another exciting part of this sample is the use of a new pixel shader ordering feature found in new Intel\u00ae Iris&#x2122; and Intel\u00ae Iris&#x2122; Pro graphics hardware. Two implementations are provided in this sample &#8211; a standard DirectX implementation, and an implementation that utilizes this new graphics hardware feature.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"page-title\"><a rel=\"noreferrer noopener\" href=\"https:\/\/software.intel.com\/en-us\/blogs\/2013\/08\/26\/using-the-intel-perceptual-computing-sdk-to-make-your-apps-more-immersive-and-user\" target=\"_blank\">Using the Intel Perceptual Computing SDK to Make Your Apps More Immersive and User Aware<\/a><\/h3>\n\n\n\n<p><a href=\"https:\/\/mattfife.com\/?page_id=4176\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"Archived version in case the original breaks. (opens in a new tab)\">Archived version in case the original breaks.<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/software.intel.com\/en-us\/blogs\/2013\/08\/26\/using-the-intel-perceptual-computing-sdk-to-make-your-apps-more-immersive-and-user\" target=\"_blank\" rel=\"noreferrer noopener\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/software.intel.com\/sites\/default\/files\/managed\/ec\/24\/PerCSample.png?w=640&#038;ssl=1\" alt=\"\"\/><\/a><\/figure>\n\n\n\n<p>The Intel Perceptual Computing SDK along with its 3D camera allows a system to be even more aware of its environment, and more specifically, about what the user is doing. This sample demonstrates how you can make simple additions to your applications to make the experience of using your software much more immersive. Via the use of voice commands, you can do things like quit, pause and resume a game. By detecting if a user gets up from a system, your application can automatically pause or take other actions. These methods can also be used to save power by sensing the user\u2019s presence to dim or turn off displays automatically when they leave, and turn them back on when they return. By detecting if other person(s) are watching a screen, one can implement software privacy screens or hide age-sensitive content while not interrupting game play.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Github projects:<\/h2>\n\n\n\n<p>My github projects are currently all distributed with a BSD license so you can use the code however you&#8217;d like.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/github.com\/mattfife\/taskbar-sound-switcher\" target=\"_blank\" rel=\"noreferrer noopener\">Taskbar Sound Switcher<\/a><\/h3>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"437\" height=\"135\" data-attachment-id=\"4168\" data-permalink=\"https:\/\/mattfife.com\/?attachment_id=4168\" data-orig-file=\"https:\/\/i0.wp.com\/mattfife.com\/wp-content\/themes\/mattTheme\/headerimgs\/2019\/10\/687474703a2f2f6936302e74696e797069632e636f6d2f32386c633666632e6a7067.jpg?fit=437%2C135&amp;ssl=1\" data-orig-size=\"437,135\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}\" data-image-title=\"687474703a2f2f6936302e74696e797069632e636f6d2f32386c633666632e6a7067\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/mattfife.com\/wp-content\/themes\/mattTheme\/headerimgs\/2019\/10\/687474703a2f2f6936302e74696e797069632e636f6d2f32386c633666632e6a7067.jpg?fit=437%2C135&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/mattfife.com\/wp-content\/themes\/mattTheme\/headerimgs\/2019\/10\/687474703a2f2f6936302e74696e797069632e636f6d2f32386c633666632e6a7067.jpg?resize=437%2C135&#038;ssl=1\" alt=\"\" class=\"wp-image-4168\" srcset=\"https:\/\/i0.wp.com\/mattfife.com\/wp-content\/themes\/mattTheme\/headerimgs\/2019\/10\/687474703a2f2f6936302e74696e797069632e636f6d2f32386c633666632e6a7067.jpg?w=437&amp;ssl=1 437w, https:\/\/i0.wp.com\/mattfife.com\/wp-content\/themes\/mattTheme\/headerimgs\/2019\/10\/687474703a2f2f6936302e74696e797069632e636f6d2f32386c633666632e6a7067.jpg?resize=300%2C93&amp;ssl=1 300w\" sizes=\"auto, (max-width: 437px) 100vw, 437px\" \/><\/figure>\n\n\n\n<p>I worked on this project to fix an annoying problem I had. I often wanted to switch quickly between my headset and my external speakers &#8211; but hated clicking all over the taskbar. Wouldn&#8217;t it be better if you could set up a rotating queue of sound devices you wanted and quickly switch between them by clicking on a taskbar icon?<\/p>\n\n\n\n<p><strong>Update<\/strong>: Appears Microsoft was listening! They have embedded this idea into Windows 10! (Though I won&#8217;t take credit for coming up with the original idea &#8211; I just did it in a way I liked)<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/github.com\/mattfife\/QtQuick-with-cmake\" target=\"_blank\" rel=\"noreferrer noopener\">QtQuick and CMake Template<\/a><\/h3>\n\n\n\n<p>Qt is a great UI library and comes with a number of useful tools such as qmake. But for many larger projects, you might want to use CMake to be more compatible with your continual integration environment. The docs on how to do this are very poor, so I decided to make a nice starting template that shows you how to set it up. Like many get-started helpers, it&#8217;s been a wildly successful little sample.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/github.com\/mattfife\/BasicOutOfSourceCMake\" data-type=\"URL\" data-id=\"https:\/\/github.com\/mattfife\/BasicOutOfSourceCMake\" target=\"_blank\" rel=\"noreferrer noopener\">Windows\/Linux Out-of-Source CMake Template<\/a>  <\/h3>\n\n\n\n<p>I made a super minimal CMake sample that you can use to start your next cross-platform project that uses out of source builds. It works on both Windows and Linux without tricks or gotchas. It does a great job of introducing people to out of source builds using only standard practices and features that work on all platforms.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A few things I&#8217;ve worked with have found their way to the public. Some of which you can find below. Professional Publications: Adaptive Volumetric Shadowmaps Archived version here just in case the link breaks. Adaptive Volumetric Shadow Maps use a new technique that allows a developer to generate real-time adaptively sampled shadow representations for transmittance through volumetric media.&nbsp; This new data structure and technique allows for generation of dynamic, self-shadowed volumetric media in realtime rendering engines using today\u2019s DirectX 11&#8230;<\/p>\n<p class=\"read-more\"><a class=\"btn btn-default\" href=\"https:\/\/mattfife.com\/?page_id=2346\"> Read More<span class=\"screen-reader-text\">  Read More<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"jetpack_post_was_ever_published":false,"footnotes":""},"class_list":["post-2346","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/P4WECr-BQ","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/mattfife.com\/index.php?rest_route=\/wp\/v2\/pages\/2346","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mattfife.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mattfife.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mattfife.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mattfife.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2346"}],"version-history":[{"count":14,"href":"https:\/\/mattfife.com\/index.php?rest_route=\/wp\/v2\/pages\/2346\/revisions"}],"predecessor-version":[{"id":8659,"href":"https:\/\/mattfife.com\/index.php?rest_route=\/wp\/v2\/pages\/2346\/revisions\/8659"}],"wp:attachment":[{"href":"https:\/\/mattfife.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2346"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}