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:
authorTon Roosendaal <ton@blender.org>2006-01-24 01:05:47 +0300
committerTon Roosendaal <ton@blender.org>2006-01-24 01:05:47 +0300
commit042d612df219c8f6a29afa235537380f227b5684 (patch)
tree310a2c859b99c559115bbcda0aa70f2543bf962c /source/blender/makesdna
parent5668480c99001a617fd59a2383deb858195ffb26 (diff)
Giant commit!
A full detailed description of this will be done later... is several days of work. Here's a summary: Render: - Full cleanup of render code, removing *all* globals and bad level calls all over blender. Render module is now not called abusive anymore - API-fied calls to rendering - Full recode of internal render pipeline. Is now rendering tiles by default, prepared for much smarter 'bucket' render later. - Each thread now can render a full part - Renders were tested with 4 threads, goes fine, apart from some lookup tables in softshadow and AO still - Rendering is prepared to do multiple layers and passes - No single 32 bits trick in render code anymore, all 100% floats now. Writing images/movies - moved writing images to blender kernel (bye bye 'schrijfplaatje'!) - made a new Movie handle system, also in kernel. This will enable much easier use of movies in Blender PreviewRender: - Using new render API, previewrender (in buttons) now uses regular render code to generate images. - new datafile 'preview.blend.c' has the preview scenes in it - previews get rendered in exact displayed size (1 pixel = 1 pixel) 3D Preview render - new; press Pkey in 3d window, for a panel that continuously renders (pkey is for games, i know... but we dont do that in orange now!) - this render works nearly identical to buttons-preview render, so it stops rendering on any event (mouse, keyboard, etc) - on moving/scaling the panel, the render code doesn't recreate all geometry - same for shifting/panning view - all other operations (now) regenerate the full render database still. - this is WIP... but big fun, especially for simple scenes! Compositor - Using same node system as now in use for shaders, you can composit images - works pretty straightforward... needs much more options/tools and integration with rendering still - is not threaded yet, nor is so smart to only recalculate changes... will be done soon! - the "Render Result" node will get all layers/passes as output sockets - The "Output" node renders to a builtin image, which you can view in the Image window. (yes, output nodes to render-result, and to files, is on the list!) The Bad News - "Unified Render" is removed. It might come back in some stage, but this system should be built from scratch. I can't really understand this code... I expect it is not much needed, especially with advanced layer/passes control - Panorama render, Field render, Motion blur, is not coded yet... (I had to recode every single feature in render, so...!) - Lens Flare is also not back... needs total revision, might become composit effect though (using zbuffer for visibility) - Part render is gone! (well, thats obvious, its default now). - The render window is only restored with limited functionality... I am going to check first the option to render to a Image window, so Blender can become a true single-window application. :) For example, the 'Spare render buffer' (jkey) doesnt work. - Render with border, now default creates a smaller image - No zbuffers are written yet... on the todo! - Scons files and MSVC will need work to get compiling again OK... thats what I can quickly recall. Now go compiling!
Diffstat (limited to 'source/blender/makesdna')
-rw-r--r--source/blender/makesdna/DNA_image_types.h2
-rw-r--r--source/blender/makesdna/DNA_material_types.h27
-rw-r--r--source/blender/makesdna/DNA_node_types.h8
-rw-r--r--source/blender/makesdna/DNA_object_types.h2
-rw-r--r--source/blender/makesdna/DNA_scene_types.h15
-rw-r--r--source/blender/makesdna/DNA_view3d_types.h2
6 files changed, 25 insertions, 31 deletions
diff --git a/source/blender/makesdna/DNA_image_types.h b/source/blender/makesdna/DNA_image_types.h
index 7b26a3c2b57..a6dca412d9c 100644
--- a/source/blender/makesdna/DNA_image_types.h
+++ b/source/blender/makesdna/DNA_image_types.h
@@ -50,7 +50,7 @@ typedef struct Image {
struct ImBuf *mipmap[10];
short ok, flag;
- short lastframe, lastquality;
+ short lastframe, pad;
/* texture page */
short tpageflag, totbind;
diff --git a/source/blender/makesdna/DNA_material_types.h b/source/blender/makesdna/DNA_material_types.h
index 6d8527d5896..15cee1a288e 100644
--- a/source/blender/makesdna/DNA_material_types.h
+++ b/source/blender/makesdna/DNA_material_types.h
@@ -49,16 +49,6 @@ struct ColorBand;
struct Group;
struct bNodeTree;
-typedef struct MaterialLayer {
- struct MaterialLayer *next, *prev;
-
- struct Material *mat;
- float blendfac;
- short flag, blendmethod, menunr, pad;
- int pad2;
-
-} MaterialLayer;
-
/* WATCH IT: change type? also make changes in ipo.h */
typedef struct Material {
@@ -109,7 +99,6 @@ typedef struct Material {
float rampfac_col, rampfac_spec;
struct MTex *mtex[10];
- ListBase layers;
struct bNodeTree *nodetree;
struct Ipo *ipo;
struct Group *group; /* light group */
@@ -247,20 +236,14 @@ typedef struct Material {
#define MAP_LAYER 16384
/* pr_type */
-#define MA_FLAT 0
-#define MA_SPHERE 1
-#define MA_CUBE 2
+#define MA_SPHERE 0
+#define MA_CUBE 1
+#define MA_FLAT 2
+#define MA_MONKEY 3
+#define MA_SPHERE_A 4
/* pr_back */
#define MA_DARK 1
-/* MaterialLayer flag */
-#define ML_ACTIVE 1
-#define ML_RENDER 2
-#define ML_NEG_NORMAL 4
-#define ML_DIFFUSE 8
-#define ML_SPECULAR 16
-#define ML_ALPHA 32
-
#endif
diff --git a/source/blender/makesdna/DNA_node_types.h b/source/blender/makesdna/DNA_node_types.h
index 85db0887f51..783a7bb05a5 100644
--- a/source/blender/makesdna/DNA_node_types.h
+++ b/source/blender/makesdna/DNA_node_types.h
@@ -47,9 +47,10 @@ typedef struct bNodeStack {
float vec[4];
float min, max; /* min/max for values (UI writes it, execute might use it) */
void *data;
- short hasinput; /* hasinput is tagged before executing */
+ short hasinput; /* when input has link, tagged before executing */
+ short hasoutput; /* when output is linked, tagged before executing */
short datatype; /* type of data pointer */
- int pad1;
+ short pad1;
} bNodeStack;
/* ns->datatype, shadetree only */
@@ -157,7 +158,8 @@ typedef struct bNodeTree {
bNodeStack *stack1; /* for other thread, easy to expand though... */
int type, init; /* set init on fileread */
- int cur_index, pad; /* sockets in groups have unique identifiers, adding new sockets always will increase this counter */
+ int stacksize; /* amount of elements in stack */
+ int cur_index; /* sockets in groups have unique identifiers, adding new sockets always will increase this counter */
struct bNodeType **alltypes; /* type definitions, set on fileread, no read/write */
struct bNodeType *owntype; /* for groups or dynamic trees, no read/write */
diff --git a/source/blender/makesdna/DNA_object_types.h b/source/blender/makesdna/DNA_object_types.h
index 0f1cdb8368f..c34b14f30af 100644
--- a/source/blender/makesdna/DNA_object_types.h
+++ b/source/blender/makesdna/DNA_object_types.h
@@ -335,7 +335,7 @@ extern Object workob;
#define BA_DO_IPO 32
#define BA_FROMSET 128
-#define OB_DO_IMAT 256
+
#define OB_FROMDUPLI 512
#define OB_DONE 1024
#define OB_RADIO 2048
diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h
index 12de019dd16..3f84b812cfb 100644
--- a/source/blender/makesdna/DNA_scene_types.h
+++ b/source/blender/makesdna/DNA_scene_types.h
@@ -48,6 +48,7 @@ struct World;
struct Scene;
struct Image;
struct Group;
+struct bNodeTree;
typedef struct Base {
struct Base *next, *prev;
@@ -294,9 +295,12 @@ typedef struct Scene {
unsigned int lay;
/* editmode stuff */
- short selectmode, pad;
- short proportional, prop_mode;
float editbutsize; /* size of normals */
+ short selectmode;
+ short proportional, prop_mode;
+
+ short use_nodes;
+ struct bNodeTree *nodetree;
void *ed;
struct Radio *radio;
@@ -318,7 +322,7 @@ typedef struct Scene {
/* none of the dependancy graph vars is mean to be saved */
struct DagForest *theDag;
short dagisvalid, dagflags;
- int dirty;
+ short dirty, recalc; /* recalc = counterpart of ob->recalc */
} Scene;
@@ -374,7 +378,7 @@ typedef struct Scene {
#define R_PASSEPARTOUT 0x0004
#define R_EXTENSION 0x0010
-#define R_OGL 0x0020
+#define R_NODE_PREVIEW 0x0020
/* alphamode */
#define R_ADDSKY 0
@@ -428,6 +432,9 @@ typedef struct Scene {
#define SCE_CLEAN 0
#define SCE_DIRTY 1
+/* sce->recalc (now in use by previewrender) */
+#define SCE_PRV_CHANGED 1
+
/* sce->prop_mode (proportional falloff) */
#define PROP_SMOOTH 0
#define PROP_SPHERE 1
diff --git a/source/blender/makesdna/DNA_view3d_types.h b/source/blender/makesdna/DNA_view3d_types.h
index 9a5fd12dd0f..03c6aad6cf6 100644
--- a/source/blender/makesdna/DNA_view3d_types.h
+++ b/source/blender/makesdna/DNA_view3d_types.h
@@ -40,6 +40,7 @@ struct Tex;
struct SpaceLink;
struct Base;
struct BoundBox;
+struct RenderInfo;
/* This is needed to not let VC choke on near and far... old
* proprietary MS extensions... */
@@ -92,6 +93,7 @@ typedef struct View3D {
struct Object *camera;
struct BGpic *bgpic;
struct View3D *localvd;
+ struct RenderInfo *ri;
/**
* The drawing mode for the 3d display. Set to OB_WIRE, OB_SOLID,