Commit Graph

4307 Commits

Author SHA1 Message Date
9bf198bbca Finished hair strand render project (well, for release), also with a good
doc;

http://www.blender3d.org/cms/Hair_Strand_Rendering.722.0.html

- added width control for strands
- made tangent (anisotropic) render an option
  (so you can render strands more solid, like metal/wood)

Also:
- ALT+A anim playback with static particles made cursor flashing
2005-11-12 16:22:10 +00:00
Mika Saari
0c4172ffb5 Undo for editfont fixed. Paste functionality crashed the blender
in case the paste buffer+length of text was bigger than MAXTEXT ->
fixed this, also a error is shown to the user now. editfont.c needs
still some cleaning but will discuss about this with kaito and intrr.
2005-11-12 15:40:37 +00:00
3770db2517 Removing an extra semi-colon that caused some grief 2005-11-12 14:39:14 +00:00
6f045c44d3 Bugfix: when editing a Curve Guide, and deleting all but one control point,
the path code crashed.
2005-11-12 11:58:37 +00:00
c7c7ccccae Hairdresser request;
"Additive" Guides. See also:
http://www.blender3d.org/cms/New_Particle_options_a.721.0.html

This Guide type uses the falloff distance to also define how much the
particle (or hair strand) goes over the path, allowing to create local
extremes, or only local particle generating or hairgrowth. Nice for
spiky haircuts!
2005-11-12 11:54:58 +00:00
18b8f66a68 Particles now are generated from subsurfed coordinates.
Note that the current default generates particles based on the original
amount of vertices and faces, this for vertex group support (which is not
subdivided with modifiers). That means that particles generated on
subsurfed faces still have minor approximation errors.

Note for DerivedMesh users; I've added a new API call:
	float *mesh_get_mapped_verts_nors(Object *ob);
Which returns an array of 2 * 3 * float size, containing the vertices and
normals, deformed and subsurfered, but only the original me->mvert amount.
Works in all non-editmode cases.

Is in use now for vertex/weight paint and particles.
2005-11-12 10:35:14 +00:00
0219819c40 Inserted a line just above a variable declaration, causing MSVC to
complain :)
2005-11-11 20:54:08 +00:00
b37540ef61 Three particle fixes;
- "Disp" option allows to go back to zero, effectively disabling the entire
  particle generating.
- When parenting guides to an emitter the depgraph sees a cyclic relation,
  which caused not updating the particles correct on loading it.
- Moved creating guide Cache completely outside of the particle loop,
  should make it faster to use with large amounts of particles and objects.
2005-11-11 19:41:58 +00:00
fe9bd18a84 Bugfix #3372
When using the pulldown menus for exiting weightpaint, it did not free
octree tables for weightpaint, giving an error message on re-entering
weightpaint.
2005-11-11 18:58:45 +00:00
66867140dd * Fixed an old, old, old problem where the top camera arrows
couldn't be seen in a side on view because they had no wireframe.
2005-11-11 17:26:08 +00:00
Ken Hughes
c6d22dd44e -- various fixes for Mesh.c:
* add some protection against accessing MVerts/MEdges/MFaces which have
   been deleted
   * correct cut-and-paste bug in faces.delete() method
   * correct some compiler warnings
2005-11-11 16:17:29 +00:00
Alexander Ewering
3d6564740a Fix "Copy Attributes -> Font Settings" to copy the new vars (wordspace,
underline stuff) as well.

Attempt at fixing editmode undo, but not successful. I'll create a bug-
report and assign it to Mika, because I only understand "train station"
(German saying :-) when looking at the code.
2005-11-11 15:19:15 +00:00
d7ed26e3c6 Deleting Effectors (deflectors or Fields) now update particle systems and
softbody. (report #3385)
2005-11-11 10:46:26 +00:00
6d42aebc78 Fix #3382
Alt+D on a Camera or Lattice did not create a linked copy. This was an
ancient convention from the dark ages (1995) still. :)
2005-11-11 10:23:59 +00:00
bdec277cc6 This is the famous proverbal example of someone trying to get a 4 legged
table stable... you keep correcting leg sizes until no table is left
anymore! :)

This commit restores the displacement direction from 2.37a code, which was
negated 5 months ago to fix a change in renderconverter.c, but somehow is
not needed anymore. The regression displacement file now renders OK again.
2005-11-11 10:14:27 +00:00
8c98fbb0a9 Bugfix #3379
Fixes in WeightPainting accidentally passed on weightpaint values for the
(color) Vertex Paint option. (Opacity for example used weightpaint setting)
2005-11-11 10:04:56 +00:00
eda55cea43 Bugfix #3370
Border select on a Meta strip in Sequencer didn't work. Seems to be a year
zero bug :)
2005-11-11 09:50:22 +00:00
fbee75fef3 fixed raysensor, hooked up a few more bullet method: force, torque etc, + 'local'. cosmetic change in physics-engine menu. 2005-11-11 05:02:14 +00:00
07b826409a More hairdressing goodies; in the 'velocity' section of the Particle
buttons you now can add a vertexgroup to define speed (or strand length).

