gzz-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gzz-commits] gzz/gfx demo/texlab.py libpaper/colors.py libpa...


From: Janne V. Kujala
Subject: [Gzz-commits] gzz/gfx demo/texlab.py libpaper/colors.py libpa...
Date: Mon, 30 Sep 2002 12:23:22 -0400

CVSROOT:        /cvsroot/gzz
Module name:    gzz
Changes by:     Janne V. Kujala <address@hidden>        02/09/30 12:23:21

Modified files:
        gfx/demo       : texlab.py 
        gfx/libpaper   : colors.py papermill.py texcoords.py textures.py 
        gfx/libtexture : fnoise.texture 
Added files:
        gfx/libtexture : geometric.texture 

Log message:
        New textures and better libpaper parameters

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/demo/texlab.py.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/libpaper/colors.py.diff?tr1=1.12&tr2=1.13&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/libpaper/papermill.py.diff?tr1=1.32&tr2=1.33&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/libpaper/texcoords.py.diff?tr1=1.11&tr2=1.12&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/libpaper/textures.py.diff?tr1=1.9&tr2=1.10&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/libtexture/geometric.texture?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/libtexture/fnoise.texture.diff?tr1=1.4&tr2=1.5&r1=text&r2=text

Patches:
Index: gzz/gfx/demo/texlab.py
diff -c gzz/gfx/demo/texlab.py:1.1 gzz/gfx/demo/texlab.py:1.2
*** gzz/gfx/demo/texlab.py:1.1  Mon Sep 30 10:04:25 2002
--- gzz/gfx/demo/texlab.py      Mon Sep 30 12:23:21 2002
***************
*** 7,18 ****
  
  
  #tex.shade(256, 256, 0, 3, "RGB", "RGB", "fnoise",
! #          ["scale", ".5", "freq", "1", "df", "2", "bias", "0.5"])
  
! tex.shade(256, 256, 0, 4, "RGBA", "RGBA", "geometric", ["type", "3"])
  
  
  
  class TexLabScene:
      def __init__(self):
          pass
--- 7,24 ----
  
  
  #tex.shade(256, 256, 0, 3, "RGB", "RGB", "fnoise",
! #          ["scale", ".43", "freq", "1", "df", "2", "bias", "0.5"])
! #tex.shade(256, 256, 0, 3, "RGB", "RGB", "fnoise",
! #          ["scale", "2.5", "freq", "1", "df", "2", "bias", "0.5"])
  
! #tex.shade(256, 256, 0, 4, "RGBA", "RGBA", "geometric", ["type", "3"])
  
  
  
+ #tex.shade(256, 256, 0, 3, "RGB", "RGB", "fnoise",
+ #          ["turb", "1", "scale", ".3", "freq", "1", "freq2", "100", "df", 
"2", "bias", "0"])
+ 
+ 
  class TexLabScene:
      def __init__(self):
          pass
***************
*** 23,29 ****
        putnoc(vs, background((0.5,0.5,0.5)))
  
  
!       cs = vs.coords.affineCoordsys(0, 1, 100, 100, 200, 0, 0, 200)
          vs.matcher.add(cs, "foo")
  
        vs.map.put(getDList("""
--- 29,35 ----
        putnoc(vs, background((0.5,0.5,0.5)))
  
  
!       cs = vs.coords.affineCoordsys(0, 1, 100, 100, 400, 0, 0, 400)
          vs.matcher.add(cs, "foo")
  
        vs.map.put(getDList("""
Index: gzz/gfx/libpaper/colors.py
diff -c gzz/gfx/libpaper/colors.py:1.12 gzz/gfx/libpaper/colors.py:1.13
*** gzz/gfx/libpaper/colors.py:1.12     Mon Sep 30 06:18:54 2002
--- gzz/gfx/libpaper/colors.py  Mon Sep 30 12:23:21 2002
***************
*** 5,10 ****
--- 5,11 ----
  from math import sin,cos,atan2,pi,log
  from random import Random,shuffle
  
+ import java
  
  
  dbg=0
***************
*** 13,26 ****
      def _js(self, arg):
        return " ".join([str(a) for a in arg])
      def __init__(self, seed):
!       rnd = self.rnd = Random(seed)
!         rnd.nextDouble = rnd.random
  
          colors = 8
        minlum = 80
          #huerange = (45 + rnd.nextGaussian() * 45)
          #rnd.lognormvariate(log(0.001), .3)
!         huerange = rnd.normalvariate(0,1) * 90
  
          # gnuplot code for plotting huerange distribution:
          # sigma=.4; mu=log(60); plot [0:360] 1 / (x * sqrt(2 * pi * 
sigma**2)) * exp(-(log(x)-mu)**2 / (2 * sigma**2))
--- 14,27 ----
      def _js(self, arg):
        return " ".join([str(a) for a in arg])
      def __init__(self, seed):
