Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2006-12-21 16:47:27 +0300
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2006-12-21 16:47:27 +0300
commit47bc3d1208c48903f53728d17d3acbb1ccbd06cb (patch)
treeeca808294b88940590b8dc7e9693acc20ef2048f /source/blender/render/intern/include
parentedccdf934018264002c034906e8a287d12b7ead7 (diff)
Added names to UV and vertex color layers, and display them as a list.
Added support for multiple UVs in the render engine. This also involved changing the way faces are stored, to allow data to be added optionally per 256 faces, same as the existing system for vertices. A UV layer can be specified in the Map Input panel and the Geometry node by name. Leaving this field blank will default to the active UV layer. Also added sharing of face selection and hiding between UV layers, and at the same time improved syncing with editmode selection and hiding. Still to do: - Multi UV support for fastshade. - Multires and NMesh preservation of multiple UV sets.
Diffstat (limited to 'source/blender/render/intern/include')
-rw-r--r--source/blender/render/intern/include/render_types.h12
-rw-r--r--source/blender/render/intern/include/renderdatabase.h27
-rw-r--r--source/blender/render/intern/include/shading.h5
-rw-r--r--source/blender/render/intern/include/texture.h2
4 files changed, 37 insertions, 9 deletions
diff --git a/source/blender/render/intern/include/render_types.h b/source/blender/render/intern/include/render_types.h
index 4a3b0324143..609c391d599 100644
--- a/source/blender/render/intern/include/render_types.h
+++ b/source/blender/render/intern/include/render_types.h
@@ -45,6 +45,7 @@
struct Object;
struct MemArena;
struct VertTableNode;
+struct VlakTableNode;
struct Octree;
struct GHash;
@@ -158,16 +159,18 @@ struct Render
int vertnodeslen;
struct VertTableNode *vertnodes;
+ int vlaknodeslen;
+ struct VlakTableNode *vlaknodes;
int blohalen;
struct HaloRen **bloha;
- int blovllen;
- struct VlakRen **blovl;
ListBase objecttable;
-
+
struct Image *backbuf, *bakebuf;
struct GHash *orco_hash;
+ ListBase customdata_names;
+
/* arena for allocating data for use during render, for
* example dynamic TFaces to go in the VlakRen structure.
*/
@@ -259,12 +262,11 @@ typedef struct VlakRen {
unsigned int lay;
float n[3];
struct Material *mat;
- struct MTFace *tface;
- unsigned int *vcol;
char snproj, puno;
char flag, ec;
RadFace *radface;
Object *ob;
+ int index;
} VlakRen;
typedef struct HaloRen
diff --git a/source/blender/render/intern/include/renderdatabase.h b/source/blender/render/intern/include/renderdatabase.h
index 6f52a13f6e6..75aea05fee2 100644
--- a/source/blender/render/intern/include/renderdatabase.h
+++ b/source/blender/render/intern/include/renderdatabase.h
@@ -36,6 +36,9 @@ struct VertRen;
struct HaloRen;
struct Material;
struct Render;
+struct MCol;
+struct MTFace;
+struct CustomData;
#define RE_QUAD_MASK 0x7FFFFFF
#define RE_QUAD_OFFS 0x8000000
@@ -51,9 +54,25 @@ typedef struct VertTableNode {
float *winspeed;
} VertTableNode;
+typedef struct VlakTableNode {
+ struct VlakRen *vlak;
+ struct MTFace **mtface;
+ struct MCol **mcol;
+ int totmtface, totmcol;
+ struct CustomDataNames **names;
+} VlakTableNode;
+
+typedef struct CustomDataNames{
+ struct CustomDataNames *next, *prev;
+
+ char (*mtface)[32];
+ char (*mcol)[32];
+} CustomDataNames;
+
/* renderdatabase.c */
void free_renderdata_tables(struct Render *re);
void free_renderdata_vertnodes(struct VertTableNode *vertnodes);
+void free_renderdata_vlaknodes(struct VlakTableNode *vlaknodes);
void set_normalflags(Render *re);
void project_renderdata(struct Render *re, void (*projectfunc)(float *, float mat[][4], float *), int do_pano, float xoffs);
@@ -74,7 +93,13 @@ float *RE_vertren_get_strand(struct Render *re, struct VertRen *ver, int verify)
float *RE_vertren_get_tangent(struct Render *re, struct VertRen *ver, int verify);
float *RE_vertren_get_winspeed(struct Render *re, struct VertRen *ver, int verify);
-VertRen *RE_vertren_copy(struct Render *re, struct VertRen *ver);
+struct MTFace *RE_vlakren_get_tface(struct Render *re, VlakRen *ren, int n, char **name, int verify);
+struct MCol *RE_vlakren_get_mcol(struct Render *re, VlakRen *ren, int n, char **name, int verify);
+
+struct VertRen *RE_vertren_copy(struct Render *re, struct VertRen *ver);
+struct VlakRen *RE_vlakren_copy(struct Render *re, struct VlakRen *vlr);
+
+void RE_vlakren_set_customdata_names(struct Render *re, struct CustomData *data);
/* haloren->type: flags */
#define HA_ONLYSKY 1
diff --git a/source/blender/render/intern/include/shading.h b/source/blender/render/intern/include/shading.h
index 6c8f20673ed..902899bce94 100644
--- a/source/blender/render/intern/include/shading.h
+++ b/source/blender/render/intern/include/shading.h
@@ -32,14 +32,15 @@ struct LampRen;
/* shadeinput.c */
+#define RE_MAX_OSA 16
/* needed to calculate shadow and AO for an entire pixel */
typedef struct ShadeSample {
int tot; /* amount of shi in use, can be 1 for not FULL_OSA */
/* could be malloced once */
- ShadeInput shi[16]; /* RE_MAX_OSA */
- ShadeResult shr[16]; /* RE_MAX_OSA */
+ ShadeInput shi[RE_MAX_OSA];
+ ShadeResult shr[RE_MAX_OSA];
int samplenr; /* counter, detect shadow-reuse for shaders */
} ShadeSample;
diff --git a/source/blender/render/intern/include/texture.h b/source/blender/render/intern/include/texture.h
index 6c7d12c4c8c..9175145869c 100644
--- a/source/blender/render/intern/include/texture.h
+++ b/source/blender/render/intern/include/texture.h
@@ -62,7 +62,7 @@ void do_lamp_tex(LampRen *la, float *lavec, struct ShadeInput *shi, float *colf)
void init_render_textures(Render *re);
-void render_realtime_texture(struct ShadeInput *shi);
+void render_realtime_texture(struct ShadeInput *shi, struct Image *ima);
/* imagetexture.h */