class pyPerlinNoise2DShader(StrokeShader): """ Displaces the stroke using the strokes coordinates. This means that in a scene no strokes will be distorded identically. More information on the noise shaders can be found at: freestyleintegration.wordpress.com/2011/09/25/development-updates-on-september-25/ """ def __init__(self, freq=10, amp=10, oct=4, seed=-1): StrokeShader.__init__(self) self.__noise = Noise(seed) self.__freq = freq self.__amp = amp self.__oct = oct def shade(self, stroke): for svert in stroke: nres = self.__noise.turbulence2(svert.point_2d, self.__freq, self.__amp, self.__oct) svert.point = (svert.projected_x + nres, svert.projected_y + nres) stroke.update_length()
class pyPerlinNoise2DShader(StrokeShader): """ Displaces the stroke using the strokes coordinates. This means that in a scene no strokes will be distorded identically. More information on the noise shaders can be found at: freestyleintegration.wordpress.com/2011/09/25/development-updates-on-september-25/ """ def __init__(self, freq=10, amp=10, oct=4, seed=-1): StrokeShader.__init__(self) self.__noise = Noise(seed) self.__freq = freq self.__amp = amp self.__oct = oct def shade(self, stroke): for svert in stroke: nres = self.__noise.turbulence2(svert.point_2d, self.__freq, self.__amp, self.__oct) svert.point = (svert.projected_x + nres, svert.projected_y + nres) stroke.update_length()
class PerlinNoise2DShader(StrokeShader): """ Displaces the stroke using the strokes coordinates. This means that in a scene no strokes will be distorded identically. More information on the noise shaders can be found at: freestyleintegration.wordpress.com/2011/09/25/development-updates-on-september-25/ """ def __init__(self, freq=10, amp=10, oct=4, angle=radians(45), seed=-1): StrokeShader.__init__(self) self.noise = Noise(seed) self.freq = freq self.amp = amp self.oct = oct self.dir = Vector((cos(angle), sin(angle))) def shade(self, stroke): for svert in stroke: projected = Vector((svert.projected_x, svert.projected_y)) nres = self.noise.turbulence2(projected, self.freq, self.amp, self.oct) svert.point += nres * self.dir stroke.update_length()
class PerlinNoise2DShader(StrokeShader): """ Displaces the stroke using the strokes coordinates. This means that in a scene no strokes will be distorded identically. More information on the noise shaders can be found at: freestyleintegration.wordpress.com/2011/09/25/development-updates-on-september-25/ """ def __init__(self, freq=10, amp=10, oct=4, angle=radians(45), seed=-1): StrokeShader.__init__(self) self.noise = Noise(seed) self.freq = freq self.amp = amp self.oct = oct self.dir = Vector((cos(angle), sin(angle))) def shade(self, stroke): for svert in stroke: projected = Vector((svert.projected_x, svert.projected_y)) nres = self.noise.turbulence2(projected, self.freq, self.amp, self.oct) svert.point += nres * self.dir stroke.update_length()