!       rnd = self.rnd = java.util.Random(seed)
  
          colors = 8
        minlum = 80
          #huerange = (45 + rnd.nextGaussian() * 45)
          #rnd.lognormvariate(log(0.001), .3)
!         huerange = rnd.nextGaussian() * 90
!         #huerange = rnd.normalvariate(0,1) * 90
  
          # gnuplot code for plotting huerange distribution:
          # sigma=.4; mu=log(60); plot [0:360] 1 / (x * sqrt(2 * pi * 
sigma**2)) * exp(-(log(x)-mu)**2 / (2 * sigma**2))
Index: gzz/gfx/libpaper/papermill.py
diff -c gzz/gfx/libpaper/papermill.py:1.32 gzz/gfx/libpaper/papermill.py:1.33
*** gzz/gfx/libpaper/papermill.py:1.32  Mon Sep 30 06:18:54 2002
--- gzz/gfx/libpaper/papermill.py       Mon Sep 30 12:23:21 2002
***************
*** 127,132 ****
--- 127,134 ----
          seeds = [rng.nextInt(2000000000) for foo in passes]
  
          colors = Colors(rng.nextInt())
+         textures = Textures(rng.nextInt())
+         rootrep = TexGenXYRepeatUnit(rng)
  
          pap.setNPasses(len(passes))
          #setSolidPass(pap.getPass(0), (0.1,0.1,0.2))
***************
*** 136,142 ****
                  passreg = reg.sub("pass"+str(i))
                  passreg.get(regseed, "seed", seeds[i])
                  self.makePaperPass(passreg,
!                                    pap.getPass(i), colors,
                                     passes[i]["trans"],
                                     emboss = passes[i]["emboss"])
              else:
--- 138,144 ----
                  passreg = reg.sub("pass"+str(i))
                  passreg.get(regseed, "seed", seeds[i])
                  self.makePaperPass(passreg,
!                                    pap.getPass(i), colors, textures, rootrep,
                                     passes[i]["trans"],
                                     emboss = passes[i]["emboss"])
              else:
***************
*** 148,154 ****
          if dbg: reg.dump()
          return pap
          
!     def makePaperPass(self, reg, ppass, colors, trans = 0, type = None, 
emboss = 0):
          seed = reg.get(regseed, "seed")
          rnd = java.util.Random(seed)
          #sh = ShaderPass(selectRandom(shaderTypes,rnd))
--- 150,156 ----
          if dbg: reg.dump()
          return pap
          
!     def makePaperPass(self, reg, ppass, colors, textures, rootrep, trans = 0, 
type = None, emboss = 0):
          seed = reg.get(regseed, "seed")
          rnd = java.util.Random(seed)
          #sh = ShaderPass(selectRandom(shaderTypes,rnd))
***************
*** 160,166 ****
          types = sh.getTextureTypes()
          for i in range(0, len(types)):
              if types[i] != None:
!                 t = getPaperTexture(types[i], rnd)
  
                  if emboss:
                      if (i%2) == 0:
