From 7b2172cb0b4afaada3f59f90f694847cfc61c43d Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Fri, 17 May 2013 11:13:46 +0000 Subject: 3D Viewport rendering (Blender Internal) Added incremental re-render on view changes. That means all data preprocessing only needs to be done once on view changes, quite faster that way. Also fixed a bug in raytracing strands with soft shadows, was wrongly changing coordinates in a static array. Note: proper signals for re-renders is still on the todo. Many button options don't signal a re-render yet. Work around: press G+ESC for quick full renders. --- source/blender/render/intern/include/envmap.h | 2 +- source/blender/render/intern/include/rayintersection.h | 4 ++++ source/blender/render/intern/include/renderdatabase.h | 3 +++ 3 files changed, 8 insertions(+), 1 deletion(-) (limited to 'source/blender/render/intern/include') diff --git a/source/blender/render/intern/include/envmap.h b/source/blender/render/intern/include/envmap.h index 79233a5d625..c813e88c656 100644 --- a/source/blender/render/intern/include/envmap.h +++ b/source/blender/render/intern/include/envmap.h @@ -48,7 +48,7 @@ struct ImagePool; void make_envmaps(struct Render *re); int envmaptex(struct Tex *tex, const float texvec[3], float dxt[3], float dyt[3], int osatex, struct TexResult *texres, struct ImagePool *pool); -void env_rotate_scene(struct Render *re, float mat[4][4], int mode); +void env_rotate_scene(struct Render *re, float mat[4][4], int do_rotate); #endif /* __ENVMAP_H__ */ diff --git a/source/blender/render/intern/include/rayintersection.h b/source/blender/render/intern/include/rayintersection.h index 4dceae56a4c..3607e66a237 100644 --- a/source/blender/render/intern/include/rayintersection.h +++ b/source/blender/render/intern/include/rayintersection.h @@ -64,6 +64,10 @@ typedef struct Isect { float dir[3]; float dist; + /* for envmap and incremental view update renders */ + float origstart[3]; + float origdir[3]; + /* precomputed values to accelerate bounding box intersection */ int bv_index[6]; float idot_axis[3]; diff --git a/source/blender/render/intern/include/renderdatabase.h b/source/blender/render/intern/include/renderdatabase.h index 1e81ca20d03..9e48299ed9a 100644 --- a/source/blender/render/intern/include/renderdatabase.h +++ b/source/blender/render/intern/include/renderdatabase.h @@ -140,6 +140,9 @@ struct VlakRen *RE_vlakren_copy(struct ObjectRen *obr, struct VlakRen *vlr); void RE_set_customdata_names(struct ObjectRen *obr, struct CustomData *data); +void area_lamp_vectors(struct LampRen *lar); + + /* haloren->type: flags */ #define HA_ONLYSKY 1 #define HA_VECT 2 -- cgit v1.2.3