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>2003-12-29 19:52:51 +0300
committerTon Roosendaal <ton@blender.org>2003-12-29 19:52:51 +0300
commit3ce1dc90656241420303ff08865ea79a98248c18 (patch)
tree9ff9074309e97c1f861ac939dc5ee04437fc03b2 /source/blender/makesdna/DNA_lamp_types.h
parent65aeef11e161e99f8972f305d3f1535e81a76271 (diff)
Area lights and more...
- New lamp type added "Area". This uses the radiosity formula (Stoke) to calculate the amount of energy which is received from a plane. Result is very nice local light, which nicely spreads out. - Area lamps have a 'gamma' option to control the light spread - Area lamp builtin sizes: square, rect, cube & box. Only first 2 are implemented. Set a type, and define area size - Button area size won't affect the amount of energy. But scaling the lamp in 3d window will do. This is to cover the case when you scale an entire scene, the light then will remain identical If you just want to change area lamp size, use buttons when you dont want to make the scene too bright or too dark - Since area lights realistically are sensitive for distance (quadratic), the effect it has is quickly too much, or too less. For this the "Dist" value in Lamp can be used. Set it at Dist=10 to have reasonable light on distance 10 Blender units (assumed you didnt scale lamp object). - I tried square sized specularity, but this looked totally weird. Not committed - Plan is to extend area light with 3d dimensions, boxes and cubes. - Note that area light is one-sided, towards negative Z. I need to design a nice drawing method for it. Area Shadow - Since there are a lot of variables associated with soft shadow, they now only are available for Area lights. Allowing spot & normal lamp to have soft shadow is possible though, but will require a reorganisation of the Lamp buttons. Is a point of research & feedback still. - Apart from area size, you now can individually set amount of samples in X and Y direction (for area lamp type 'Rect'). For box type area lamp, this will become 3 dimensions - Area shadows have four options: "Clip circle" : only uses a circular shape of samples, gives smoother results "Dither" : use a 2x2 dither mask "Jitter" : applys a pseudo-random offset to samples "Umbra" : extra emphasis on area that's fully in shadow. Raytrace speedup - improved filling in faces in Octree. Large faces occupied too many nodes - added a coherence check; rays fired sequentially that begin and end in same octree nodes, and that don't intersect, are quickly rejected - rendering shadow scenes benefits from this 20-40%. My statue test monkey file now renders in 19 seconds (was 30). Plus: - adjusted specular max to 511, and made sure Blinn spec has again this incredible small spec size - for UI rounded theme: the color "button" displayed RGB color too dark - fixed countall() function, to also include Subsurf totals - removed setting the 'near' clipping for pressing dot-key numpad - when you press the buttons-window icon for 'Shading Context' the context automaticilly switches as with F5 hotkey Please be warned that this is not a release... settings in files might not work as it did, nor guaranteed to work when we do a release. :)
Diffstat (limited to 'source/blender/makesdna/DNA_lamp_types.h')
-rw-r--r--source/blender/makesdna/DNA_lamp_types.h19
1 files changed, 16 insertions, 3 deletions
diff --git a/source/blender/makesdna/DNA_lamp_types.h b/source/blender/makesdna/DNA_lamp_types.h
index 1a73c5fb9a2..cdc1b440972 100644
--- a/source/blender/makesdna/DNA_lamp_types.h
+++ b/source/blender/makesdna/DNA_lamp_types.h
@@ -56,8 +56,9 @@ typedef struct Lamp {
float clipsta, clipend, shadspotsize;
float bias, soft;
- short ray_samp, pad;
- float ray_soft;
+ short ray_samp, ray_sampy, ray_sampz, ray_samp_type;
+ short area_shape, pad;
+ float area_size, area_sizey, area_sizez;
/* texact is for buttons */
short texact, shadhalostep;
@@ -75,6 +76,7 @@ typedef struct Lamp {
#define LA_SUN 1
#define LA_SPOT 2
#define LA_HEMI 3
+#define LA_AREA 4
/* mode */
#define LA_SHAD 1
@@ -87,12 +89,23 @@ typedef struct Lamp {
#define LA_SQUARE 128
#define LA_TEXTURE 256
#define LA_OSATEX 512
-/* use bit 11 for shadow tests... temp only -nzc- */
#define LA_DEEP_SHADOW 1024
#define LA_NO_DIFF 2048
#define LA_NO_SPEC 4096
#define LA_SHAD_RAY 8192
+/* area shape */
+#define LA_AREA_SQUARE 0
+#define LA_AREA_RECT 1
+#define LA_AREA_CUBE 2
+#define LA_AREA_BOX 3
+
+/* ray_samp_type */
+#define LA_SAMP_ROUND 1
+#define LA_SAMP_UMBRA 2
+#define LA_SAMP_DITHER 4
+#define LA_SAMP_JITTER 8
+
/* mapto */
#define LAMAP_COL 1