Commit Graph

222 Commits

Author SHA1 Message Date
c21c58f44c style cleanup, also remove unused externs. 2012-03-11 19:09:01 +00:00
89a963fb7f style cleanup: comment blocks 2012-03-09 18:28:30 +00:00
31d2ee9bf7 style cleanup, brackets in else/if, some indentation. 2012-03-06 18:40:15 +00:00
ea13ec1699 Spelling Cleanup 2012-03-01 12:20:18 +00:00
cd4123e1db use inline BLI_math functions for dot product and length calculation. 2012-01-22 17:20:37 +00:00
f6620d0097 Fix #29723: wrong IOR for raytraced refraction after reflection inside mesh,
patch by Juha Maki-Kanto.
2012-01-05 22:41:56 +00:00
de4befb075 Code refactoring: split render result related functions into separate file. 2012-01-05 17:50:09 +00:00
4d7c44717a Code cleanup: fix some clang static checker warnings. 2011-12-22 20:29:44 +00:00
06c3d5bd09 de-duplicate dominant axis calculation, exact same checks were in 6 different places.
added function:  axis_dominant_v3(...)
2011-12-02 22:14:20 +00:00
85540d5aa7 more macro --> BLI math lib, mainly replace VECCOPY in render and blenkernel. 2011-11-06 16:38:21 +00:00
4a04f72069 remove $Id: tags after discussion on the mailign list: http://markmail.org/message/fp7ozcywxum3ar7n 2011-10-23 17:52:20 +00:00
67e744ccf0 fix some typo's 2011-10-23 15:27:36 +00:00
cb6255fdf8 edits to internal renderer - no functional changes.
- move some larger vars into a nested scope.
- replace memset with zero initializer.
- rempace VECCOPY macros with copy_v3v3
- change function args to give the float array length.
2011-09-24 14:34:24 +00:00
f8ec017900 floats were being promoted to doubles in quite a few cases (using gcc's -Wdouble-promotion), went over render module and use float constants, gives small but consistent speedup - approx 3%. 2011-08-20 17:39:13 +00:00
ae884d2e54 Code cleanup: add UNUSED_FUNCTION macro to avoid warning messages about unused
functions.
2011-08-15 16:18:04 +00:00
11014defdb since render branch isnt planned to be merged now, enable strict warning flags for cmake and tag unused vars. 2011-06-20 15:17:02 +00:00
eabb444106 minor cleanup: make functions static, use NULL for pointer comparisons,
also fixed a possible bug assigning incorrect DPX function types to
imbuf.
2011-05-10 13:11:36 +00:00
d4e540dff3 comment some unused code. 2011-05-08 10:29:40 +00:00
ee9ea98e48 zoom operator.
- continue zoom now uses the same options as dolly (hoz/vert & invert).
- remove event mouse coord hack to bypass touchpad zoom invert, instead pass invert as an argument.
2011-04-22 14:47:35 +00:00
5d850c16bf fix [#26902] Raytracing black dots
derivatives from reflected duplis were not taking object instance transformation into account.
2011-04-14 16:13:32 +00:00
06a763f9d7 Fix #25931: strand render + ray traced AO give tile image. The random numbers
for sampling were not consistent, now the RNG is seeded per strand, and some
tweaks were done to make the jittered sampler cache return consistent sample
numbers for strands.
2011-03-12 00:16:55 +00:00
102c5e0ad4 2011-03-11 07:59:43 +00:00
9d5c6bbe3d quiet warnings and fix building without python. 2011-03-04 17:01:33 +00:00
Nathan Letwory
a61c41c7a5 doxygen: blender/render tagged. 2011-02-27 19:31:27 +00:00
Nathan Letwory
5b607701a7 doxygen: prevent GPL license block from being parsed as doxygen comment. 2011-02-23 10:52:22 +00:00
33887fa41d Bugfix #26116
Node materials with 'ray transparency' set now work again.
Fix provided by Ervin Weber, thanks a lot!
2011-02-21 18:06:52 +00:00
00d95fb4bf Another fix for the raytracing commit, forgot that it also included vertex
reordering to be consistent with the rest of the render engine. That means
the self intersection issues with non-planar quads should also be gone now.
2011-02-05 17:54:00 +00:00
04299657a7 Raytrace modifications from the Render Branch.
These should not have any effect on render results, except in some cases with
you have overlapping faces, where the noise seems to be slightly reduced.

There are some performance improvements, for simple scenes I wouldn't expect
more than 5-10% to be cut off the render time, for sintel scenes we got about
50% on average, that's with millions of polygons on intel quad cores. This
because memory access / cache misses were the main bottleneck for those scenes,
and the optimizations improve that.

Interal changes:

* Remove RE_raytrace.h, raytracer is now only used by render engine again.
* Split non-public parts rayobject.h into rayobject_internal.h, hopefully
 makes it clearer how the API is used.
* Added rayintersection.h to contain some of the stuff from RE_raytrace.h
* Change Isect.vec/labda to Isect.dir/dist, previously vec was sometimes
  normalized and sometimes not, confusing... now dir is always normalized
  and dist contains the distance.
* Change VECCOPY and similar to BLI_math functions.
* Force inlining of auxiliary functions for ray-triangle/quad intersection,
  helps a few percentages.
* Reorganize svbvh code so all the traversal functions are in one file
* Don't do test for root so that push_childs can be inlined
* Make shadow a template parameter so it doesn't need to be runtime checked
* Optimization in raytree building, was computing bounding boxes more often
  than necessary.
* Leave out logf() factor in SAH, makes tree build quicker with no
  noticeable influence on raytracing on performance?
* Set max childs to 4, simplifies traversal code a bit, but also seems
  to help slightly in general.
* Store child pointers and child bb just as fixed arrays of size 4 in nodes,
  nearly all nodes have this many children, so overall it actually reduces
  memory usage a bit and avoids a pointer indirection.
2011-02-05 13:41:29 +00:00
6a23716957 Applying patch #25898 by Shinsuke Irie for rendering total external reflections
* Tracing objects with IOR < 1.0 (like air bubbles under water) wasn't working correctly as a refraction was always assumed to be the first thing that happens for transparent materials.
* This fix is ok, but the fact that the internal renderer is not a physically based one is starting to show, as for example blurred reflections in this case are not really possible nicely without some slightly heavier modifications to the ray code.
* Also some cleaned up logic and better comments for my previous total internal reflection commit.
2011-02-03 15:05:43 +00:00
f79f9115f2 Fix for [#25899] Renderer can't trace successive total internal reflection
* This was wrong since 2006!
* Raytrace code assumed refractions to go "air -> glass -> air -> glass -> air.." so actually only the first total internal reflection was calculated correctly, but everything after that was wrong.
* Now after a total internal reflection there needs to be an actual refraction before the ray escapes the "glass" object.
2011-02-02 12:04:23 +00:00
f7611b0fd3 Bugfix #25580
Raytracing didn't show soft shadow in reflections, nor did it do any
derivative even. Added a basic version for it in raytracer now, still
needs improvement on heavily curved surfaces. But it's better!

Examples:

Glass sphere, mirror cube and sphere, look how it ignores bump and shadow
http://www.blender.org/bf/derivative256.png

in svn now:
http://www.blender.org/bf/derivative-svn.png
2011-01-11 18:40:44 +00:00
89c9aaaa25 remove references to BKE_utildefines where its not needed.
- move GS() define into DNA_ID.h
- add BLI_utildefines as an automatic include with makesrna generated files.
2011-01-07 19:18:31 +00:00
8f21a43535 split BKE_utildefines.h, now it only has blender specific defines like GS() MAKE_ID, FILE_MAXDIR, moved the generic defines to BLI_utildefines.h.
no functional changes.
2011-01-07 18:36:47 +00:00
26024445ac Fix #23604: external shadows for volume materials don't work 2011-01-05 14:20:48 +00:00
d3070ad9ac Bugfix #23658
Render: Alpha calculated for ray-traced transparency could overflow beyond 1.0.
Gets clamped now.
2010-12-16 11:31:04 +00:00
5fe2a16385 Fix [#20241] half-transparent objects in volume have no shadow. 2010-11-29 07:07:08 +00:00
7358a95c8a bugfix [#24807] nan pixel on Word BG with Angular Map coord texture
also avoid divide by zero with an empty raytree
2010-11-19 10:24:14 +00:00
27b527c164 Fix [#23972] 2.54 beta crashes when rendering scene with many volume objects
Sticky-taped on more hacks to the already crumbling shading system.
2010-10-27 02:18:24 +00:00
61d23ff95b minor edits so traceray() uses less stack memory, also remove memset() usage, initialize as {0}.
no functional change.
2010-10-06 14:47:40 +00:00
5251a9b3bf 2.5: remove vertex normal flip option, this is more harmful than helpful
in many cases, and also gave incorrect rim lighting.
2010-07-30 11:50:00 +00:00
4ddcb65399 Assorted small volume render related fixes. 2010-07-28 08:06:46 +00:00
0d5b688746 Fix [#22643] Renderging Crash. 2.5 2010-06-30 04:09:58 +00:00
93238c3a3d Runtime detection of SSE support for raytracing. Also enabled rayoptimization
by default now on all platforms since it shouldn't crash anymore if SSE is
not there. If this breaks compilation on some platforms, please let me know.
2010-06-24 15:54:01 +00:00
c0be8ee8cb Fix crash cancelling render while building object instance in
raytree, object could still be added after it was already freed.

(merge from render25 branch)
2010-06-22 15:04:03 +00:00
fba7ebcbea replace add_v3_v3v3() --> add_v3_v3() where possible 2010-04-21 12:27:48 +00:00
253de0ed86 * Assign weight from bones in weight paint mode now respects paint face
mask, also avoid making vertex groups if they will not be filled.
* Add back image pin option in image editor header.
* Fix deep shadow not respecting Cast Buffer Shadows option.
* Tangent space normal map baking should work again now.
* Fix a problem with particle duplis, due to own bugfix for #20350,
  the problem for that seems to be in dupliverts, not particles.
* Fix external multires data link getting lost on exiting editmode.

(commits 27776,27777,27830,27840,27841,27862 by Brecht from render25 branch)
2010-03-30 12:01:17 +00:00
081c1205a3 correct fsf address 2010-02-12 13:34:04 +00:00
1f3e277121 bugfix [#20709] Strange rendering artifacts in raytraced refraction 2010-02-03 13:54:09 +00:00
5445dda295 Ambient Occlusion split up into:
Ambient occlusion: multiplied with direct lighting by default, add
is also still available and more blending methods might be added if
they are useful. This is fundamentally a non physical effect.

Environment lighting: always added as you would expect (though you can
subtract by specifying negative energy). This can be just white or take
colors or textures from the world.

Indirect lighting: only supported for AAO at the moment (and is still
too approximate), and also is always added. A factor is available to
specify how much is added, though value 1.0 is correct.

Also:
* Material ambient value now defaults to 1.0.
* Added Environment, Indirect and Emit pass.
* "Both" blending method is no longer available.
* Attenuation, sampling parameters are still shared, some could be split
  up, though if they are different this would affect performance.
2010-01-27 21:40:08 +00:00
641774436f am learning bad spelling from blender. grr 2010-01-26 14:00:13 +00:00