diff options
author | Ton Roosendaal <ton@blender.org> | 2004-04-03 17:59:27 +0400 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2004-04-03 17:59:27 +0400 |
commit | 0ae03d16260d199c46fb5b3812ba43f91259dc63 (patch) | |
tree | 0e6ebcf11709c76e21d32d67bf62a1320c2a3a1f /source/blender/blenkernel/intern/texture.c | |
parent | 164463e2008a50f98f50baef2f60a0b5b4cff0b1 (diff) |
Eesho's patch for new noise textures!
Basically this provides three new things:
1. Choice of a list of noise-base functions, which can be used by the
current Clouds, Marble, Wood textures as well.
2. Three new texture types: Musgrave, Voronoi and DistortedNoise
3. Python access to noise functions (not for render!)
All of this together makes Blender's builtin procedural textures a LOT
more powerful. Here again, a full webpage should be made to show off all
possibilities, and explain some of the more scientific names for settings.
A good read on Musgrave textures can be found here:
http://www.ypoart.com/Downloads/Musgrave.htm
About Voronoi:
http://www.ypoart.com/Downloads/Worley.htm
I can't find official DistortedNoise docs easily... maybe its something
Eeshlo created himself.
I've spent some time to change the patch Eeshlo provided. Worth noting:
- created main texture "Musgrave" with 5 sub choices (instead of 5 new
main textures)
- added for all new textures the option to scale (zoom in out)
- added patch in do_versions to initialize variables
I hope the Python team will check on the Noise.c API. And include in docs!
Diffstat (limited to 'source/blender/blenkernel/intern/texture.c')
-rw-r--r-- | source/blender/blenkernel/intern/texture.c | 58 |
1 files changed, 38 insertions, 20 deletions
diff --git a/source/blender/blenkernel/intern/texture.c b/source/blender/blenkernel/intern/texture.c index 3bd2b26fb89..0d472f278de 100644 --- a/source/blender/blenkernel/intern/texture.c +++ b/source/blender/blenkernel/intern/texture.c @@ -324,9 +324,9 @@ void free_texture(Tex *tex) void default_tex(Tex *tex) { - PluginTex *pit; - VarStruct *varstr; - int a; + PluginTex *pit; + VarStruct *varstr; + int a; tex->stype= 0; tex->imaflag= TEX_INTERPOL+TEX_MIPMAP; @@ -346,24 +346,42 @@ void default_tex(Tex *tex) tex->rfac= 1.0; tex->gfac= 1.0; tex->bfac= 1.0; + /* newnoise: init. */ + tex->noisebasis = 0; + tex->noisebasis2 = 0; + /* musgrave */ + tex->mg_H = 1.0; + tex->mg_lacunarity = 2.0; + tex->mg_octaves = 2.0; + tex->mg_offset = 1.0; + tex->mg_gain = 1.0; + tex->ns_outscale = 1.0; + /* distnoise */ + tex->dist_amount = 1.0; + /* voronoi */ + tex->vn_w1 = 1.0; + tex->vn_w2 = tex->vn_w3 = tex->vn_w4 = 0.0; + tex->vn_mexp = 2.5; + tex->vn_distm = 0; + tex->vn_coltype = 0; + + if (tex->env) { + tex->env->stype=ENV_STATIC; + tex->env->clipsta=0.1; + tex->env->clipend=100; + tex->env->cuberes=100; + tex->env->depth=0; + } - if (tex->env) { - tex->env->stype=ENV_STATIC; - tex->env->clipsta=0.1; - tex->env->clipend=100; - tex->env->cuberes=100; - tex->env->depth=0; - } - - pit = tex->plugin; - if (pit) { - varstr= pit->varstr; - if(varstr) { - for(a=0; a<pit->vars; a++, varstr++) { - pit->data[a] = varstr->def; - } - } - } + pit = tex->plugin; + if (pit) { + varstr= pit->varstr; + if(varstr) { + for(a=0; a<pit->vars; a++, varstr++) { + pit->data[a] = varstr->def; + } + } + } } /* ------------------------------------------------------------------------- */ |