http://www.blender.org/bf/rt3.jpg
2005-11-10 21:23:08 +00:00
095eb2400a * Fixed a little problem when using both F* keys and header buttons
to change buttons tabs wouldn't switch quite right.
2005-11-10 20:07:17 +00:00
0dc288371f Bug in previous commit today; sound buttons crashed...
And: renamed "Num" to "Amount" for particle buttons.
2005-11-10 19:51:20 +00:00
d89a7d530b Fix: editing curves, which are used to guide particles, update particles
now.
2005-11-10 19:27:31 +00:00
bfddf7f4af - Static particles now draw shaded too!
http://www.blender.org/bf/rt3.jpg
  It uses Material color and specular, like for the solid faces.
- Depgraph Fix for changing object layers, should re-evaluate dependencies
- Fix for setting curves to 3D by default (on adding a Guide field)
2005-11-10 19:00:10 +00:00
4c76b74b00 added changing the extending / extrapolation type of the IPO curves of selected actions in the action editor (to the menu - code to handle hotkey (to rise a popup) is there too but unused & untested now). 2005-11-10 18:12:53 +00:00
44ed7f25b7 Static particles; rotating the emittor caused an error, this due to a
missing speed vector rotation. :)
2005-11-10 16:55:24 +00:00
f8845d5d11 The long awaited Particle patch from Janne Karhu
http://www.blender3d.org/cms/New_Particle_options_a.721.0.html

There's no doubt this patch had a lot of good ideas for features, and I
want to compliment Janne again for getting it all to work even!
A more careful review of the features and code did show however quite some
flaws and bugs... partially because the current particle code was very much
polluted already, but also because of the implementation lacked quality.
However, the patch was too good to reject, so I've fixed and recoded the
parts that needed it most. :)

Here's a list of of most evident changes in the patch;

- Guides support recoded. It was implemented as a true 'force field',
  checking all Curve path points for each particle to find the closest. Was
  just far too slow, and didn't support looping or bends well.
  The new implementation is fast (real time) and treats the paths as actual
  trajectory for the particle.
- Guides didn't integrate in the physics/speed system either, was added as
  exception. Now it's integrated and can be combined with other velocities
  or forces
- Use of Fields was slow code in general, made it use a Cache instead.
- The "even" distribution didn't work for Jittered sample patterns.
- The "even" or "vertexgroup" code in the main loops were badly constructed,
  giving too much cpu for a simple task. Instead of going over all faces
  many times, it now only does it once.
  Same part of the code used a lot of temporal unneeded mallocs.
- Use of DerivedMesh or Mesh was confused, didn't work for Subsurfs in all
  cases
- Support for vertex groups was slow, evaluating vertexgroups too often
- When a vertexgroup failed to read, it was wrongly handled (set to zero).
  VertexGroup support now is with a name.
- Split up the too huge build_particle() call in some parts (moving new code)
- The "texture re-timing" option failed for moving Objects. The old code used
  the convention that particles were added with increasing time steps.
  Solved by creating a object Matrix Cache.
  Also: the texture coordinates had to be corrected to become "OrCo".
- The "Disp" option only was used to draw less particles. Changed it to
  actually calculate fewer particles for 3D viewing, but render all still.
  So now it can be used to keep editing realtime.

Removed;

The "speed threshold" and "Tight" features were not copied over. This
resembled too much to feature overkill. Needs re-evaluation.
Also the "Deform" option was not added, I prefer to first check if the
current particle system really works for the Modifier system.

And:

- Added integration for particle force fields in the dependency graph
- Added TAB completion for vertexgroup names!
- Made the 'wait cursor' only appear when particles take more than 0.5 sec
- The particle jitter table order now is randomized too, giving much
  nicer emitting of particles in large faces.
- Vortex field didn't correctly use speed/forces, so it didn't work for
  collisions.
- Triangle distribution was wrong
- Removed ancient bug that applied in a *very* weird way speed and forces.
  (location changes got the half force, speed the full...???)

So much... might have forgotten some notes! :)
2005-11-10 16:01:56 +00:00
67d2dae4a9 - minor fix of snprintf defines for MSVC
- fix for 2d domains was part of the previous checking as well, btw. :)
2005-11-09 11:10:15 +00:00
e3f681da67 - popup menu now aborts by default
- changed directory/prefix input (only 1 string instead of two, more similar to render output settings now)
- changed reading/writing of surface files
- slightly enhanced surface smoothness
2005-11-09 07:56:26 +00:00
Ken Hughes
564b629013 -- When storing a mesh, allow TFaces without defined UV coordinates to use
some default values instead of throwing an exception.  Also use only the
   first four UV coordinates supplied in the list.
2005-11-09 00:38:56 +00:00
Stephen Swaney
960a872431 Bugfix: #3377 Epy docs missing links
Link to sys was broken.  need to be  L{sys<Sys>} for name to match.
2005-11-08 22:11:19 +00:00
Ken Hughes
1ba15893bd -- changes and bugfixes from Cam:
-- calling mesh.getFromObject(obj) with mesh object now also
     copies material properties
  -- mesh.quadToTriangle() takes a parameter to duplicate both
     Ctrl-TKEY and Shift-Ctrl-TKEY actions
  -- assigning None to mesh.verts "clears" the memory allocated
     to the mesh (equivalent of Mesh.New(), but on an existing
     mesh)
  -- exception handler message for mesh.faces[i].uv = [..] more
     clear (uv attribute only accepts tuple, not list)
  -- fixed bug for meshs with deformed verts when deleting verts
     (deformed verts deleted and repacked correctly now, I think)
