Commit Graph

929 Commits

Author SHA1 Message Date
Ton Roosendaal
f975d29704 Restored code from over a year ago, tests to allow anti-aliased
shadowbuffers. At the time the results were not satisfying enough,
but we now suffer a shadow problem that might well be solved with
this feature.

Problem:
Temporal aliasing of shadowbuffers when small details move (like strands).

In this case it doesn't work to simply increase the shadowbuffer size,
because strands are pixel-sized. Huge shadowbuffers make strand shadows
almost disappear. So... the shadowbuffer resolution has to be not too high.

Instead of increasing the buffer size, we then create multiple buffers,
each on different subpixel positions (a bit like "FSA" :).

So! Shadowbuffer sampling then works as follows;

1) You take multiple samples in the shadowbuffer, on different locations
   inside (or around) the rendered pixel. 
   That option was aready available as "Samp" button in Lamps

2) Set amount of sample buffers. It is default 1, but can be 4 or 9.

The results of setting it to '4' or '9' buffers you can see here:
http://www.blender.org/bf/filters/index3.html

Actually, deep shadowbuffers could solve it probably too! Anyhoo...
2008-03-05 10:03:31 +00:00
Brecht Van Lommel
4ba2162e63 Bugfix: the shadow samplenr increment to reuse shadow results in
the renderer could lead to results being reused for unrelated
points, result was one wrong pixel or strand per part. Now instead
of setting the sample counter to 0 multiple times, it keeps a global
counter per thread for the whole render.
2008-03-04 19:58:22 +00:00
Brecht Van Lommel
b26a767923 Bugfix: displacement with object texture mapping could crash. 2008-03-03 18:53:06 +00:00
Brecht Van Lommel
27c9fb7c6b Fix for bug #8410: dupliframes didn't render. 2008-03-03 17:16:29 +00:00
Brecht Van Lommel
cffb9551db Fix for bug #8403: a radiosity render crash. 2008-02-29 16:52:46 +00:00
Diego Borghetti
95b0176fde Fix segfault when save the render with Multilayer format.
The RE_WriteResult function don't call BLI_make_existing_file
like BKE_write_ibuf, so if you append a directory to the output
path and it don't exist, the exr_begin_write fail to create
the file and blender crash.

Note that this is only 1 line of code and don't touch
anything in the render code.
2008-02-29 15:36:24 +00:00
Brecht Van Lommel
34fbc56c1c Fix for bug #8357: metaball rendering + radiosity was broken. 2008-02-28 18:54:25 +00:00
Brecht Van Lommel
7a83e67a46 Fix for bug #8373: using SSS the rendertime could be reported wrong. 2008-02-27 20:10:05 +00:00
Brecht Van Lommel
8da0b6937d Fix for dupli rendering bug, with a duplicating particle system using
groups that were not in the scene. Also commented the code better.
2008-02-27 11:50:20 +00:00
Brecht Van Lommel
995262728f Fix for bug #6854: meta object crash with preview render. Meta objects
were using an ugly trick to store render orco's, but there's really no
reason for it, now it works like other primitives.
2008-02-26 16:20:36 +00:00
Brecht Van Lommel
2719e8ca33 Tweak bugfix #8347 a bit, the self intersection problem with raytraced
shadows and jittering.
2008-02-26 13:05:18 +00:00
Brecht Van Lommel
7f0b9abb7d Fix for bug #7914: when rendering ray transparency with premul or key,
the alpha channel was set wrong.
2008-02-25 15:08:46 +00:00
Brecht Van Lommel
15688168df Fix for bug #8347: bug in raytraced shadow with edgesplit. Problem
was the new jittering of the start position gave self intersections,
especially noticable with for example edgesplit because in that case
it can't detect them as well. 'Solution' now is to bias the start
position away from the surface a bit according to how much the start
position was jittered.
2008-02-25 10:58:12 +00:00
Joseph Eagar
0e233b3213 =Reversion of premul bugfix=
Reversion of premul bugfix, as it was apparently not
working all that well.

