From 307418befc99a5260dc140322c492a5337b118df Mon Sep 17 00:00:00 2001 From: TimothyLottes Date: Wed, 9 Nov 2016 18:52:54 -0500 Subject: [PATCH] Add files via upload --- 20160912.html | 11 ++++++++++ 20160921.html | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++ index.html | 2 ++ 3 files changed, 73 insertions(+) create mode 100644 20160912.html create mode 100644 20160921.html diff --git a/20160912.html b/20160912.html new file mode 100644 index 0000000..d355742 --- /dev/null +++ b/20160912.html @@ -0,0 +1,11 @@ +
+

20160912 - The Great MacOS 9

+
+ +This "An OS 9 odyssey: Why these Mac users won’t abandon 16-year-old software." is an awesome article. OS 9 was the peak of Apple operating systems. Low latency, instant response. If only the industry didn't fabricate internet "standards" complexity at a rate which is impossible to dream of supporting on the older machines. + + +
+ + + diff --git a/20160921.html b/20160921.html new file mode 100644 index 0000000..32afe62 --- /dev/null +++ b/20160921.html @@ -0,0 +1,60 @@ +
+

20160921 - Parallel Noise Generation

+
+ +Re a related Twitter Post ... +
+
+Concerning making tile-able textures for grain or noise, and getting various desired properties. +My preference is towards algorithms which parallelize trivially. + +The shadertoy referenced in the tweet +generates a noise pattern, +by starting out with some poor non-random noise, +then applying filters (ending with a high-pass) to transform it into something which is pleasing to the eye. +I'd advise always using the technique I outlined in this GPUOpen Post +which remaps the texture to a perfect distribution of values (see the follow up post as well) +while maintaining it's original form (this applies to both techniques in this post). +
+
+A second technique I've leveraged in the past +is to work with one {x,y} coordinate for a grain position +distributed in a regular grid array of grains. +Starting with the perfect honeycomb distribution +(start from a regular grid position, where every other row is shifted to the left or right, and make the grid have proper aspect ratio for honeycomb), +
+
+_x_x_x_x_x_x_x_x
+x_x_x_x_x_x_x_x_
+_x_x_x_x_x_x_x_x
+x_x_x_x_x_x_x_x_
+_x_x_x_x_x_x_x_x
+x_x_x_x_x_x_x_x_
+_x_x_x_x_x_x_x_x
+x_x_x_x_x_x_x_x_ +

+
+Then permuting grain position by some function (which could be a noise function with various distributions based on frequency, +or perhaps do some kind of clustered rotation of points by nearest cluster, etc). +This process typically results in undesired look. +Then applying various passes on the array where the position of each grain is filtered against the positions of the pre-filtered neighbors (only dependent on prior pass). +The point being to re-shape the array into something which has a more visually pleasing feel. +The filter can work with a hex neighborhood (neighbors depend on if the pixel is on a even or odd row), +
+
+_x_x_ ... ab_ ... _ab
+x_x_x ... cde ... cde
+_x_x_ ... ef_ ... _ef +

+
+Could be something as easy as relaxing the position of the point +(push the point in the direction towards being equal distance from neighbors, but not so much that one resets to a honeycomb). +After getting grains distributed as desired, can use for {x,y} coordinates, or transform back into an image of grain (which could be a different resolution image). +
+
+ + +
+ + + diff --git a/index.html b/index.html index 41c7b85..3e09bfc 100644 --- a/index.html +++ b/index.html @@ -56,6 +56,8 @@ Below this is active random migration (456 prior posts still to filter through) 20161004 - T4K Try 3
20161003 - T4K Try 2
20161001 - T4K Try 1
+20160921 - Parallel Noise Generation
+20160912 - The Great MacOS 9
20160715 - LED Displays
20160127 - Temporal AA Neighborhood Clamp