########################################################## #GUI Created using RipSting's Blender-Python GUI designer# #Download at Http://oregonstate.edu/~dennisa/Blender/BPG/# ########################################################## import Blender from Blender.BGL import * from Blender.Draw import * from Blender.Noise import * tglPerlin = Create(1) tglF2F1 = Create(0) tglCrackle = Create(0) sldB2 = Create(1.0) sldG2 = Create(1.0) sldR2 = Create(1.0) sldR1 = Create(0.0) sldG1 = Create(0.0) sldB1 = Create(0.0) sldContrast = Create(1.0) sldBias = Create(0.5) sldZoom = Create(20) def draw(): global Noise1, tglPerlin, tglF2F1, tglCrackle, sldB2, sldG2, sldR2, sldB1, sldG1, sldContrast, sldBias, sldZoom, sldR1 glClearColor(0.753, 0.753, 0.753, 0.0) glClear(GL_COLOR_BUFFER_BIT) glColor3f(sldR2.val, sldG2.val, sldB2.val) glRecti(352, 112, 375, 183) glColor3f(sldR1.val, sldG1.val, sldB1.val) glRecti(168, 112, 191, 183) Color1 = [sldR1.val, sldG1.val, sldB1.val] Color2 = [sldR2.val, sldG2.val, sldB2.val] bias = sldBias.val contrast = sldContrast.val zoom = sldZoom.val * 1.0 if tglPerlin.val == 1: noisetype = NoiseTypes.STDPERLIN elif tglF2F1.val == 1: noisetype = NoiseTypes.VORONOI_F2F1 else: noisetype = NoiseTypes.VORONOI_CRACKLE for x in range(136, 255): for y in range(248, 367): pointCol = (noise([x/zoom,y/zoom,0],noisetype) + 1.0)/2 + .5 - bias pointCol = (pointCol - 0.5) * contrast + 0.5 if pointCol > 1 : r = Color1[0] g = Color1[1] b = Color1[2] elif pointCol < 0: r = Color2[0] g = Color2[1] b = Color2[2] else: r = (Color1[0] * pointCol) + (Color2[0] * (1-pointCol)) g = (Color1[1] * pointCol) + (Color2[1] * (1-pointCol)) b = (Color1[2] * pointCol) + (Color2[2] * (1-pointCol)) glColor3f(r,g,b) glRecti(x, y, x + 1, y + 1) glColor3f(0,0,0) glRasterPos2i(200, 196) Text('Color 2') glRasterPos2i(16, 196) Text('Color 1') tglPerlin = Toggle('Perlin', 1, 16, 216, 119, 31, tglPerlin.val, '') tglF2F1 = Toggle('Voronoi F2-F1', 2, 136, 216, 119, 31, tglF2F1.val, '') tglCrackle = Toggle('Crackle', 3, 256, 216, 119, 31, tglCrackle.val, '') sldB2 = Slider('Blue', 4, 200, 112, 151, 23, sldB2.val, 0, 1, 0, '') sldG2 = Slider('Green', 5, 200, 136, 151, 23, sldG2.val, 0, 1, 0, '') sldR2 = Slider('Red', 6, 200, 160, 151, 23, sldR2.val, 0, 1, 0, '') sldB1 = Slider('Blue', 7, 16, 112, 151, 23, sldB1.val, 0, 1, 0, '') sldG1 = Slider('Green', 8, 16, 136, 151, 23, sldG1.val, 0, 1, 0, '') sldContrast = Slider('Contrast', 9, 16, 40, 359, 23, sldContrast.val, 0.01, 10, 0, '') sldBias = Slider('Bias', 10, 16, 64, 359, 23, sldBias.val, 0, 1, 0, '') sldZoom = Slider('Zoom', 11, 16, 16, 359, 23, sldZoom.val, 1, 50, 0, '') sldR1 = Slider('Red', 12, 16, 160, 151, 23, sldR1.val, 0, 1, 0, '') def event(evt, val): if (evt== QKEY and not val): Exit() def bevent(evt): if evt == 1: #tglPerlin tglF2F1.val = 0 tglCrackle.val = 0 elif evt == 2: #tglF2F1 tglPerlin.val = 0 tglCrackle.val = 0 elif evt == 3: #tglCrackle tglPerlin.val = 0 tglF2F1.val = 0 Blender.Redraw() Register(draw, event, bevent)