Note that this brings back the bug where the erase alpha
paint tool won't display correctly, since the UV image
editor just draws images in key alpha now.
2008-02-22 22:23:58 +00:00
Brecht Van Lommel
28fb578048 Fix for bug #8329: approximate AO with shadow disabled gave artifacts. 2008-02-22 19:29:15 +00:00
Brecht Van Lommel
ed385dd5ce Fix for mistake in last commit, using wrong flag. 2008-02-22 15:09:24 +00:00
Campbell Barton
0e935e397b * Displacement baking wasnt working with negative distances.
* Added Normalize option for diplacement so everything in the 'Dist' range is mapped 0-1
* Increased the maximum Dist and Bias to1000.0 (was 10.0)
* Added python utility function in BPyRender.py - bakeToPlane(...), to automate heightmap, normalmap generation for Crystalspace.
2008-02-22 14:27:46 +00:00
Brecht Van Lommel
d7088ce825 Bugfix: objects in groups with texture mapping Object now get texture
coordinates from the object as if they were in their original position,
untransformed by dupligroups or dupliverts. Otherwise the textures of
such objects would change depending on their position.
2008-02-22 13:21:42 +00:00
Brecht Van Lommel
ac5caa8536 Fix for bug #8326: SSS + fields crashed. 2008-02-22 10:43:40 +00:00
Campbell Barton
71ca81019d autoThread was inverted at rendertime (forgot to change), added tooltips 2008-02-21 21:28:54 +00:00
Brecht Van Lommel
b163a416c4 Fix for bug #8214: halo didn't render correct with FSA. 2008-02-21 20:58:22 +00:00
Brecht Van Lommel
70befde9e9 Fix for bug #8014: in some cases text objects would not render without
being shown in the 3d view first.
2008-02-21 15:09:12 +00:00
Campbell Barton
7c7a931fed made auto threads default (noob's get faster renders in their dual core CPU's)
changed env variable check order $TMP, $TMPDIR - aparently $TMP is more common.
2008-02-21 08:43:13 +00:00
Brecht Van Lommel
1695c8fe5d Fix for bug #6897: radiosity or autosmooth + displace gave different results
than regular displace.
2008-02-20 20:37:20 +00:00
Campbell Barton
4c0b33ef80 Python Bugfix
A new file could have its Blender.Get("filename") return "<memory>" after undo'ing on an open file.
Fix for own error with python sys.path, messed up game engine.
2008-02-20 18:56:07 +00:00
Brecht Van Lommel
79a354172a Negative zmask rendering: now there is a setting to render everything
behind the zmask instead of in front. Might need tweaks, and doesn't
work with halo yet.
2008-02-20 14:17:53 +00:00
Brecht Van Lommel
0e1ae457ec Bugfix for duplivert render instancing with certain dupligroup setups. 2008-02-20 14:10:41 +00:00
Campbell Barton
82d769c79f automatic threads, next to the Threads button, so you can set threads to use whatever the system has, useful in the studio with 2,4,8 core systems when sharing files. 2008-02-19 22:23:21 +00:00
Brecht Van Lommel
b08b5a934f Fix for bug #6911: radiosity pass can no be excluded. 2008-02-19 19:26:49 +00:00
Brecht Van Lommel
2463e7a32e Fix for bug #8299: baking from selected to active with ray transparency
gave wrong results. Problem was the view vector was setup strange. While
it is really not well defined, it is now set as the negation of the normal,
so it is looking right at the surface, gives more predictable.
2008-02-19 17:51:58 +00:00
Brecht Van Lommel
6ea0adb462 Added an option to bake AO normalized, without material settings taken
into account. The normalized result can often be easier to integrate
into different materials, e.g. for games.
2008-02-19 16:16:16 +00:00
Brecht Van Lommel
4100861f24 Bugfix: vector blur blending of different times wasn't correct, didn't
show up much for characters on isolated layers but can make a big
difference on a full scene:

http://users.pandora.be/blendix/vblur_before.jpg
http://users.pandora.be/blendix/vblur_after.jpg
2008-02-19 15:30:33 +00:00
Brecht Van Lommel
f5e89b3f47 Bugfix: this adds some epsilons (FLT_EPSILON, so quite small) to the
raytracing intersection code, to avoid rays slipping through between
triangles, this would mostly show up with sceen aligned quads and
baking of height maps for example. Epsilon's are not pretty, but I
haven't found a reliable way around them.
2008-02-19 12:13:35 +00:00
Brecht Van Lommel
e0dfe62d8c Bug #8234: sky texture for approximate AO doesn't work, as mentioned
in the commit log. Couldn't get this to work well, probably this would
work a lot better with the IBL spherical harmonics feature, so I've just
disabled the option in the interface for now.
2008-02-19 11:07:09 +00:00
Joseph Eagar
ccac67d3ea Further work on the premul option for ton. This option
(which basically tells the renderer and compositor to expect a
key image) is now done at the image user level.

