[{"data":1,"prerenderedAt":326},["ShallowReactive",2],{"project-17065264":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":29,"sentiment":30,"stance_mix":31,"scored_comments":36,"aspects":37,"strip":45,"post_text":47,"what":48,"said":68,"maker_in_thread":165,"shape":175,"grid":179,"attempts":289,"same_week":290,"maker_shows":32,"maker_hidden":319,"reader_version":320,"card":321},"17065264","rayshader","A raytracer to shade topographic maps in R","title","Show HN: A raytracer to shade topographic maps in R","http:\u002F\u002Ftylermw.com\u002Fthrowing-shade\u002F","tylermw.com","tylermw",1526304341,2018,198,47,184,2155,9,"notable","creative","map shading and cartography","library",[24,25,26,27,28],"raytracing","topographic maps","relief shading","r package","cartography","mixed",-0.08,{"positive":32,"neutral":33,"mixed":34,"critical":35},3,7,0,6,16,{"performance":38,"execution":39,"design":41,"docs":43,"idea":44},{"positive":34,"critical":34},{"positive":34,"critical":40},2,{"positive":42,"critical":32},1,{"positive":34,"critical":42},{"positive":42,"critical":34},[46,34,34,34,34,34,34,34,34,34,34,34,34,34,32,34,42,32,42,34,42,34,42,34,34,46,34,34,34,34,34,34,34,32,32,32,32,34,46,42],5,null,{"problem":47,"audience":47,"pricing":47,"motivation":47,"time_to_build":47,"stack":49,"openness":65,"stage":66,"team_size":67},[50,59],{"value":51,"source":52,"evidence":53},"R","maker",[54,56],{"id":55},"post",{"id":57,"by":11,"text":58},"17065847","If you missed it, the github repo for the R package is located here: https:\u002F\u002Fgithub.com\u002Ftylermorganwall\u002Frayshader",{"value":60,"source":52,"evidence":61},"ImageMagick",[62],{"id":63,"by":11,"text":64},"17066504","I'll look into that, thanks for the note. My Imagemagick knowledge is by far my weakest link.","open_source","launched","unknown",{"praise":69,"objections":82,"requests":115,"questions":137,"alternatives":145},[70],{"value":71,"source":72,"evidence":73},"Nice write-up and interesting project","commenter",[74,78],{"id":75,"by":76,"text":77},"17065591","osrec","That's a cool project and a nice write up. I remember as a 13 yr old being fascinated by 3D software. I think I just wanted to create something photo-realistic with a computer. I…",{"id":79,"by":80,"text":81},"17068245","zython","looks good. would love to see more !",[83,97,104],{"value":84,"source":72,"evidence":85},"Ray tracing shadows are misleading for topographic maps and the comparison is unfair to the competing slope-shading method",[86,90,93],{"id":87,"by":88,"text":89},"17069938","tabtab","I have a bit of a complaint. I've used something similar to the \"derivative based model\" (DBM) for 3D shading before, and tested them on moonscapes. The angle-to-brightness curve…",{"id":91,"by":88,"text":92},"17070441","I still have to conclude the Andes example as given is misleading. It strongly implies ray-tracing \"fixes\" the problems shown. A footnote alone can't fix that (or is the wrong…",{"id":94,"by":95,"text":96},"17070801","civility","I have the same complaint. I couldn't think of a polite way to put it, so this won't be polite, but whenever someone compares their algorithm with a poor version of a competing…",{"value":98,"source":72,"evidence":99},"Missing Lambert term in shading",[100],{"id":101,"by":102,"text":103},"17070375","voidmain","It looks to me like the original gradient based shading code is just wrong. Maybe there are numerical problems due to its frivolous use of trig functions, or more likely the way…",{"value":105,"source":72,"evidence":106},"Shadow banding and odd gradients look unnatural",[107,111],{"id":108,"by":109,"text":110},"17073861","JKCalhoun","I don't know about \"glossy\" (this is not my field) but I did feel the way that the shadows diffused (considering moving from the object casting the shadow to the shadows…",{"id":112,"by":113,"text":114},"17066350","leni536","Your raytraced shadow maps have a bit of a \"glossy\" feel, it suggests that you don't use linear colorspace for rendering these. I think colormagick also needs additional options…",[116,123,130],{"value":117,"source":72,"evidence":118},"Port to a QGIS plugin",[119],{"id":120,"by":121,"text":122},"17068356","JorgeGT","This would be fantastic as a QGIS plugin, have you thought about applying to their grant program?",{"value":124,"source":72,"evidence":125},"Use ambient occlusion for softer shading",[126],{"id":127,"by":128,"text":129},"17076241","Remnant44","Neat project! I'm not sure if the author is familiar with ambient occlusion, but the method described here can be extended to generate ambient occlusion data which helps with a…",{"value":131,"source":72,"evidence":132},"Speed up the algorithm",[133],{"id":134,"by":135,"text":136},"17066177","abirler","I think the O(row * col * light_count * dist) algorithm could be optimized to run in O(row * col * light_count). The idea is, imagine the light is coming from the left, and our…",[138],{"value":139,"source":72,"evidence":140},"Whether the QGIS grant program applies",[141,142],{"id":120,"by":121,"text":122},{"id":143,"by":121,"text":144},"17069090","Here's a brief outline of the requirements: https:\u002F\u002Fplugins.qgis.org\u002F they advertise a 2 weeks review time maximum.",[146,150,154],{"value":147,"source":72,"evidence":148},"Derivative-based slope shading (DBM)",[149],{"id":87,"by":88,"text":89},{"value":151,"source":72,"evidence":152},"Blender and Yafray",[153],{"id":75,"by":76,"text":77},{"value":155,"source":72,"evidence":156},"Screen-space ambient occlusion and parallax occlusion mapping",[157,161],{"id":158,"by":159,"text":160},"17067841","alkonaut","My comment came from the observation that making sampled tracing of a depth buffer is similar to what (current, rasterizing) game engines do for ambient occlusion.…",{"id":162,"by":163,"text":164},"17069349","jjoonathan","It's completely true. The term to google is \"Parallax Occlusion Mapping,\" which was used for several extremely impressive (for the time) GPU demos in 2004. EDIT:…",{"comments":166,"answered":40,"key":167},8,[168,171,174],{"id":169,"text":170},"17065707","Thanks for the comment! It's pretty incredible what you can do with raytracing nowadays, using only open source software.",{"id":172,"text":173},"17066477","One thing I didn't mention in the article are a few optimizations I made that make it significantly less than O(row * col * light_count * dist). First, if the ray exits the map…",{"id":63,"text":64},{"commenters":176,"max_depth":46,"maker_replies":166,"first_comment_mins":177,"lifespan_hours":178},27,36,95,[180,182,183,187,189,192,195,198,201,204,206,209,211,213,216,218,220,222,223,225,227,231,233,235,237,239,241,242,246,247,249,251,252,255,259,260,262,263,265,267,270,273,276,280,282,284,286],[75,34,46,181,76,34],"maker\u002Fpositive\u002Fnone",[169,34,34,181,11,42],[184,34,34,185,186,34],"17066225","other\u002Fneutral\u002Fnone","gdubs",[188,34,34,185,76,34],"17066305",[190,34,34,185,191,34],"17066314","jrhurst",[193,34,34,185,194,34],"17066501","dannygarcia",[196,34,34,185,197,34],"17068447","anchpop",[199,34,34,200,76,34],"17069899","other\u002Fneutral\u002Fdesign",[202,34,34,185,203,34],"17072219","pasabagi",[205,34,34,185,186,34],"17074210",[207,34,34,185,208,34],"17070229","MrLeap",[210,34,34,185,186,34],"17074223",[212,34,34,185,208,34],"17100995",[214,34,34,185,215,34],"17071297","CyberDildonics",[217,34,34,185,159,34],"17067118",[219,34,34,185,76,34],"17067159",[134,42,32,221,135,34],"project\u002Fneutral\u002Fperformance",[172,42,34,221,11,42],[112,40,42,224,113,34],"project\u002Fcritical\u002Fexecution",[63,40,34,226,11,42],"maker\u002Fneutral\u002Fnone",[228,40,32,229,230,34],"17066956","maker\u002Fneutral\u002Fexecution","a_e_k",[108,40,42,232,109,34],"project\u002Fcritical\u002Fdesign",[57,32,34,234,11,42],"maker\u002Fneutral\u002Fdocs",[87,236,42,232,88,34],4,[238,236,34,226,11,42],"17070115",[91,236,42,240,88,34],"project\u002Fcritical\u002Fdocs",[101,236,42,224,102,34],[243,236,34,244,245,34],"17071151","commenter\u002Fneutral\u002Fnone","ffwacom",[94,236,34,244,95,34],[120,46,46,248,121,34],"project\u002Fpositive\u002Fidea",[250,46,34,226,11,42],"17068472",[143,46,34,244,121,34],[253,35,34,254,159,34],"17067169","other\u002Fneutral\u002Fperformance",[256,35,34,257,258,34],"17067704","commenter\u002Fneutral\u002Fperformance","olliej",[158,35,34,244,159,34],[261,35,34,244,258,34],"17068071",[162,35,34,244,163,34],[264,35,34,257,215,34],"17071321",[127,33,32,266,128,34],"project\u002Fneutral\u002Fdesign",[268,166,32,221,269,34],"17065730","bhouston",[271,166,32,221,272,34],"17068567","ska",[274,18,32,221,275,34],"17093151","pvillano",[277,278,32,279,80,34],"17067444",10,"maker\u002Fneutral\u002Fdesign",[281,278,34,279,11,42],"17067738",[79,278,46,283,80,34],"maker\u002Fpositive\u002Fdesign",[285,278,34,226,11,42],"17068266",[287,278,42,232,288,34],"17071413","pulkitsh1234",[],[291,296,301,306,310,314],{"id":292,"name":293,"points":294,"category":295},"17080985","The Curious Expedition",458,"games",{"id":297,"name":298,"points":299,"category":300},"17049602","Strimpack",249,"infrastructure",{"id":302,"name":303,"points":304,"category":305},"17064056","meethub",175,"web_saas",{"id":307,"name":308,"points":309,"category":20},"17081586","Screely",121,{"id":311,"name":312,"points":313,"category":300},"17060272","Peerdium",115,{"id":315,"name":316,"points":317,"category":318},"17083941","mvdan-sh",89,"dev_tools",false,"v2",{"id":322,"name":5,"line":6,"ai":319,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":30,"top":18,"kw":323,"maker":11,"domain":10,"tier":19,"attempts":34,"strip":324,"url":9,"mix":325,"praise":71,"objection":84,"sub":21},17065264,[24,25,26,27,28],"5000000000000030131010100500000003333051",[32,33,34,35],1793990974236]