Commit Graph

1108 Commits

Author SHA1 Message Date
Matt Ebb
e3d78dd4e1 * Fix: Disabled radius tapering on 2d curves with filled front or back. It would be
really cool to get this working solidly, but there are many potential problems with the
triangle face creation across the flat surfaces, especially when there are holes inside
the curves. Maybe this could be a fun project for someone better at this than I? :)
Taper object curves still cause similar problems...

* Made the curve radius affect the 'Nsize' curve normal drawing too, so you don't need a
bevel to see the value.
2006-08-13 08:31:59 +00:00
Matt Ebb
d3028ec70d * Shrink/Fatten for bevelled curves
This is a much faster and easier way to give a bevelled curve a taper, without
using taper curves. Each point on a curve now has a 'radius' value that you can
shrink and fatten using Alt S, which will influence the taper when the curve is
bevelled (either with a bevob, or with front/back turned off and a bevel dept
set). Alt S shrinks and fattens the selected points in an interactive transform,
and you can set an absolute radius for selected points with 'Set Radius' in the
curve specials menu.

See demo: http://mke3.net/blender/etc/curve_shrinkfatten-h264.mov

This can be a quick way to create revolved surfaces (eg.
http://mke3.net/blender/etc/wineglass-h264.mov ) and it would be very
interesting to use this radius value in other tools, such as a 'freehand curve'
tool that would let you draw a curve freehand, with the radius affected by pen
pressure, or even using the radius at each point to control curve guides for
particles more precisely, rather than the continous maxdist.
2006-08-13 07:37:51 +00:00
Ton Roosendaal
f27acb2e7c Bugfix #4872
Posemode, Wkey option "Select constraint target" did not work for Copy
Scale constraint.
Also added a check for NULL pointer, constraint targets cannot exist...
2006-08-12 12:33:24 +00:00
Ton Roosendaal
7440aba482 Compositor: finished work on node "File Output".
- It saves a file with indicated type on each change, with number
  appended denoting the current frame (like ANIM saving).
- Output filename button supports relative paths ("//")
- Shows optional preview image too
- For now, added a print on each file save as feedback

To make this option work nicely, changed the BKE_makepicstring() function
to have less globals inside, so it is more generic. Todo: allow amount of
digits in filenames to be set (to support files like tmp_123456.jpg)
2006-08-10 10:38:50 +00:00
Ton Roosendaal
86d72cb7d4 Bugfix #4810
Particle systems did not support "time offset" anymore, the varialble for
it in the object was cleared in build_particle_system() and never restored.
2006-08-09 12:53:49 +00:00
Ton Roosendaal
6ca354f660 Bugfix #4811
Videoscape export wrote color value wrong on little endian systems,
when no material was assigned to object (default color).
2006-08-09 12:36:28 +00:00
Ton Roosendaal
6e4b28968a Bugfix #4847
Metaball editmode: when editing a linked duplicate, hiding a ball caused
a crash.
2006-08-09 08:53:21 +00:00
Campbell Barton
a8461d2c40 DNA_ipo_types.h comments only
other are changes so calchandles_ipocurve only calc handels on a bezier line.
This makes bvh import faster but should also speed up internal IPO operations.
2006-08-04 14:08:21 +00:00
Johnny Matthews
8dbefad451 --Value Squeeze Node--
This material node takes an input value of any size and fits it to a sigmoid curve (value between 0 and 1) The width of the curve can set to make the sigmoid fall off faster (bigger number) or slower (smaller number) and the centerpoint (what value is mapped to 0.5) can be adjusted as well. Anyone smarter than me can feel free to tweak this and make it better.
2006-08-03 13:22:51 +00:00
Kent Mein
6e2e7ad1b7 renamed struct bNode->new to struct bNode->new_node
so it doesn't conflict with c++
(Needed for SkyGen coded)

Kent
2006-08-02 17:29:34 +00:00
Matt Ebb
70853bbcc7 * replaced round() with (int)(x + 0.5f) to help some compilers 2006-08-02 01:27:57 +00:00
Matt Ebb
9ce909cbd9 Three shading nodes by Nathan 'Cessen' Vegdahl. He doesn't have any time at the
moment, but they can useful so rather than let them go to waste I've merged and
committed them.

* Camera Info
Input, just provides a view vector, view z depth, view distance

* Scalar Math
A bunch of various mathematical operations on values

* Vector Math
A bunch of various mathematical operations on vectors
2006-08-01 01:12:01 +00:00
Brecht Van Lommel
e168d67b32 ImagePaint Refactoring:
- ImagePaint now uses ImBuf directly, and the rect blending functions
  were moved into the imbuf module.
- The brush spacing, timing and sampling was abstracted into brush.c, for
  later reuse in other paint modes.

Float ImagePaint support.

Textured Brushes:
- Only the first texture channel is used now.
- Options for size and offset should be added, but need to find some space
  in the panel, or add a second one ..
2006-07-31 15:53:03 +00:00
Matt Ebb
3650abf328 A couple of compositing nodes:
* Combine RGBA
Basically the opposite of separate RGBA, brings 4 value channels into a single
RGBA image). Has interesting possibilities for reordering channels, when used
with separate RGBA!