This does have some caveats, as image users don't always work
the way I thought they would/should (for example, the same image user
structure is apparently used in the uv image editor for all images,
which is kindof odd).

The UV image editor also now smartly detects if the premul option is
set and draws the image using key alpha, instead of premul

The subversion level was upped to convert the old premul flag, which was at
the image level, to the new one, which is at the image user level.
2008-02-18 23:50:12 +00:00
Brecht Van Lommel
ca79952dc0 Fix for bug #7787: QMC AO could give bad results tracing rays from an
untraceable material, cause is that the ray start position got set
only once, but it needs to be set for each ray since it can be clipped
to the octree bounding box.
2008-02-18 19:32:57 +00:00
Brecht Van Lommel
a75e34a1df Fix for bug #7936: render baking selected to active now has a Bias
value that is an offset along the normal when looking for the nearest
face, which allows baking faces further away, e.g. an ID badge onto a
shirt.

Also fixes a bug baking to float images, for things other than
displacement it didn't work sometimes, and a memory leak in the
extend filter.
2008-02-18 18:14:19 +00:00
Brecht Van Lommel
988ffbc704 Bugfix for speed vector pass not being done when rendering a single
layer from the compositor. I've solved this by changing the behavior,
now it always renders a vector pass even if Do Composite is disabled.
I think that's more consistent because other passes get rendered too
regardless of Do Composite, the vector pass was just an exception.
2008-02-18 13:38:16 +00:00
Brecht Van Lommel
fb2e03c539 Bugfix for own mistake in recent commit, halo render could crash
with no material assigned.
2008-02-18 13:05:27 +00:00
Campbell Barton
0fe6abbfa3 texture forcefields had a bug where uninitialized values could be used.
do_texture_effector assumed multitex_ext would assign r/g/b colors which isnt true for grey textures.
Fallback to PFIELD_TEX_GRAD with grey textures, node this in tooltip also.
2008-02-17 23:53:48 +00:00
Brecht Van Lommel
10529ca743 Fix for bug #8044: vertex colors weren't supported for hair. 2008-02-17 22:42:03 +00:00
Campbell Barton
1648060132 Bugfix [#8196] sequencer crash when adding scene without camera
added checks for a camera
Also added an error ob bake if there are no active objects.
2008-02-17 20:44:07 +00:00
Brecht Van Lommel
601c7cc318 Fix for bug #8267: vector blur results in horizontal lines.
Vector blur was averaging z-values between pixels, which could give
wrong z-test results. While averaging is needed for speed vectors
to avoid holes, for z-values it is not required and not doing it
seems to avoid artifacts in specific cases.
2008-02-17 20:36:13 +00:00
Brecht Van Lommel
2c11523b39 Fix for bug #8285 and #8286: halo crashes with environment maps and
render instancing.
Fix for vector blur alpha blending bug due to my recent bugfix, as
reported on bf-committers.
2008-02-16 18:49:54 +00:00
Brecht Van Lommel
febede50f4 Bugfix: alpha blending bug in vector blur, gave too dark areas using
input image with alpha.
2008-02-15 18:21:30 +00:00
Brecht Van Lommel
5e9457b5e2 Bugfix for unnecessary missing object warnings for speed vectors,
caused by optimization that doesn't compute vectors for objects that
don't need them.
2008-02-15 15:29:43 +00:00
Ton Roosendaal
1dc7f17493 Bugfix:
In compositor, not always all scenes rendered... this was why:
When disabling 'save buffers', but keeping the 'full sample' option, the
*other* scenes in a composite didn't render.
2008-02-15 13:49:10 +00:00
Ton Roosendaal
58046762f8 1) Revert previous commit, rendering negative won't work that simple...
Needs much more attention.
2) Fix for zcombine node: 
   - it skipped execution when no image rgba out was used
   - didnt work for FSA yet
2008-02-14 18:56:14 +00:00
Ton Roosendaal
3c2adb1801 Allows negative light to result in negative diffuse and 'combined'
when you have world exposure set. (it used to clip it in 0-1, now it
mirrors the values)
2008-02-14 18:00:58 +00:00
Joseph Eagar
ac5d28a13c Added another 2 checks for if an image has the premul flag set, 1 in the image
compositor node, another in render_realtime_texture.  Note that multilayer images 
in the image compositor node do not respect the premul flag (though I did write 
commented out code for it).

As far as I can tell, the premul option never worked for multilayer images in the
image node, so I'm a little nervous about making it work properly there.

ton, any comments?
2008-02-14 13:36:59 +00:00