Commit Graph

1757 Commits

Author SHA1 Message Date
Michael Fox
2a67a126e8 Fix for rendering procedual bump maps, mapped in world space, since the new bump map kernel uses direction, this bug became a real issue, with bumps suddenly changing direction
Fix provided due to a long session on IRC with Morten S. Mikkelsen (sparky_)
2011-02-09 01:21:03 +00:00
Campbell Barton
e511f9fac4 add back options for loading a renderlayer to offset the image when copying the buffer to a smaller renderlayer.
This was reverted by Brecht r22541 because its inefficient but there is no way to work around this with povray at the moment so adding it back as optional args.
2011-02-08 10:31:47 +00:00
M.G. Kishalmi
a6baee5298 bump-mapping update to properly support
multiple textures in different bump-spaces.

kudos to M.L.Mikkelsen (sparky) for helping with the math! :)
2011-02-07 21:55:54 +00:00
Ton Roosendaal
c8be8a7c6d Bugfix 25965
New "auto render" now prevents calling anim-updates, that's
not needed (and popped back transformed keyed objects).
2011-02-07 18:09:27 +00:00
Ton Roosendaal
c03064b187 Bugfix #25953
Fix in crashing displacement last friday, assumed wrongly that
the old 'new bump' failed for displacement too. It still did
work (somewhat). This restores the situation again.
2011-02-06 18:38:53 +00:00
Janne Karhu
0ea9271f43 Bug fix: Particles in dupligroups were mostly drawn properly in 3d view, but rendering them was a real mess.
* After countless different bugs particles should now render correctly inside dupligroups.
* Only particles with metaball visualization are still problematic, this is mostly due to the ancient metaball code.
* I'll also add a test file for some of the situations, so that hopefully these cases stay fixed :)
2011-02-06 15:50:00 +00:00
Campbell Barton
1cdab667bc - cmake was missing an inclide (IDE's wouldnt index)
- made doc generation always sumlink newly built docs to static URL. http://www.blender.org/documentation/250PythonDoc/
2011-02-06 10:18:20 +00:00
Guillermo S. Romero
6705d5c7e7 SVN maintenance. 2011-02-06 00:49:58 +00:00
Brecht Van Lommel
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
Brecht Van Lommel
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
Ton Roosendaal
fe99f35210 Renamed texture.c in render module, to prevent debuggers to
complain about the same named file in blenkernel.
2011-02-05 13:10:20 +00:00
Ton Roosendaal
df9fade564 Bugfix 25871
Using displacement with new bump caused NaN values or crashes.
Since displace code doesn't provide derivatives, it now falls
back to "old bump" by default.
2011-02-05 13:07:51 +00:00
M.G. Kishalmi
311f5a8d78 accidentally left scaling code commented out when testing. 2011-02-05 11:46:44 +00:00
Ton Roosendaal
54aa4fa3a2 Bugfix #25912
Render bug in spothalo (weird horizontal line).
Appeared to be precision error... even for doubles,
before doing division a check for FLT_EPSILON works
better than DBL_EPSILON (if there's an alternative).
2011-02-03 16:31:03 +00:00
Janne Karhu
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
Ton Roosendaal
fc0d85ac59 Bugfix #25913
Compositor: using "read sample buffers" after load file, without
render layers in composite, crashed blender (NULL read)
2011-02-02 14:36:00 +00:00
Janne Karhu
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
Janne Karhu
4037eda069 Fix for [#25879] Particle Duplication issue with Linked in Objects from Groups.
* Only the first object (in scene object order) that instanced a dupligroup was rendered properly, because particle instances were checked for only after creating the render object (and even this check was done wrong).
* Now the actual render object is created only after both object and particle instances have been checked.
2011-02-01 15:02:25 +00:00
Campbell Barton
89c617a116 remove nan-makefiles 2011-01-30 15:29:22 +00:00
Ton Roosendaal
a550cca5d8 Bugfix #25855
New bump code: option "Texture space" only works for image textures.
It appears this option is some kind of "fake normal map" actually.
Needs nicer name... maybe "Image space".

Now it ignores the option when no image texture is used.
2011-01-30 14:19:12 +00:00
M.G. Kishalmi
28e91fcd28 ISO C90 fix 2011-01-29 12:09:11 +00:00
M.G. Kishalmi
c709524dc9 new bumpmapping options for the renderer
oldbump -> original
newbump -> compatible
 *new*	-> default (3tap)
 *new*	-> best quality (5tap)

the latter two have an option to apply bumpmapping in 
 viewspace - much like displacement mapping
 objectspace - default (scales with the object)
 texturespace - much like normal mapping (scales)
2011-01-29 11:56:11 +00:00
Campbell Barton
d2076e38f1 correct own bad spelling 2011-01-23 12:42:07 +00:00
Campbell Barton
98124e7f94 error in own recent commit, r34445 2011-01-22 04:13:13 +00:00
Campbell Barton
799e9c48c1 comment dead code and fix 2 missing NULL checks (pointer used after NULL check and checking against incorrect pointer before use). 2011-01-22 03:50:09 +00:00
Campbell Barton
d7c6ddd7e9 correct spelling 2011-01-21 02:32:58 +00:00
Ton Roosendaal
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
Campbell Barton
5bcee8cd0a remove misc unused vars and correct theme name for face angles. 2011-01-11 07:40:31 +00:00
Campbell Barton
d3d5fe42bf fixed a case with occlusion where uninitialized variable could be used.
also removed unused vars.

can_pbvh_draw() had a NULL check which is never needed (callers check for this), a NULL ob would have crashed the function anyway.
2011-01-08 10:23:36 +00:00
Campbell Barton
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
Campbell Barton
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
Brecht Van Lommel
b9fe5399e8 Revert bump mapping patch for now, backwards compatibility is not good enough,
we may need to preserve the previous method.
2011-01-07 16:55:56 +00:00
Brecht Van Lommel
f01cac08e7 Fix #25078: texture mapping options (e.g. size) not working correctly with bump.
This problem was in both new bump and new new bump. The derivatives used for
bump mapping did not include the mapping, which gave mismatched offset for the
taps, now just do the mapping beforehand.
2011-01-07 15:41:24 +00:00
Brecht Van Lommel
c8e0ca44a3 Improved bump mapping patch by M.G. Kishalmi (lmg) and M.S. Mikkelsen (sparky).
Many thanks to them!

For comparison, see here:
http://kishalmi.servus.at/3D/bumpcode/

Based on algorithm in: Mikkelsen M. S.: Simulation of Wrinkled Surfaces Revisited.
http://jbit.net/~sparky/sfgrad_bump/mm_sfgrad_bump.pdf

This fixes bugs:
#24591: Artefacts/strange normal mapping when anti-aliasing is on
#24735: Error at the Normal function.
#24962: Normals are not calculated correctly if anti-aliasing is off
#25103: Weird artefacts in Normal

This will break render compatibility a bit, but fixing this bugs would have also
done that, so in this case it should be acceptable.

Patch committed with these modifications:
* Bump method Old/3-Tap/5-Tap option in UI, 3-Tap is default
* Only compute normal perturbation vectors when needed
* Fix some middle of block variable definitions for MSVC
2011-01-07 14:42:01 +00:00
Campbell Barton
a15189f845 fix for clang static check warnings.
- convertblender.c, remove assignments to unused vars.
- readfile.c, fix 2 possible crashes. null pointers were being checked for then used later without checking.
- space_graph.c, use switch statement for automatic color assignment rather then a float array.
2011-01-06 01:35:07 +00:00
Campbell Barton
5f64450726 remove assignments which are unused. 2011-01-06 01:29:13 +00:00
Brecht Van Lommel
26024445ac Fix #23604: external shadows for volume materials don't work 2011-01-05 14:20:48 +00:00
Campbell Barton
22b97743ef avoid int/float comparisons within a number of for loops in deep shadow map compression.
gives minor overall speedup.
2011-01-03 06:13:50 +00:00
Campbell Barton
27b0bfef77 fix for possible comparison of un-initialized variable.
vol_get_bounds() only runs when shi->flippednor==0, but is.hit.ob was being checked afterwards irrespective.
2011-01-03 04:46:37 +00:00
Campbell Barton
a7ceeafd71 - correct typos in comments.
- move boxpack struct out of the public header.
2011-01-02 11:06:50 +00:00
Ton Roosendaal
3c96b00500 Bugreport, IRC
Compositor: "Read & Compo Full Sample Buffers" option stopped after
1 pass; the break callback was returning '1' falsely.

Also made it show "wait cursor" again, since it doesn't run in 
thread nor updates UI while compositing buffers. Check console for
progress for now.
2010-12-28 10:39:27 +00:00
Ton Roosendaal
b2be78c0cc Bugfix #25392
Compositor: Texture node didn't use texture-nodes itself.
Now composites initialize texture nodes correctly.

Also reviewed the fix for crashing texture nodes for displace.
It appears texture nodes also are used for sculpt/paint 
brushes, in these cases it can be allowed again. But, don't
do this during rendering for now!
2010-12-27 19:26:38 +00:00
Ton Roosendaal
c4a56fda6d Bugfix #24966
Hair render: using strand "Blender Unit" size didn't correctly
clip for larger/wider strands. Now code clips strands based
on the maximum width.

Also found bad code for using clipping flags, which was mixed up,
and probably caused hair strands to be missing in cases.
2010-12-26 17:47:17 +00:00
Campbell Barton
5e382eb8e5 rename blenderlib to blender_add_lib 2010-12-22 23:09:30 +00:00
Ton Roosendaal
51a7995269 Bugfix, IRC, textures or displacement on metaballs didnt work.
Commit 32361 from Campbell made quite a silly optimize mistake...

ver->orco= orco+=3;

Which is of course not:

ver->orco= orco; orco+=3;

Triple tsk!
2010-12-22 14:43:24 +00:00
Ton Roosendaal
6b1258f5b8 Bugfix #25301
Material Node trees:
SSS wasn't displaying in Nodes.

Implementation notes:
- Currently copying local data for preview render, only copies
  the base material. Node materials are re-used.
- This causes data to be in 2 "main" databases... complex.
- To make it work for preview, I had to add another loop in the
  SSS code that checks the original Main dbase. That's marked
  as warning in code to be fixed up.

Another bug:
- Material properties "SSS presets" copied settings to the
  active material, not to the displayed one. Added RNA call 
  to retrieve this from Objects.

(Next commit will fix preset scripts)
2010-12-20 13:02:33 +00:00
Ton Roosendaal
b8e47fd160 Bugfix #25301
Preview render for node shaders broke, caused by localizing 
materials last week, to prevent thread crashes. Fixed now.
Also added a temp fix to draw color-management corrected
node previews default. Will follow scene setting tomorrow.

Also: SSS in nodes doesn't render yet. Was issue in 2.4 too...
2010-12-19 20:12:12 +00:00
Ton Roosendaal
7507a5f959 Bugfix #25288
SSS preview render didn't happy.
Was caused by using a Material copy for preview renders (to prevent
crashing in other cases). There were actually 2 errors:
- material copy should be added to preview-main database
- the render was invoked using wrong main database even!
2010-12-19 11:39:55 +00:00
Janne Karhu
b58dbbd51b Extreme makeover of pointcache code:
* Pointcache code was quite ugly looking and complicated, so here are mostly just cosmetic adjustments, but some improved logic also.
* Slight cleanup of pointcache ui too.
* Shouldn't have any functional changes what so ever, so poke me right away if something seems off.
2010-12-18 15:03:31 +00:00
Campbell Barton
fd90685a48 remove some paranoid NULL checks, since the pointers are used already. 2010-12-17 19:05:10 +00:00