New diffuse shader, "Fresnel", which using existing fresnel formula.
Since it hilights edges (away from lamp), nice to fill darker parts with
the new layering system.
Weird stuff though;
http://www.blender.org/bf/0001_0040.avi
(Movie disappears in a couple of days!)
Note; for ray-shadow you need to use the Bias, to prevent 'terminator'
problems. I made that option default now.
- Texture buttons preview didn't show for material layers
- layers now have a 'number of users' button, which allows to make a
full copy of the material.
Forgot to put back window/screen-size clipping when opening render window.
Note for windows coders; check this diff, here's where you might need to
add an ifdef too for windows, to get the window opening correct for the
top of the screen (probably because of windows bottom toolbar?)
(WIP, don't bugs for this in tracker yet please!)
- New Panel "Layers" in Material buttons, allows to add unlimited amount
of materials on top of each other.
- Every Layer is actually just another Material, which gets rendered/shaded
(including texture), and then added on top of previous layer with an
operation like Mix, Add, Mult, etc.
- Layers render fully independent, so bumpmaps are not passed on to next
layers.
- Per Layer you can set if it influences Diffuse, Specular or Alpha
- If a Material returns alpha (like from texture), the alpha value is
used for adding the layers too.
- New texture "Map To" channel allows to have a texture work on a Layer
- Each layer, including basis Material, can be turned on/off individually
Notes:
- at this moment, the full shading pass happens for each layer, including
shadow, AO and raytraced mirror or transparency...
- I had to remove old hacks from preview render, which corrected reflected
normals for preview texturing.
- still needs loadsa testing!
- There is now a (temporary) dropdown box in the image window header for
switching between the old an new unwrapper code. So to test the changes
described below you need to enable the new unwrapper code.
- Pinning is now more predictable, if one uv is pinned, the others belonging
to the same vertex are pinned also.
- Live LSCM is much faster, since the LU factorization, the most expensive
part of the computation, is now stored and reused (was Jens' idea).
- Packing multiple uv charts is slightly improved, by doing a binary search
over the texture width. This fixes the case where all the charts are
packed at the bottom of the image.
- LSCM now uses an angle based formulation, and the results seem somewhat
different (maybe slightly better?), didn't find out why yet.
thus directories in the path are created using RE_make_existing_file
in fluidsim.c)
- changed default output to be '//fluidsimdata/...'
- hopefully fixed bugs #3466 and #3470 (orco texture coords caused
problems when the fluidsim mesh was bigger than the original one,
one no other deformations were used - new deformedVerts are now
allocated in this case in DerivedMesh.c)
(Swap colors on bigendian machines)
I also made it so that the env variable is tried ahead of all
of the other looking. (That way you can override a system default
if its broken without having to upgrade)
This also makes it so we can remove the OSX ifdef. So I did.
lukep: If you still want it add it back in but my gut says the less ifdefs
we have the better ;)
Kent
I updated gen_dynlibtiff.py so its in sync with the file(s) it creates.
I added a little more documentation to the readme.txt for adding
new file formats.
I also added two dummy functions to the tiff.c so it stopped whining
about them being NULL.
(I'm still working on the reported bugs but thought this was a good time
to at least get this in)
Kent
Set the option in EditMode, in 2nd mesh tools panel. It only works on
transform options now (grab/rot/scale), and of course assumes a near-
perfect symmetrical mesh. Mesh Object itself can be on any location
though (and rotated etc).
you can now blend between the original and minimized.
Stretch minimizing trades conformality (= perfect squares in checkerboard
texture) for a better sampling of the texture (= often not so well shaped
checkerboard), so it is useful to let the user find a balance between the
two.
This commit adds new underlying uv unwrapper code, intended to be
more extensible. At the moment this has a re-implementation of LSCM.
This has not been activated yet, since it doesn't add anything new.
What's new is the stretch minimize tool from tuhopuu. It works by
selecting some some uv's in the uv editor window, and then pressing
ctrl+V. The uv's on the boundary stay fixed.
More stuff will follow as I port it over & fix it.
- Curves without bevel or extrude didn't calculate the Z value for
softbody when the "3d" option for curves was off.
- Typo in softbody.c, for switch of // comments to /* */
PyDict_SetItemString() with objects that were not properly decrefed
afterwards. Due to the number of places this was used, I added a
wrapper EXPP_dict_set_item_str() to gen_utils.c to handle it.
This started as a scriptlink bug, due to how many times scripts were
being executed I think it just magnified how bad the memory leak in
BPy was. Animating the blend attached with this bug report would cause
memory to grow by about 3MB for every 280 frames. After the patch,
memory did not appear to grow at all (or at least not noticably using
Unix's ps and top utils).
Since many of the PyDict_SetItemString() calls were in initialization
modules I think my tests executed most of the changed code, but would
appreciate script users really giving feedback.
Noticed that static particle orcos (strands) actually were global
coordinates. This was code copied from dynamic particles...
Bugreporter (hi env!) tried to make nice zebra texture, which of course
very much failed.
Note; orco textures for strand give the same texture coordinate for the
entire hair. UV maps don't work here yet.
An image texture without picture returned a '0', causing the texture code
to generate a bump normal that warped the entire shading around.
In bugreport it was showing terminator issues with ray shadow.
Terminator problems can still occor with more extreme bumpmaps though,
something to look at further.
Replaced sqrt() with the safe version sasqrt() in anisotropic.
the formula (1 - n*n) should not give negative values for n = dotproduct
of normals, but float inaccuracy can make negative zeros, as we know!
This solves, hopefully, last annoying "blotches" in hair!
raytracing with a linedist (cylinder) check. It didn't behave OK on strands
set to be more than 1 pixel (not to mention 10 pixels), and I have no time
now to fully check and code it.
Which is not really important either... In general, all 3d papers talk about
using shadowbuffer shadows for hair, which gives much nicer results for
dense volumes of polygons.
This commit restores regular (flat polygon) raytrace shadow for strands.
Also fixes some nasty bugs as reported. :)