* Dilate/Erode
Originally written by Brecht van Lommel, with some minor modifications and
tweaking by myself. Positive distances dilate, negative distances erode.

* I also added the 'value' field to the hue/saturation node. Minimal extra cost,
and can be handy.
2006-07-31 02:24:35 +00:00
Brecht Van Lommel
f893d950a1 Image Paint:
- Code for brush spacing and timing was rewritten, making spacing more even.
  Example: http://users.pandora.be/blendix/brush_spacing.jpg
- Instead of Stepsize for regular brushes and Flow for airbrushes, there is
  now Spacing for both, and Rate for airbrushes.
- Airbrush now works more like it does in the Gimp now, by maintaining the
  spacing even if the brush moves faster than the painting rate.

- Some preparations to make brushes work in texture paint mode.
2006-07-28 00:56:35 +00:00
Brecht Van Lommel
4ee3515bf1 Brush Datablock:
- Added a new Brush datablock, only used by image paint, but intended
  to be used in texture paint, vertex paint, weight paint and sculpt
  mode also.
- Being a datablock, these brushes can be saved, appended and linked.
  They have a fake user by default, to make sure they are saved even if
  not selected.

Image Painting:

- Replaced the img module with C code in imagepaint.c
- Airbrush is no longer a separate tool, but rather an option that can
  be used for soften, smear and clone also.
- Blend modes mix, add, subtract, multiply, darken and lighten have been
  added, code taken directly from vertex paint.

Note to project files maintainers:

- The img module was removed from SCons and Makefiles, and this should
  be done in other build systems also. I'll wait to remove the module
  from cvs, to not break compilation.
2006-07-26 22:29:23 +00:00
Ton Roosendaal
662d49f076 Bugfix #4773
The VectorBlur node crashed when it didn't get a RGBA type image as
input (like using Alpha as input). Added typeconversion for it.

Note: the Z input and Vector input are not converted, but checked for.
When an improper type gets connected to these inputs, an error is
printed in console.
2006-07-23 09:54:22 +00:00
Ton Roosendaal
a6b0c136bb Bugfix #4770
When adding a new node in a group, the call to refresh input/output
sockets was called after a compositing update was executed.
Just moved this call 2 lines up.

This also uncommits the fix from Joilnen, the stack pointers in the node
system are *per definition* set. If NULL, it's an indication something
else is wrong.
2006-07-23 09:10:05 +00:00
Joilnen Leite
9868544a41 fix for bug #4770
.
2006-07-23 02:56:45 +00:00
Nils Thuerey
12a1fc374e - fixed manual viscosity bug (#4733)
- added some more free/copy checks for bug 4094, but
  still not enough
2006-07-20 15:27:55 +00:00
Ton Roosendaal
49bbb326b1 Bugfix #4736
Composite: the Translate Node only worked in some cases (pixel processor
call), and not for:

- filter
- seperate rgba
- conversion of buffer types (value to rgba etc)

Blur still doesn't either, but that code is too optimized to add quick.
Will put on todo for checking on better unification of translations.
2006-07-19 19:46:42 +00:00
Peter Schlaile
cb09f5cda8 == Frameserver ==
Serious bugfix: Make it work on windows (including ESC-Handling)
closes Bug #4477.
2006-07-14 13:32:29 +00:00
Ton Roosendaal
464f3bd966 Three more valgrind discoveries:
- readfile.c, version patch for new toolsettings used a malloc, using
  unitialized variables
- despgraph, another malloc changed to calloc
- timer code for render ESC: unitialized variable in struct
2006-07-13 11:36:26 +00:00
Peter Schlaile
289259c09c == FFMPEG ==
Bugfix #4596 and #4594 by rewriting the file extension management.
The code is now _much_ nicer ;-)
2006-07-09 13:05:09 +00:00
Ton Roosendaal
cf313f867d Bugfix #4647
The raytracer wasn't calling node shaders yet, so results showed only
shading for the base material.
This now works, but there's a conflict in the internal Blender shader that
makes recursive raytracing with nodes unpredictable. Basicaly the conflict
is that when a ray wants to shade a point, it should be able to check the
material for mirror properties, but this is undefined for node trees...

