{"id":1102,"date":"2015-09-21T04:20:33","date_gmt":"2015-09-21T04:20:33","guid":{"rendered":"http:\/\/lousodrome.net\/blog\/light\/?p=1102"},"modified":"2015-09-21T16:30:28","modified_gmt":"2015-09-21T16:30:28","slug":"series-of-articles-on-noise-generation","status":"publish","type":"post","link":"https:\/\/lousodrome.net\/blog\/light\/2015\/09\/21\/series-of-articles-on-noise-generation\/","title":{"rendered":"Series of articles on noise generation"},"content":{"rendered":"<p>I discovered last year these tutorials by <a href=\"https:\/\/twitter.com\/catlikecoding\">Jasper Flick<\/a> on how to make and use noise in Unity, and a couple of terrain and particle use examples. They present the difference between value noise and gradient noise, how Perlin noise and simplex noise work, and among others how to use curl noise to control the flow of particles.<\/p>\n<p>The\u00a0order information is presented is well thought, although the intention might not be clear at first. Don&#8217;t let the beginner&#8217;s tutorial tone (<em>&#8220;You&#8217;ll learn to: create and fill a texture;&#8221;,<\/em> etc.) turn you away, as the series do a great job at detailing the concepts and algorithms in a simple manner yet without cutting corners like so many articles on the topic do (when they&#8217;re not blatantly wrong and go ahead calling a blurred noise &#8220;Perlin noise&#8221;). I thought I had a pretty good grasp of gradient noise already, but reading it gave me an even better understanding.<\/p>\n<ul>\n<li><a href=\"http:\/\/catlikecoding.com\/unity\/tutorials\/noise\/\">Noise<\/a><\/li>\n<li><a href=\"http:\/\/catlikecoding.com\/unity\/tutorials\/noise-derivatives\/\">Noise Derivatives<\/a><\/li>\n<li><a href=\"http:\/\/catlikecoding.com\/unity\/tutorials\/simplex-noise\/\">Simplex Noise<\/a><\/li>\n<\/ul>\n<div style=\"width: 510px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/catlikecoding.com\/unity\/tutorials\/simplex-noise\/\"><img decoding=\"async\" loading=\"lazy\" class=\"\" src=\"http:\/\/catlikecoding.com\/unity\/tutorials\/simplex-noise\/tutorial-image.jpg\" alt=\"\" width=\"500\" height=\"256\" \/><\/a><p class=\"wp-caption-text\">Pushing particles around with Simplex curl noise.<\/p><\/div>\n<p>While at it, other resources on the topic include <a href=\"http:\/\/www.noisemachine.com\/talk1\/\">Ken Perlin&#8217;s GDC 1999 talk<\/a> and his two pages paper <a href=\"http:\/\/mrl.nyu.edu\/~perlin\/paper445.pdf\">Improving noise<\/a> explaining why use a 5th order polynomial for interpolation (a function I&#8217;ve sometimes seen called &#8220;smootherStep&#8221;).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I discovered last year these tutorials by Jasper Flick on how to make and use noise in Unity, and a couple of terrain and particle use examples. They present the difference between value noise and gradient noise, how Perlin noise &hellip; <a href=\"https:\/\/lousodrome.net\/blog\/light\/2015\/09\/21\/series-of-articles-on-noise-generation\/\">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":[],"categories":[17],"tags":[755,547,753,754,749,117,152,746,748,751,750,752,666,433,747],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.13 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Series of articles on noise generation &ndash; Light is beautiful<\/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:\/\/lousodrome.net\/blog\/light\/2015\/09\/21\/series-of-articles-on-noise-generation\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Series of articles on noise generation &ndash; Light is beautiful\" \/>\n<meta property=\"og:description\" content=\"I discovered last year these tutorials by Jasper Flick on how to make and use noise in Unity, and a couple of terrain and particle use examples. They present the difference between value noise and gradient noise, how Perlin noise &hellip; Continue reading &rarr;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/lousodrome.net\/blog\/light\/2015\/09\/21\/series-of-articles-on-noise-generation\/\" \/>\n<meta property=\"og:site_name\" content=\"Light is beautiful\" \/>\n<meta property=\"article:published_time\" content=\"2015-09-21T04:20:33+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2015-09-21T16:30:28+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/catlikecoding.com\/unity\/tutorials\/simplex-noise\/tutorial-image.jpg\" \/>\n<meta name=\"author\" content=\"Julien Guertault\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@Zavie\" \/>\n<meta name=\"twitter:site\" content=\"@Zavie\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Julien Guertault\" \/>\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\":\"Article\",\"@id\":\"https:\/\/lousodrome.net\/blog\/light\/2015\/09\/21\/series-of-articles-on-noise-generation\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/lousodrome.net\/blog\/light\/2015\/09\/21\/series-of-articles-on-noise-generation\/\"},\"author\":{\"name\":\"Julien Guertault\",\"@id\":\"https:\/\/lousodrome.net\/blog\/light\/#\/schema\/person\/a16a2a69d73eca763ffdf125c49eaa2f\"},\"headline\":\"Series of articles on noise generation\",\"datePublished\":\"2015-09-21T04:20:33+00:00\",\"dateModified\":\"2015-09-21T16:30:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/lousodrome.net\/blog\/light\/2015\/09\/21\/series-of-articles-on-noise-generation\/\"},\"wordCount\":217,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/lousodrome.net\/blog\/light\/#\/schema\/person\/a16a2a69d73eca763ffdf125c49eaa2f\"},\"keywords\":[\"curl noise\",\"flow\",\"fractal noise\",\"gradient noise\",\"Ken Perlin\",\"noise\",\"particle\",\"Perlin noise\",\"simplex noise\",\"smootherStep\",\"smoothStep\",\"terrain\",\"tutorial\",\"Unity\",\"value noise\"],\"articleSection\":[\"Rendering\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/lousodrome.net\/blog\/light\/2015\/09\/21\/series-of-articles-on-noise-generation\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/lousodrome.net\/blog\/light\/2015\/09\/21\/series-of-articles-on-noise-generation\/\",\"url\":\"https:\/\/lousodrome.net\/blog\/light\/2015\/09\/21\/series-of-articles-on-noise-generation\/\",\"name\":\"Series of articles on noise generation &ndash; Light is beautiful\",\"isPartOf\":{\"@id\":\"https:\/\/lousodrome.net\/blog\/light\/#website\"},\"datePublished\":\"2015-09-21T04:20:33+00:00\",\"dateModified\":\"2015-09-21T16:30:28+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/lousodrome.net\/blog\/light\/2015\/09\/21\/series-of-articles-on-noise-generation\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/lousodrome.net\/blog\/light\/2015\/09\/21\/series-of-articles-on-noise-generation\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/lousodrome.net\/blog\/light\/2015\/09\/21\/series-of-articles-on-noise-generation\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/lousodrome.net\/blog\/light\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Series of articles on noise generation\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/lousodrome.net\/blog\/light\/#website\",\"url\":\"https:\/\/lousodrome.net\/blog\/light\/\",\"name\":\"Light is beautiful\",\"description\":\"Thoughts of a graphics programmer, demoscener and spare time photographer\",\"publisher\":{\"@id\":\"https:\/\/lousodrome.net\/blog\/light\/#\/schema\/person\/a16a2a69d73eca763ffdf125c49eaa2f\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/lousodrome.net\/blog\/light\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/lousodrome.net\/blog\/light\/#\/schema\/person\/a16a2a69d73eca763ffdf125c49eaa2f\",\"name\":\"Julien Guertault\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/lousodrome.net\/blog\/light\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2e5fc7a18e1701e1bb61a5da0ef35cf7?s=96&d=identicon&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2e5fc7a18e1701e1bb61a5da0ef35cf7?s=96&d=identicon&r=g\",\"caption\":\"Julien Guertault\"},\"logo\":{\"@id\":\"https:\/\/lousodrome.net\/blog\/light\/#\/schema\/person\/image\/\"},\"url\":\"https:\/\/lousodrome.net\/blog\/light\/author\/admin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Series of articles on noise generation &ndash; Light is beautiful","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:\/\/lousodrome.net\/blog\/light\/2015\/09\/21\/series-of-articles-on-noise-generation\/","og_locale":"en_US","og_type":"article","og_title":"Series of articles on noise generation &ndash; Light is beautiful","og_description":"I discovered last year these tutorials by Jasper Flick on how to make and use noise in Unity, and a couple of terrain and particle use examples. They present the difference between value noise and gradient noise, how Perlin noise &hellip; Continue reading &rarr;","og_url":"https:\/\/lousodrome.net\/blog\/light\/2015\/09\/21\/series-of-articles-on-noise-generation\/","og_site_name":"Light is beautiful","article_published_time":"2015-09-21T04:20:33+00:00","article_modified_time":"2015-09-21T16:30:28+00:00","og_image":[{"url":"http:\/\/catlikecoding.com\/unity\/tutorials\/simplex-noise\/tutorial-image.jpg"}],"author":"Julien Guertault","twitter_card":"summary_large_image","twitter_creator":"@Zavie","twitter_site":"@Zavie","twitter_misc":{"Written by":"Julien Guertault","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/lousodrome.net\/blog\/light\/2015\/09\/21\/series-of-articles-on-noise-generation\/#article","isPartOf":{"@id":"https:\/\/lousodrome.net\/blog\/light\/2015\/09\/21\/series-of-articles-on-noise-generation\/"},"author":{"name":"Julien Guertault","@id":"https:\/\/lousodrome.net\/blog\/light\/#\/schema\/person\/a16a2a69d73eca763ffdf125c49eaa2f"},"headline":"Series of articles on noise generation","datePublished":"2015-09-21T04:20:33+00:00","dateModified":"2015-09-21T16:30:28+00:00","mainEntityOfPage":{"@id":"https:\/\/lousodrome.net\/blog\/light\/2015\/09\/21\/series-of-articles-on-noise-generation\/"},"wordCount":217,"commentCount":0,"publisher":{"@id":"https:\/\/lousodrome.net\/blog\/light\/#\/schema\/person\/a16a2a69d73eca763ffdf125c49eaa2f"},"keywords":["curl noise","flow","fractal noise","gradient noise","Ken Perlin","noise","particle","Perlin noise","simplex noise","smootherStep","smoothStep","terrain","tutorial","Unity","value noise"],"articleSection":["Rendering"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/lousodrome.net\/blog\/light\/2015\/09\/21\/series-of-articles-on-noise-generation\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/lousodrome.net\/blog\/light\/2015\/09\/21\/series-of-articles-on-noise-generation\/","url":"https:\/\/lousodrome.net\/blog\/light\/2015\/09\/21\/series-of-articles-on-noise-generation\/","name":"Series of articles on noise generation &ndash; Light is beautiful","isPartOf":{"@id":"https:\/\/lousodrome.net\/blog\/light\/#website"},"datePublished":"2015-09-21T04:20:33+00:00","dateModified":"2015-09-21T16:30:28+00:00","breadcrumb":{"@id":"https:\/\/lousodrome.net\/blog\/light\/2015\/09\/21\/series-of-articles-on-noise-generation\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/lousodrome.net\/blog\/light\/2015\/09\/21\/series-of-articles-on-noise-generation\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/lousodrome.net\/blog\/light\/2015\/09\/21\/series-of-articles-on-noise-generation\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/lousodrome.net\/blog\/light\/"},{"@type":"ListItem","position":2,"name":"Series of articles on noise generation"}]},{"@type":"WebSite","@id":"https:\/\/lousodrome.net\/blog\/light\/#website","url":"https:\/\/lousodrome.net\/blog\/light\/","name":"Light is beautiful","description":"Thoughts of a graphics programmer, demoscener and spare time photographer","publisher":{"@id":"https:\/\/lousodrome.net\/blog\/light\/#\/schema\/person\/a16a2a69d73eca763ffdf125c49eaa2f"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/lousodrome.net\/blog\/light\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/lousodrome.net\/blog\/light\/#\/schema\/person\/a16a2a69d73eca763ffdf125c49eaa2f","name":"Julien Guertault","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/lousodrome.net\/blog\/light\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/2e5fc7a18e1701e1bb61a5da0ef35cf7?s=96&d=identicon&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2e5fc7a18e1701e1bb61a5da0ef35cf7?s=96&d=identicon&r=g","caption":"Julien Guertault"},"logo":{"@id":"https:\/\/lousodrome.net\/blog\/light\/#\/schema\/person\/image\/"},"url":"https:\/\/lousodrome.net\/blog\/light\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/lousodrome.net\/blog\/light\/wp-json\/wp\/v2\/posts\/1102"}],"collection":[{"href":"https:\/\/lousodrome.net\/blog\/light\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lousodrome.net\/blog\/light\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lousodrome.net\/blog\/light\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lousodrome.net\/blog\/light\/wp-json\/wp\/v2\/comments?post=1102"}],"version-history":[{"count":0,"href":"https:\/\/lousodrome.net\/blog\/light\/wp-json\/wp\/v2\/posts\/1102\/revisions"}],"wp:attachment":[{"href":"https:\/\/lousodrome.net\/blog\/light\/wp-json\/wp\/v2\/media?parent=1102"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lousodrome.net\/blog\/light\/wp-json\/wp\/v2\/categories?post=1102"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lousodrome.net\/blog\/light\/wp-json\/wp\/v2\/tags?post=1102"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}