{"id":209,"date":"2013-03-01T08:52:57","date_gmt":"2013-03-01T16:52:57","guid":{"rendered":"http:\/\/martinecker.com\/martincodes\/?p=209"},"modified":"2017-10-12T12:34:52","modified_gmt":"2017-10-12T19:34:52","slug":"cool-link-stash-february-2013","status":"publish","type":"post","link":"http:\/\/martinecker.com\/martincodes\/cool-link-stash-february-2013\/","title":{"rendered":"Cool Link Stash, February 2013"},"content":{"rendered":"<h4>Graphics<\/h4>\n<p>Simon Yeoung posted a nice article on his blog on his implementation of <a href=\"http:\/\/simonstechblog.blogspot.com\/2013\/01\/implementing-voxel-cone-tracing.html\" target=\"_blank\">voxel cone tracing<\/a>.<\/p>\n<p>NVIDIA posted a great article on their site on why to use pre-multiplied alpha called <a href=\"https:\/\/developer.nvidia.com\/content\/alpha-blending-pre-or-not-pre\" target=\"_blank\">Alpha Blending: To Pre or Not To Pre<\/a>. A longer, more in-depth <a href=\"http:\/\/home.comcast.net\/~tom_forsyth\/blog.wiki.html#%5B%5BPremultiplied%20alpha%5D%5D\" target=\"_blank\">treatise of the same subject<\/a> was posted in 2006 by Tom Forsyth, a worthwhile read.<\/p>\n<p>Steve McAuley has a short post on his blog that builds on a previous post he did on making the often used wrapped diffuse model energy-conserving. In this new post, he extends the formula to a generic wrapped diffuse model where an arbitrary power is used to soften the look a bit. His post is called <a href=\"http:\/\/blog.stevemcauley.com\/2013\/01\/30\/extension-to-energy-conserving-wrapped-diffuse\/\" target=\"_blank\">Extension to Energy-Conserving Wrapped Diffuse<\/a>.<\/p>\n<p>Here's a nice blog post <a href=\"http:\/\/interplayoflight.wordpress.com\/2013\/02\/04\/unity-as-an-fx-composer-replacement-for-shader-prototyping\/\" target=\"_blank\">comparing NVIDIA's FX Composer to Unity when it comes to quick shader prototyping<\/a>.<\/p>\n<p><\/p>\n<h4>C++<\/h4>\n<p>Google released a C++ library called <a href=\"https:\/\/code.google.com\/p\/cpp-btree\/\" target=\"_blank\">cpp-btree<\/a>, which provides an STL-style implementation of B-tree data structures.<\/p>\n<p>Another one of Herb Sutter's talks at C++ and Beyond 2012 got released on Channel 9. <a href=\"http:\/\/herbsutter.com\/2013\/02\/11\/atomic-weapons-the-c-memory-model-and-modern-hardware\" target=\"_blank\">atomic Weapons: The C++ Memory Model and Modern Hardware<\/a> is a two-part talk on the new C++11 memory model. This is a must-watch if you're doing any work on lock free algorithms. Great, in-depth talk.<\/p>\n<p><\/p>\n<h4>Other<\/h4>\n<p><a href=\"http:\/\/unknownworlds.com\/decoda\/\" target=\"_blank\">Decoda<\/a> is a free and open source IDE for Lua with an integrated debugger. You can check out the source code on the <a href=\"https:\/\/github.com\/unknownworlds\/decoda\" target=\"_blank\">Decoda GitHub repository<\/a>.<\/p>\n<p>After having done code reviews of the various open sourced id Software code bases, Fabien Sanglard is back with a <a href=\"http:\/\/fabiensanglard.net\/duke3d\/index.php\" target=\"_blank\">review of the code of Duke Nukem 3D<\/a>.<br \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Graphics Simon Yeoung posted a nice article on his blog on his implementation of voxel cone tracing. NVIDIA posted a great article on their site on why to use pre-multiplied alpha called Alpha Blending: To Pre or Not To Pre. &hellip; <a href=\"http:\/\/martinecker.com\/martincodes\/cool-link-stash-february-2013\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false,"footnotes":""},"categories":[9],"tags":[],"class_list":["post-209","post","type-post","status-publish","format-standard","hentry","category-cool-link-stash"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.12 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Cool Link Stash, February 2013 - Martin Codes<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/martinecker.com\/martincodes\/cool-link-stash-february-2013\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Cool Link Stash, February 2013 - Martin Codes\" \/>\n<meta property=\"og:description\" content=\"Graphics Simon Yeoung posted a nice article on his blog on his implementation of voxel cone tracing. NVIDIA posted a great article on their site on why to use pre-multiplied alpha called Alpha Blending: To Pre or Not To Pre. &hellip; Continue reading &rarr;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/martinecker.com\/martincodes\/cool-link-stash-february-2013\/\" \/>\n<meta property=\"og:site_name\" content=\"Martin Codes\" \/>\n<meta property=\"article:published_time\" content=\"2013-03-01T16:52:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-10-12T19:34:52+00:00\" \/>\n<meta name=\"author\" content=\"Martin Ecker\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Martin Ecker\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/martinecker.com\/martincodes\/cool-link-stash-february-2013\/\",\"url\":\"https:\/\/martinecker.com\/martincodes\/cool-link-stash-february-2013\/\",\"name\":\"Cool Link Stash, February 2013 - Martin Codes\",\"isPartOf\":{\"@id\":\"http:\/\/martinecker.com\/martincodes\/#website\"},\"datePublished\":\"2013-03-01T16:52:57+00:00\",\"dateModified\":\"2017-10-12T19:34:52+00:00\",\"author\":{\"@id\":\"http:\/\/martinecker.com\/martincodes\/#\/schema\/person\/2ad254c988c5aaef13e54a1cadde5816\"},\"breadcrumb\":{\"@id\":\"https:\/\/martinecker.com\/martincodes\/cool-link-stash-february-2013\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/martinecker.com\/martincodes\/cool-link-stash-february-2013\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/martinecker.com\/martincodes\/cool-link-stash-february-2013\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\/\/martinecker.com\/martincodes\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Cool Link Stash, February 2013\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/martinecker.com\/martincodes\/#website\",\"url\":\"http:\/\/martinecker.com\/martincodes\/\",\"name\":\"Martin Codes\",\"description\":\"Ramblings from a video game\/graphics programmer on anything coding- or graphics-related\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/martinecker.com\/martincodes\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"http:\/\/martinecker.com\/martincodes\/#\/schema\/person\/2ad254c988c5aaef13e54a1cadde5816\",\"name\":\"Martin Ecker\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/martinecker.com\/martincodes\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/7dfd53e699c35d22210a3c63e4b3e2cfae66f49029b0cde5f3c9d86847471d7a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/7dfd53e699c35d22210a3c63e4b3e2cfae66f49029b0cde5f3c9d86847471d7a?s=96&d=mm&r=g\",\"caption\":\"Martin Ecker\"},\"url\":\"http:\/\/martinecker.com\/martincodes\/author\/admin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Cool Link Stash, February 2013 - Martin Codes","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/martinecker.com\/martincodes\/cool-link-stash-february-2013\/","og_locale":"en_US","og_type":"article","og_title":"Cool Link Stash, February 2013 - Martin Codes","og_description":"Graphics Simon Yeoung posted a nice article on his blog on his implementation of voxel cone tracing. NVIDIA posted a great article on their site on why to use pre-multiplied alpha called Alpha Blending: To Pre or Not To Pre. &hellip; Continue reading &rarr;","og_url":"https:\/\/martinecker.com\/martincodes\/cool-link-stash-february-2013\/","og_site_name":"Martin Codes","article_published_time":"2013-03-01T16:52:57+00:00","article_modified_time":"2017-10-12T19:34:52+00:00","author":"Martin Ecker","twitter_misc":{"Written by":"Martin Ecker","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/martinecker.com\/martincodes\/cool-link-stash-february-2013\/","url":"https:\/\/martinecker.com\/martincodes\/cool-link-stash-february-2013\/","name":"Cool Link Stash, February 2013 - Martin Codes","isPartOf":{"@id":"http:\/\/martinecker.com\/martincodes\/#website"},"datePublished":"2013-03-01T16:52:57+00:00","dateModified":"2017-10-12T19:34:52+00:00","author":{"@id":"http:\/\/martinecker.com\/martincodes\/#\/schema\/person\/2ad254c988c5aaef13e54a1cadde5816"},"breadcrumb":{"@id":"https:\/\/martinecker.com\/martincodes\/cool-link-stash-february-2013\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/martinecker.com\/martincodes\/cool-link-stash-february-2013\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/martinecker.com\/martincodes\/cool-link-stash-february-2013\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/martinecker.com\/martincodes\/"},{"@type":"ListItem","position":2,"name":"Cool Link Stash, February 2013"}]},{"@type":"WebSite","@id":"http:\/\/martinecker.com\/martincodes\/#website","url":"http:\/\/martinecker.com\/martincodes\/","name":"Martin Codes","description":"Ramblings from a video game\/graphics programmer on anything coding- or graphics-related","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/martinecker.com\/martincodes\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"http:\/\/martinecker.com\/martincodes\/#\/schema\/person\/2ad254c988c5aaef13e54a1cadde5816","name":"Martin Ecker","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/martinecker.com\/martincodes\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/7dfd53e699c35d22210a3c63e4b3e2cfae66f49029b0cde5f3c9d86847471d7a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/7dfd53e699c35d22210a3c63e4b3e2cfae66f49029b0cde5f3c9d86847471d7a?s=96&d=mm&r=g","caption":"Martin Ecker"},"url":"http:\/\/martinecker.com\/martincodes\/author\/admin\/"}]}},"_links":{"self":[{"href":"http:\/\/martinecker.com\/martincodes\/wp-json\/wp\/v2\/posts\/209","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/martinecker.com\/martincodes\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/martinecker.com\/martincodes\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/martinecker.com\/martincodes\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/martinecker.com\/martincodes\/wp-json\/wp\/v2\/comments?post=209"}],"version-history":[{"count":12,"href":"http:\/\/martinecker.com\/martincodes\/wp-json\/wp\/v2\/posts\/209\/revisions"}],"predecessor-version":[{"id":277,"href":"http:\/\/martinecker.com\/martincodes\/wp-json\/wp\/v2\/posts\/209\/revisions\/277"}],"wp:attachment":[{"href":"http:\/\/martinecker.com\/martincodes\/wp-json\/wp\/v2\/media?parent=209"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/martinecker.com\/martincodes\/wp-json\/wp\/v2\/categories?post=209"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/martinecker.com\/martincodes\/wp-json\/wp\/v2\/tags?post=209"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}