2005-11-08 21:50:30 +00:00
Ken Hughes
c217188a62 -- Previous commit using PyDict_Keys left new reference around. Change to use
PyDict_GetItem() instead, and clean up string manipulation.
2005-11-08 18:46:55 +00:00
19b75ae86d uh next time i read properly before commit, and not only from the nice webcvs diff.. 2005-11-08 17:57:04 +00:00
15beb7db42 a little tweak to make curve handles always copy the type from the previous handle 2005-11-08 17:47:57 +00:00
33648819f7 BPython docs:
bug #3367 reported by Chris Want (thanks): ob.mat documentation was
wrong (was not updated); that attribute returns the world space matrix,
not the local one.
2005-11-08 17:23:20 +00:00
cd7ca03034 *work around for PyDict_Contains 2005-11-08 16:27:58 +00:00
bcd723c0af Make preview line not draw over hidden areas for loopcut 2005-11-08 15:04:14 +00:00
ea1d6d54d0 #3375
CutEdgeLoop now ignores hidden edges
2005-11-08 14:52:35 +00:00
Alexander Ewering
ece7963545 Just have been told fmodf is C99, so I replaced it with fmod and casts... 2005-11-08 12:56:32 +00:00
Alexander Ewering
bd6d3d1439 Replaced my noble-prize worthy "float modulo" implementation with fmodf(). 2005-11-08 12:53:36 +00:00
Alexander Ewering
5b81dcdfc1 Changed my mind and made the "Strobe" value a float - this way you can get
a strobe effect synced exactly to a beat, for example, by using non-integer
values.

Is it just me, or are there recently a lot of crashes in sequencer when
using audio strips?
2005-11-08 00:46:39 +00:00
Alexander Ewering
543f54aa1d New 'feature' for image/movie strips: Strobe
In the NKEY flying panel, you can set "Strobe" to something other than 1
for only displaying each nth picture of the strip. You know the effect
from movies :)

(I put this into the NKEY panel rather than as a effect because effects
only affect single frames (?) while this rather has to do with the
timing... like "Reverse")
2005-11-07 23:13:00 +00:00
f09a3611be *armature api for python
- don't get too excited
- allows you to get armatures from a scene
- makeEditable()/saveChanges() puts the armature into out of editmode (pythonically)
- Armature.bones is a dictionary that contains all the bones in the armature and can be iterated
- getters are available for:
name,
roll (dictionary) keys are BONESPACE, ARMATURESPACE
head (dictionary) keys are BONESPACE, ARMATURESPACE
tail (dictionary) keys are BONESPACE, ARMATURESPACE
matrix (dictionary) keys are BONESPACE, ARMATURESPACE
weight
deform_dist
subdivisions
options (list of constants)
parent
children

Setter work only in editmode. Some are not fully implemented.
Type class is embedded in the module. This means the construct is called as follows:
Blender.Armature.ArmatureType()

import Blender.Armature as Armature
arm = Armature.Get('myarm')
for name, bone in arm.bones.items():
...print name, bone, bone.matrix['ARMATURESPACE']

more documentation is forth coming. This is an alpha for this api.
2005-11-07 20:03:32 +00:00
a39559ea11 *change to the way constants are printed 2005-11-07 19:36:50 +00:00
cce655b5e7 - warning fixes
* various warnings the python api is putting out
2005-11-07 19:34:44 +00:00
Alexander Ewering
f7c955b18e First part of sequencer attack:
Sequencer image preview finally supports zooming out. Yay!
2005-11-07 13:22:23 +00:00
Ken Hughes
979c28bf06 -- Clean-up of Effect and Particle modules; since particle was the only
remaining effect type, it didn't make much sense to leave things
   implemented in two separate files.  Changes include:
   * two bug fixes (the getChild() and getMat() methods were using floats
   instead of shorts)
   * performing clamping on input values
   * implementing attributes using tp_getset
   * merging Effect and Particle functions: the Particle module exists in
   name only, with the Particle.New() and Particle.Get() functions
   remaining for backward compatibility (they are in fact identical to
   Effect.New() and Effect.Get() functions)
   * update of doc/Effect.py (including remove all old references to wave
   and build effects)
2005-11-07 00:22:05 +00:00
Ken Hughes
0089c0bc53 -- Added Object.effects, a read-only attribute which returns a list of the
particle effects belonging to an object (based on patch from jms)
2005-11-06 22:29:49 +00:00
25dc3355f4 Bugfix #3358
Deleting a shape key object could crash, when ipowindow open and showing an
active key.

Also: patch from tracker to increase limits of buttons for background image
offset.
2005-11-06 19:02:14 +00:00
d1be55f41c Small fix to allow relative filenames for textfiles. 2005-11-06 16:32:54 +00:00