--- 162,168 ----
          types = sh.getTextureTypes()
          for i in range(0, len(types)):
              if types[i] != None:
!                 t = textures.getPaperTexture(types[i], rnd)
  
                  if emboss:
                      if (i%2) == 0:
***************
*** 216,223 ****
          
          ttyp = sh.getTexgenTypes()
          ppass.setNTexGens(len(ttyp))
- 
-         rootrep = TexGenXYRepeatUnit(rnd)
  
          for i in range(0, len(ttyp)):
              if ttyp[i] != None:
--- 218,223 ----
Index: gzz/gfx/libpaper/texcoords.py
diff -c gzz/gfx/libpaper/texcoords.py:1.11 gzz/gfx/libpaper/texcoords.py:1.12
*** gzz/gfx/libpaper/texcoords.py:1.11  Mon Sep 30 10:04:26 2002
--- gzz/gfx/libpaper/texcoords.py       Mon Sep 30 12:23:21 2002
***************
*** 59,65 ****
      """
      def __init__(self, rnd=None, 
            vecs = None,
!           angle_stddev = .1,
            avg_length_mean = .5,
            avg_length_stddev = .10,
            lendiff_mean = 0,
--- 59,65 ----
      """
      def __init__(self, rnd=None, 
            vecs = None,
!           angle_stddev = .065,
            avg_length_mean = .5,
            avg_length_stddev = .10,
            lendiff_mean = 0,
Index: gzz/gfx/libpaper/textures.py
diff -c gzz/gfx/libpaper/textures.py:1.9 gzz/gfx/libpaper/textures.py:1.10
*** gzz/gfx/libpaper/textures.py:1.9    Mon Sep 30 10:04:26 2002
--- gzz/gfx/libpaper/textures.py        Mon Sep 30 12:23:21 2002
***************
*** 9,14 ****
--- 9,17 ----
  #     OFFS2
  #     OFFS3
  
+ import java
+ from math import exp
+ 
  isNV2X = 0
  
  ptextures = {}
***************
*** 25,45 ****
      def getName(self):
          return self.name
  
- def mt(i):
-     name, args = i
-     return NamedTexture(name, args)
- 
  tres = 128
  
  ptextures["RGB2"] = [
! mt(i) for i in [
! #    ("rgbn", [512, 512, 0, 3, "RGB", "RGB",
! #       "noise", ["type", "turbulence", "freq", "40", "scale", "-3", "bias", 
"2"]]),
! #    ("rgbw", [tres, tres, 0, 3, "RGB", "RGB",
! #       "fnoise", ["scale", "2","bias",".5"]]),
! 
      ("rgbw2", [tres, tres, 0, 3, "RGB", "RGB",
!         "fnoise", ["scale", ".5", "freq", "1", "df", "2", "bias", "0.5"]]),
  
      ("pyramid", [64, 64, 0, 3, "RGB", "RGB", "geometric", ["type", "0"]]),
      ("checkerboard", [64, 64, 0, 3, "RGB", "RGB", "geometric", ["type", 
"1"]]),
--- 28,44 ----
      def getName(self):
          return self.name
  
  tres = 128
  
  ptextures["RGB2"] = [
! apply(NamedTexture, i) for i in [
!     ("rgbw1", [tres, tres, 0, 3, "RGB", "RGB",
!         "fnoise", ["scale", "2.5", "freq", "1", "df", "2", "bias", "0.5"]]),
      ("rgbw2", [tres, tres, 0, 3, "RGB", "RGB",
!         "fnoise", ["scale", ".43", "freq", "1", "df", "2", "bias", "0.5", 
"seed", "1412"]]),
! 
!     ("turb", [tres, tres, 0, 3, "RGB", "RGB",
!               "fnoise", ["turb", "1", "scale", ".3", "freq", "1", "freq2", 
"100", "df", "2", "bias", "0"]]),
  
      ("pyramid", [64, 64, 0, 3, "RGB", "RGB", "geometric", ["type", "0"]]),
      ("checkerboard", [64, 64, 0, 3, "RGB", "RGB", "geometric", ["type", 
"1"]]),
***************
*** 49,54 ****
--- 48,94 ----
  
  def getPaperTexture(type, gen):
      return selectRandom(ptextures[type], gen)
+ 
+ 
+ class Textures:
+     def __init__(self, seed):
+       rnd = self.rnd = java.util.Random(seed)
+ 
+         hyper = rnd.nextGaussian()*5
+ 
+         self.probs = {}
+         
+         for type in ptextures.keys():
+             self.probs[type] = []
+             sum = 0
+ 
+             for tex in ptextures[type]:
+                 prob = exp(rnd.nextGaussian() * hyper)
+             
+                 self.probs[type].append(prob)
+                 sum += prob
+ 
+             self.probs[type] = [ prob / sum for prob in self.probs[type] ]
+ 
+             #print self.probs[type]
+ 
+         
+     def getPaperTexture(self, type, gen):
+         index = 0
+ 
+         t = self.rnd.nextDouble()
+         
+         for p in self.probs[type]:
+             t -= p
+             if t < 0:
+                 #print ptextures[type][index].getName()
+                 return ptextures[type][index]
+             index += 1
+ 
+         print "Warning: null probability event occured"
+         return ptextures[type][-1]
+         
+         
  
  if 0:
              rgbTextures = [
Index: gzz/gfx/libtexture/fnoise.texture
diff -c gzz/gfx/libtexture/fnoise.texture:1.4 
gzz/gfx/libtexture/fnoise.texture:1.5
*** gzz/gfx/libtexture/fnoise.texture:1.4       Mon Sep 30 08:53:33 2002
--- gzz/gfx/libtexture/fnoise.texture   Mon Sep 30 12:23:21 2002
***************
*** 56,61 ****
--- 56,65 ----
          }
        }
        int ind = 0;
+ 
+       for(int co = 0; co < components; co++)
+         sumsq[co] = sqrt(sumsq[co]);
+       
        for (int j = 0; j < height; j++) {
          for (int i = 0; i < width; i++) {
            for(int co = 0; co < components; co++) {
***************
*** 76,92 ****
      FPARAM(freq, 5);
      FPARAM(df, 2);
      FPARAM(seed, 0);
      if (seed) srandom((long)seed);
  
      int d = (depth==0 ? 1 : depth);
  
-     for(int i = 0; i<width*height*d*components; i++)
-       data[i] = 0;
  
!     fourier_noise(width,height,d,components,data, freq, df);
!     for(int i = 0; i<width*height*d*components; i++) {
!       data[i] *= scale;
!       data[i] += bias;
      }
  }
  
--- 80,122 ----
      FPARAM(freq, 5);
      FPARAM(df, 2);
      FPARAM(seed, 0);
+     FPARAM(turb, 0);
+     FPARAM(freq2, 20);
+     
      if (seed) srandom((long)seed);
  
      int d = (depth==0 ? 1 : depth);
+     int n = width*height*d*components;
+ 
+     for(int i = 0; i<n; i++)
+       data[i] = 0;
  
  
!     if (turb) {
!       float *tmp = new float[n];
!       
!       for (float f = freq; f <= freq2; f += f) {
!       for(int i = 0; i<n; i++)
!         tmp[i] = 0;
!       fourier_noise(width,height,d,components,tmp, f, df);
! 
!       float m = 1.0 / (log(f)/log(2) + 1);
!       
!       for(int i = 0; i<n; i++)
!         data[i] += m * fabs(tmp[i]);
!       }
!       
!       for(int i = 0; i<n; i++)
!       tmp[i] = 0;
! 
!     } else {
! 
!       fourier_noise(width,height,d,components,data, freq, df);
!     }
!     
!     for(int i = 0; i<n; i++) {
!       data[i] *= scale;
!       data[i] += bias;
      }
  }
  




reply via email to

[Prev in Thread] Current Thread [Next in Thread]