Probably we need to separate raytrace entirely from material shading. Is
a good topic for NodeShader 2.0, when we really split up materials in
shading components.

I'll add a note in the release log about this. Best results you get now
when you don't include mirror/ray-transp insde a node tree, in that case
a regular material mirror can render that material perfectly.
2006-07-09 11:54:41 +00:00
Ton Roosendaal
00b55aba24 1)
The F3 key 'save rendered image' made inconsistant choices to save either
in jpg or tga, when the output panel was indicating to render to movies.
Even worse, it was sometimes saying 'save jpg' and saved a targa!

Made it consistantly save .jpg now, since tga isn't a good common format.

2)
Forgot to commit transform.h for previous bugfix in transform numeric input
2006-07-08 13:18:57 +00:00
Ton Roosendaal
46110ec06b Bugfix: (own todo)
When you rename a generated image, like "Render Result" or "Composite"
the float buffer in this image had to be copied, otherwise a next render
will make the renamed Image buffer invalid.

Note that renaming will not mean the images get packed or saved! So on
reloading .blend they're gone.
2006-07-07 17:08:04 +00:00
Jiri Hnidek
f51c8f276c - bug fix for #4606,
too small size of base MetaBall object caused infinitive loop
2006-07-07 11:10:53 +00:00
Brecht Van Lommel
ec1c1615bc Fix for bug #4600:
- Array modifier crash with vertex merging. There was a missing check
  for a vertex being merged with a vertex that was merged with itself.
2006-07-06 21:43:09 +00:00
Andrea Weikert
86ce9c71b6 [ #4585 ] - fix for reading videoscape files
- yet again a file path that was too short ;)
2006-07-06 17:15:13 +00:00
Ton Roosendaal
e460747680 Bugfix #4630
They're getting rare, but here's another bugfix from issue since NaN days:

Orco texture coordinates for surfaces didn't work *at all*!
(Try 2 nurbs spheres in 1 object). Fixed!
2006-07-06 14:20:44 +00:00
Ton Roosendaal
be3c3a24b5 Bugfix #4620
Hurmf, then you bring back old backbuffer, and they want to have fields
work on that!
OK... here it is. Although using Compositor features will make this much
easier and advanced to control. :)
2006-07-05 17:32:49 +00:00
Ton Roosendaal
28f08bd122 Plumiferos report:
Bone renaming goes over a complex series of checks, which includes
checking all objects that have relations to the armature. the call
modifiers_usesArmature() didn't check properly for existing pointer...
2006-07-05 15:59:26 +00:00
Ton Roosendaal
8640615ac6 Bug #4616
Node Editor: selecting Material buttons in header crashed, when no buttons
window was opened. Code didn't check for proper window it was called from.

Also: autoname "Cyan" was spelled dutch! :)
2006-07-05 11:33:09 +00:00
Ton Roosendaal
0458c50f63 Bug #4597
More Driver fixing...
Commit of over week ago to make drivers update correctly on cyclic
situations, forgot to fix another driver call... which then got called
always with 'current frame' set to zero.

Error only happened with animated (Ipos) Object-Object driver relations.

