{"version":"1.0","provider_name":"Light is beautiful","provider_url":"http:\/\/lousodrome.net\/blog\/light","author_name":"Julien Guertault","author_url":"http:\/\/lousodrome.net\/blog\/light\/author\/admin\/","title":"Simple fragment shader based wireframe display &#8211; Light is beautiful","type":"rich","width":600,"height":338,"html":"<blockquote class=\"wp-embedded-content\" data-secret=\"fUlzH7EWMq\"><a href=\"http:\/\/lousodrome.net\/blog\/light\/2013\/02\/28\/simple-fragment-shader-based-wireframe-display\/\">Simple fragment shader based wireframe display<\/a><\/blockquote><iframe sandbox=\"allow-scripts\" security=\"restricted\" src=\"http:\/\/lousodrome.net\/blog\/light\/2013\/02\/28\/simple-fragment-shader-based-wireframe-display\/embed\/#?secret=fUlzH7EWMq\" width=\"600\" height=\"338\" title=\"&#8220;Simple fragment shader based wireframe display&#8221; &#8212; Light is beautiful\" data-secret=\"fUlzH7EWMq\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" class=\"wp-embedded-content\"><\/iframe><script>\n\/*! This file is auto-generated *\/\n!function(d,l){\"use strict\";l.querySelector&&d.addEventListener&&\"undefined\"!=typeof URL&&(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&&!\/[^a-zA-Z0-9]\/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret=\"'+t.secret+'\"]'),o=l.querySelectorAll('blockquote[data-secret=\"'+t.secret+'\"]'),c=new RegExp(\"^https?:$\",\"i\"),i=0;i<o.length;i++)o[i].style.display=\"none\";for(i=0;i<a.length;i++)s=a[i],e.source===s.contentWindow&&(s.removeAttribute(\"style\"),\"height\"===t.message?(1e3<(r=parseInt(t.value,10))?r=1e3:~~r<200&&(r=200),s.height=r):\"link\"===t.message&&(r=new URL(s.getAttribute(\"src\")),n=new URL(t.value),c.test(n.protocol))&&n.host===r.host&&l.activeElement===s&&(d.top.location.href=t.value))}},d.addEventListener(\"message\",d.wp.receiveEmbedMessage,!1),l.addEventListener(\"DOMContentLoaded\",function(){for(var e,t,s=l.querySelectorAll(\"iframe.wp-embedded-content\"),r=0;r<s.length;r++)(t=(e=s[r]).getAttribute(\"data-secret\"))||(t=Math.random().toString(36).substring(2,12),e.src+=\"#?secret=\"+t,e.setAttribute(\"data-secret\",t)),e.contentWindow.postMessage({message:\"ready\",secret:t},\"*\")},!1)))}(window,document);\n\/\/# sourceURL=http:\/\/lousodrome.net\/blog\/light\/wp-includes\/js\/wp-embed.min.js\n<\/script>\n","description":"On his blog, Florian Boesch introduces to a clever technique to render wireframe polygons using fragment shading, along with\u00a0a live demo. The full explanation is presented in this paper. For convex polygons, just add as an attribute (or compute in &hellip; Continue reading &rarr;"}