Also in this commit: when loading file, lattices with hooks were not
updated correctly.
2006-07-04 10:19:26 +00:00
Ton Roosendaal
d55b5240b9 Composite node "Separate RGBA" didn't do a typecheck.
Errors happened when inputting a Normal or Value buffer in this node.
2006-07-03 15:25:11 +00:00
Ton Roosendaal
71de727f3e Bugfix #4583
Shader Group nodes crashed on render... it was accidentally calling
composite free-buffer option.
2006-07-03 12:08:08 +00:00
Matt Ebb
4ca0e9070a * Fix: Shading nodes 'value' and 'RGB' were still set to the old node class
Generators' so they didn't appear in the add menu under 'Input' where they
should be.
2006-07-03 07:00:08 +00:00
Ton Roosendaal
3c1956f5cd Bugfix #4556
When a curve guide animates, it doesn't correctly work on dynamic particles.
This because the guides work on a fixed starting position (the birth of
particle) and then defines a full path for the entire particle. It is clear
this was only coded with static particles in mind...

Nevertheless, I've added a line of code to at least put the curve guide
on correct location for the moment a particle gets born.

Report moved to the todo tracker; this should be a spec for particle recode
2006-07-02 12:46:41 +00:00
Ton Roosendaal
ae59f05c85 Bugfix #4563
Wave Modifier defaulted to Y waves, even when both X and Y buttons were
disabled. That case isn't very useful, nevertheless... if buttons allows it
then it should just work!
2006-07-02 10:36:26 +00:00
Ton Roosendaal
5e30fb119c Bugfix #4561
Sequence renders, calling scenes with compositing, didn't execute composite
correctly. Confusement caused by the rule that a "Render" handle has same
name as Scene, which gives conflict for the case when a Scene has
sequencing with Scene strips with its own scene in it.

The previous solution for that conflict caused composite not to work. This
commit solves that, but it is still hackish. Main reason is the still
bad global G.scene, in use by compositor.
2006-07-02 09:56:41 +00:00
Ton Roosendaal
d173a0c8de Bugfix #4528
In compositor you can mix RGBA and Value buffers freely, but with one
exception... the Composite (output) node!

This solves a crash when connecting a Alpha socket to RGBA input in
Composite node.
2006-06-28 17:59:36 +00:00
Ton Roosendaal
853cf24276 bugfix #4526
Depsgraph fix: the signal DAG_object_flush_update() should flush changes in
'data' to all object users of that data, not only in current scene.

Error was that switching scenes sometimes showed invalid derivedmesh data,
with bezerk drawing.
2006-06-28 14:29:57 +00:00
Ton Roosendaal
3d34bec6e4 Bugfix #4520
Boolean modifier allowed to be added after subsurf, but it doesn't support
that. Added "eModifierTypeFlag_RequiresOriginalData" flag to prevent this
from happening in UI.
2006-06-28 14:02:11 +00:00
Ton Roosendaal
d87b12a865 Bugfix #4488
On file load, a Curve deformation was not initialized when it
wasn't in a visible layer.
2006-06-27 10:51:35 +00:00
Jiri Hnidek
605388b449 - Bug fix #1931
metacubes shouldn't disapear, when dx, dy, dz is too big, thanks
   arsouille for pointing at right part of code (it was the oldest bug in
   bug tracker)
2006-06-27 09:37:12 +00:00
Ton Roosendaal
2670797e8a Plumiferos report:
The new Material "LightGroups" only worked with lamps in visible layers.
Now also lamps from the group that are not visible are included for
rendering, ensuring that a lightgroup always works on that material,
disregarding layer settings (unless lamp is type 'layer lamp').
2006-06-26 17:50:48 +00:00
Ton Roosendaal
1fa9af5dbc Plumiferos report: Ipo for material 'hardness' didn't go beyond 128
(Note; this value is stored in the curve when you make it, so you have
to remove the curve and insert it again...)
2006-06-26 16:57:44 +00:00
Peter Schlaile
d6e7eb27ed == Frameserver ==
Set SO_REUSEADDR on server-socket, since otherwise, frameserver will barf on
second start.
2006-06-26 13:22:55 +00:00
Ton Roosendaal
1aab013bcc Bugfix #4483
Fix for bugfix! The code added to solve Driver lag should not be called
when Bones in Armature are drivers (only when Objects are drivers).
2006-06-26 11:29:33 +00:00