Commit Graph

1754 Commits

Author SHA1 Message Date
Campbell Barton
9dcf337e93 image display option for viewing non square pixels (x/y aspect for each image) - useful when editing UV coords with textures that have been resized to values that run fast in openGL (256/512/1024) but have lost their original aspect ratio, especially useful when rotating UV's.
Bumped the subversion to 2, so the default aspect is set to 1:1.

Made "Repeat Image" option time image drawing and bail out early if its taking too long. (quater of a sec max) this could be avoided if the texture was drawn on a quad, but that wouldnt support other image draw options.
This is a good short term solution because it was possibly to lock up blender if you zoomed out a long way then enabled "Repeat Image".
2007-09-20 22:38:04 +00:00
Campbell Barton
78a20a930a fixed copy between UV layers.
made the UV layer menu a generic functions (can make a menu from the names of any custimdata layer type)
added a menu in the UV window for selecting teh editnmode UV layer - If there ends up not being enough room in the header this may need to be removed.
2007-09-18 19:39:25 +00:00
Campbell Barton
0a2b8b1308 A user submitted a BVH file that took a long time to import (I didnt end up finishing since it was so slow)
this is mainly because adding pose keyframes recalculates every handle so importing became increasingly slow.

added a 'fast' argument to insertkey that python api's insertPoseKey can make use of since it alredy accepts a 'fast' option.

The ~4450 frame, 31 bone BVH imports in ~108sec now

Seperated editmode switch statement in space.c's event handling,
if editmode is disabled, or the images is a render or composite, UV editing operations are ignored.
In previous releases it has given an annoying warning if selecting or scaling is attempted when out of UV/Face mode.
2007-09-18 06:41:29 +00:00
Joshua Leung
d86a03113d Another purge of compiler warnings (some of which I've been getting for a while) as a warmup exercise. 2007-09-18 06:33:24 +00:00
Joshua Leung
063fbdc2a4 Attempted bugfix for TrackTo constraint - reverting the only change (that I've picked up so far) that I made to the code of the TrackTo constraint. Apparently the Align to Target feature was broken... 2007-09-17 11:43:48 +00:00
Joshua Leung
52f551678b == Action Editor - Copy and Paste Tools ==
Now it is possible to do Copy+Paste in the Action Editor, like in the IPO Editor. There are two new buttons in the Action Editor header for this, using the familiar icons.

* To copy...
Select the keyframes you wish to copy, and the channels that they occur in (except for ShapeKey mode, where it is not possible to select channels). Click copy button.
* To paste... 
Place the current frame where you want the first of the keyframes from the buffer is to be pasted. Select all channels you wish the keyframes to be pasted into. Click paste button. 

Currently, keyframes are only pasted into 'compatible' curves (i.e.  LocX keyframes can only go to LocX, and so on). This may change after user feedback, if this is found to be too restrictive.

== Code Changes ==
I've made a few changes which allow this code to be nicer. 
* renamed insert_vert_ipo to insert_vert_icu, as that represents its actual purpose better (and changed all occurrences I could find)
* created a new function, insert_bezt_icu, which does the actual inserting of provided BezTriple data to a given IpoCurve 
* recoded insert_vert_icu to use this new function, and also the IPO-Editor keyframe pasting (i.e.  pasting in Editmode)
2007-09-17 11:41:12 +00:00
Matt Ebb
023a929363 * For some reason this didn't go through last night - bumped the
subversion for lamp curve mapping loading.
2007-09-17 11:30:45 +00:00
Matt Ebb
90daa8f811 * Extra lamp falloff options, including custom curve!
This adds some new lamp attenuation options to the Lamp panel, replacing the old 'Quad' button. Yes, the panel layout is still nasty here, but I've ignored it for now to address properly in the panels cleanup work.

* Constant
http://mke3.net/blender/devel/rendering/falloff-constant.jpg
Lamp doesn't decay with distance

* Inverse Linear
http://mke3.net/blender/devel/rendering/falloff-invlinear.jpg
Default, and same as in older Blender without 'Quad' on. Decays linearly, with 'Dist' value as the lamp's half-energy-distance

* Inverse Square
http://mke3.net/blender/devel/rendering/falloff-invsquare.jpg
A sharper, more realistic decay, good for most electric lights (i.e. not sunlight). This is similar to the old Quad option with slight changes.

* Lin/Quad weighted
Exactly the same as in older Blenders with the old 'Quad' button enabled. When this setting is chosen, two sliders are shown, 'Linear' and 'Quad' (previously Quad1 and Quad2), which controls the 'linearness' or 'quadraticness' of the falloff curve. Lamps in old files with the 'Quad' button on will be initialised to this setting.

But much better for precise control over the lamp falloff now is:

* Custom Curve
This shows an extra 'Falloff Curve' panel, where you can use the standard Blender curve UI control to precisely control how the light falls off. The Y axis is intensity, and the X axis is distance, stretched over the length of the 'Dist' value.

Some example curves and renders:
http://mke3.net/blender/devel/rendering/falloff-curve1-curve.png
http://mke3.net/blender/devel/rendering/falloff-curve1.jpg

http://mke3.net/blender/devel/rendering/falloff-curve2-curve.png
http://mke3.net/blender/devel/rendering/falloff-curve2.jpg

http://mke3.net/blender/devel/rendering/falloff-curve3-curve.png
http://mke3.net/blender/devel/rendering/falloff-curve3.jpg (whee)
2007-09-16 13:50:34 +00:00
Campbell Barton
3a90f211d2 new view option, SolidTex, to draw textures in solid mode.
In the view panel as well as the shortcut Shift+T

this works in editmode as well as object mode

giving results like this
http://members.optusnet.com.au/cjbarton/temp1.jpg

where before you could only see textures in textured draw type like this
http://members.optusnet.com.au/cjbarton/temp2.jpg
2007-09-15 18:12:16 +00:00
Campbell Barton
b2a8199d4b added a transform panel to the UV/Image window - at the moment it sets UV and teh cursor location.
added a stap menu to the UV/Image window for snapping the selection and cursor.
reverted to drawing face dots in editmode when Limit Selection is enabled. even though its not needed for selection its consistent and dosnt look like modes are being changed.
2007-09-15 10:43:13 +00:00
Campbell Barton
f6aa903e10 * added functions to copy between UV and vertex color layers.
* added CustomData_set_layer_active_index and CustomData_set_layer_render_index
  since they did not accept values from CustomData_get_active_layer_index and CustomData_get_render_layer_index
* fixed some warnings
* made the colored edge in active face draw mode only display when texture mode enabled.
2007-09-12 02:13:35 +00:00
Geoffrey Bantle
4bfa934ff3 -> Added mesh properties to modifiers
Mesh properties layers were not getting copied in the modifier stack.
2007-09-10 22:56:29 +00:00
Geoffrey Bantle
5e7dc24042 -> Fixed initialization of Octree Resolution and Tri2Quad threshold
add_scene() in scene.c didn't properly initialize the octree resolution
for new scenes or the join threshold for Triangle to Quad conversions.
2007-09-10 22:52:32 +00:00
Campbell Barton
0bd32f3ac6 Changes to "Face Select" mode
* Does not indicate that UV's exist, nor does it add UV's when used.
* Only accessible for texturepaint, vertexpaint and weightpaint from a button in the header (Paint Selection Mask)
* Not accessible from the mode menu, this is only an option that applies to paint modes.

This dosnt effect DNA, face select (G_FACESELECT) can be enabled at any time but is only used when paint modes are enabled.

Other changes
* UKey is uv unwrap in editmode, Ukey for undo was editmode only anyway.
* UVCalc in editmode adds a UV Layer if there is not one alredy.
* texture draw in editmode does not draw the face dots (they are get in the way of texturing)
* some missing updates were added.
* removed manipulator from when paint modes are enabled since the manipulator is not drawn in the 3d view.
2007-09-10 19:32:44 +00:00
Martin Poirier
1f0b07c37b Version bump to 2.45 and splash screen for stable release 2007-09-10 16:29:31 +00:00
Campbell Barton
e8a808da24 UV Editing is now done in editmode rather then UV/Face Select mode.
Notes
* you cant edit UV's in the image window in "UV Face Select" mode. (removed UV from the name)
* going into Face Select mode no longer adds UV's and does not need UV's to work.
* The UV Calculation menu is now in editmode (Alt+W)

Todo..
* Image replace - partly broken in stable also.
* Rotate/Mirror UV/VCol are still only in Face Select mode.
* Hide/Reveal is not quite right, (issue with editmode flushing)
2007-09-10 12:26:36 +00:00
Ben Batt
df1e3f1c49 Fix for edgesplit crashes reported in bugs 6695 and 7142. The problem, as
found by Riku Palomäki, was that "bridge" vertices (which connect two or more
faces that don't share edges) were not being included in the maximum final
vertex count calculation (used for memory allocation, hence the crashes).

Unfortunately Riku's patch actually stopped bridge vertices from being split
correctly, so I have fixed the problem by adding the maximum number of vertices
that can be generated from bridge vertices to the maximum final vertex count.

Thanks to Riku Palomäki for finding the cause!
2007-09-09 18:03:58 +00:00
Joshua Leung
6798cc26e4 Reverting commit 11974 as the setting in question, apparently causes major performance bottlenecks. 2007-09-09 11:58:03 +00:00
Joshua Leung
3a51aed18d Bugfix #6923:
NLA was calculating extensions of strips in the wrong order. This was not an issue in many cases, although it is highlighted in the following case:

[strip 1 - 'hold' is on] ----------------------------
                               [strip 2        ]

Logically, the end of strip 1 would hold on until the start of strip 2. However, the start of strip 2 was extended to the end of strip 1 instead.
2007-09-09 11:54:12 +00:00
Joshua Leung
f5f18044df Materials setting "TraShad" is now on by default for all newly created materials. 2007-09-08 11:04:23 +00:00
Matt Ebb
0ba5295404 * QMC Raytracing
This introduces QMC sampling for use in glossy reflections/refractions, soft raytraced shadows, and ambient occlusion.

This work includes many new features and speed-ups, so check out the nice docs here:

Glossy Reflection/Refraction
http://www.blender.org/development/current-projects/changes-since-244/glossy-reflectionrefraction/

Raytraced Soft Shadows
http://www.blender.org/development/current-projects/changes-since-244/raytraced-soft-shadows/

QMC Sampling
http://www.blender.org/development/current-projects/changes-since-244/qmc-sampling/

Many thanks to Brecht van Lommel for some initial code snippets and for reviewing the patch, and especially to Alfredo de Greef who gave me a lot of guidance and help along the way!
2007-09-07 03:48:50 +00:00
Andrea Weikert
356ab94373 == imagebrowser ==
Initial commit of imagebrowser in trunk.
BIG COMMIT!

Main changes:
* completely reworked imasel space
* creation and storage of the preview images for materials, textures, world and lamp
* thumbnails of images and movie files when browsing in the file system
* loading previews from external .blend when linking or appending
* thumbnail caching according to the Thumbnail Managing Standard: http://jens.triq.net/thumbnail-spec/
* for now just kept imasel access mostly as old imgbrowser (CTRL+F4, CTRL+F1) a bit hidden still.
* filtering of file types (images, movies, .blend, py,...)
* preliminary managing of bookmarks ('B' button to add, XKEY while bookmark active to delete)

More detailed info which will be updated here: http://wiki.blender.org/index.php/User:Elubie/PreviewImageBrowser

Places that need special review (and probably fixes):
* BLO_blendhandle_get_previews in readblenentry
* readfile.c: do_version and refactorings of do_library_append
* UI integration

TODO and known issues still:
* Accented characters do not display correctly with international fonts
* Crash was reported when browsing in directory with movie files
* Bookmark management still needs some UI work (second scrollbar?), feedback here is welcome!

Credits:
Samir Bharadwaj (samirbharadwaj@yahoo.com) for the icon images.

Many thanks to everyone who gave feedback and helped so far!
2007-09-02 17:25:03 +00:00
Kent Mein
6cd6bf7d80 Updated the Makefiles removing some of the gcc specific stuff...
Basically I moved  -funsigned-char -fno-strict-aliasing
from individual Makefiles to nan_compile.mk defines for CFLAGS and CCFLAGS

Kent
2007-08-31 16:16:33 +00:00
Juho Vepsalainen
c1e9ad9c80 Hue Saturation Value node - port to material node system
This commit ports Hue Saturation Value node to the material node system.
Unlike in composite version, each value is an input. Composite node version
will be updated later to use the same scheme.
2007-08-31 07:42:06 +00:00
Andrea Weikert
ca5c21e180 * updated MSVC projectfiles with SHD_sepcombRGB.c shader nodes.vcproj
* fix for possible double free.
2007-08-30 20:32:43 +00:00
Brecht Van Lommel
8c0f96cde4 Another fix for the editmode textured draw commit, subsurf vertex color
drawing didn't work.
2007-08-28 09:30:46 +00:00
Brecht Van Lommel
f118bebc36 Textured drawing in Edit Mode
=============================

- In textured drawmode it now draws the texture, with solid mode lighting.
- UVs and vertex colors for subsurf are not computed incremental yet, so
  editing in textured drawmode then may not be as fast as the other modes.

Implementation Notes:
- Added textured drawing functions to the editmesh and subsurf derivedmeshes.
- Removed some unused, legacy subsurf code that directly used Mesh.
- Restructured texture drawing a bit to make it more clear and allow for
  editmode drawing.

(Peach feature request)
2007-08-28 08:53:36 +00:00
Joshua Leung
2252b636a3 Bugfix: Constraint Geometry Targets didn't work yet when the Target Mesh was in EditMode
It turns out that a DerivedMesh needs to be generated explicitly if one needs to be used when the Mesh is in EditMode.
2007-08-28 08:43:38 +00:00
Joshua Leung
6ab498defc Several Minor Fixes:
* Grouped Up/Down buttons in constraint panel headers, and fixed their tooltips
* Removed unused variable from action editor code
* Minor formatting in constraint.c
2007-08-23 09:42:21 +00:00
Joshua Leung
6cd036ed44 Bugfix #7091: "blender crashes when i put a constraint between two armatures"
This crash only occurred when the RigidBody constraint was used, and the toObject field was set to an armature, as the RigidBody constraint doesn't use subtargets.
2007-08-23 06:25:45 +00:00
Kent Mein
3e7fc6145f Added a couple of missing stubs to clean up some warnings...
Kent
2007-08-22 18:34:47 +00:00
Joshua Leung
f237a466c1 Minor Code Cleanup (ShapeKeys):
Added a new API method for ShapeKeys, which is useful for finding a certain KeyBlock from a Key.
2007-08-22 10:07:42 +00:00
Matt Ebb
63a801c21d * Curve tilt interpolation types
Just a quickie feature I needed here at work- the previous linear 
interpolation of tilt in curves can give nasty pinching problems 
when trying to do flowing curves like a ribbon. This commit lets 
you choose the interpolation type, between Linear, Cardinal, and 
BSpline. The code was already set up for it pretty easily, mainly 
needed to make the choice visible to the user.

Example:
http://mke3.net/blender/devel/etc/tilt_interp_types.png

Works on selected curve 'lines', menu in 'curve tools' panel in
edit mode.
2007-08-21 01:57:15 +00:00
Juho Vepsalainen
c3b1877b4f "Combine RGB" and "Separate RGB" material nodes:
These nodes allow the user to separate and combine RGB color channels
as in the composite node editor. However they don't contain Alpha
channel as it is treated separately in case of material nodes.
"Combine RGB" allows the user to use values beyond standard float range 
([0.0, 1.0]) if value input node is used to feed the value to it.
2007-08-20 11:05:14 +00:00
Campbell Barton
196a3e4104 VRML and DXF were saving all meshes that had at least one user - so all meshes in other scenes, and meshes without object users like textmesh.
used the flag LIB_DOIT to tag meshes used in the current scene and only write those.
2007-08-20 08:40:14 +00:00
Joshua Leung
909eefd46e This might fix some of the problems encountered compiling with blenderplayer or so. 2007-08-19 01:56:31 +00:00
Joshua Leung
982d45162b == PyConstraints ==
I've added the ability for PyConstraints to define a function (doDriver) that is able to directly modify values of the owner/target, so that certain setups can be created reliably. Users should take note that this is against the basic concept of what a constraint does, and that under no circumstances may they set the values of any variables controlling the transforms. For more details, check out the information in the PyConstraint template script.

I've also updated PyConstraints to be aware of geometry targets. The script template has been updated with this information.
2007-08-18 06:17:50 +00:00
Joshua Leung
373ac35c71 == Constraints - Geometry Targets Improvements ==
This commit features fixes/improvements for problems I didn't manage to fix in time for the commit yesterday.

* Now for Meshes, the normals of the vertices in the VertexGroup are averaged and used to find the 'rotation' that needs to be applied. Unfortunately, this does not work with Lattices as they do not have normals.
* Depsgraph should now play nicely with geometry targets. Before, the constrained object's location wasn't being updated after the target's geometry was modified.
2007-08-18 04:03:03 +00:00
Joshua Leung
400d77bbe2 == Constraints - Geometry Targets ==
It is now possible to use the geometry of Meshes and/or Lattices as the target of a constraint. All you need to do, is to create a new Vertex-Group and assign all the points that you wish to use as the target, then type that name into the VG: field for the relevant constraints.

One of the cases where this is beneficial is when you need to copy the location of a vertex. Now you don't need to make extra vertex-parents for that.

Additional Notes:
* The code takes the average of the locations of the nominated vertices, and puts that in world-space for constraint solving (and regular space-conversion stuff).
* Currently, rotation and scaling of points is not taken into account. The rotation/scaling used is from the object's matrix. Hopefully, this will only be a temporary problem (will be fixed soon)
2007-08-17 11:23:48 +00:00
Joshua Leung
0cc2de1b37 == Action Editor Bugfixes (BugReport #7049) ==
This commit fixes several issues related to using the Action Editor with Shapekeys. I've known about most of them for a while, so now's the time to fix that.

1) When the shapekey anim data for an object comes from an Action (key's IPO block is linked to the "Shape" action-channel), the names of the individual shapekeys is now shown. They will only do so if the Action Editor is not pinned though.

2) Slider limits for the case described above should now be sane again

3) "Add New" option from the popup menu in the Action Editor header will now convert shapekey animation data from IPO to Action if the action editor is displaying Shapekey data at the time. Many users have often found the old way of having to toggle the "running man" in the IPO-editor header, too clumsy and confusing.
2007-08-15 10:04:45 +00:00
Joshua Leung
7d93e1ec2f constraint_mat_convertspace is now no longer static/private to constraint.c 2007-08-14 11:19:35 +00:00
Joshua Leung
35bc7079e3 Whitespace commit in constraints code. 2007-08-14 11:16:11 +00:00
Joshua Leung
c4114780d4 Little code cleanup.
bsystem_time was being called with an extra variable, which was useless. Most of the places that called it, were passing NULL for that variable anyway.

I've also cleaned up that function a bit, but the underlying problems with that part of the code still exist (EVIL GLOBALS that are exported for frame_to_float), for mblur and fields rendering features. That remains for another time.
2007-08-05 09:21:29 +00:00
Brecht Van Lommel
c0e0f4698f Quaternion Deform Interpolation
===============================

This is a new armature deform interpolation method using Dual Quaternions,
which reduces the artifacts of linear blend skinning:

http://www.blender.org/development/current-projects/changes-since-244/skinning/

Based on the paper and provided code:

Skinning with Dual Quaternions
Ladislav Kavan, Steven Collins, Jiri Zara, Carol O'Sullivan.
Symposium on Interactive 3D Graphics and Games, 2007.
2007-07-31 19:28:52 +00:00
Roland Hess
876cfc837e Visual Keying refactor
This code was always kludgy and this clean it up a bit.

insertmatrixkey() has been properly renamed insertkey_float().

Matrix calculations have been excised from the interface code,
and placed in insertmatrixkey(), so that you can call it from
anywhere without preliminaries and the proper values are calced
based on the passed adr code.

By much request, several semi-bug reports and discussion with
production animators, visual keying is now used automatic
for objects and bones that have constraints that cause them
to ignore their Ipos (CopyLoc, TrackTo, etc.). In those cases,
visual keying is used instead of the normal Ipo insertion
method. This "auto" functionality is toggled from the 
"Use Visual Keying" button found along with "Needed" and
"Available" in the Edit Methods prefs.

Logic as to which constraints trigger visual keying on
which adrcodes can be tweaked in match_adr_constraint()
src/editipo.c

This has been tested by a couple of people, myself included,
but I may not have hit every constraint case, so evolutionary
feedback is welcome.
2007-07-31 13:37:59 +00:00
Campbell Barton
848ea23d84 removing unused dna 2007-07-30 13:26:22 +00:00
Joshua Leung
655fb548aa Removing some useless code, and fixed a few compiler warnings. 2007-07-30 11:10:30 +00:00
Joshua Leung
6dcde0b5be More Constraints Bugfixes:
* Transform Constraint should now work in more cases. Somehow the old code (for location case) wasn't working correctly.
* ChildOf Constraint applied on objects, should now get the right 'inverse'/'offset' matrix set. It now uses the same code that is used by Blender's parenting method to do so.
2007-07-29 11:15:37 +00:00
Brecht Van Lommel
8742899f5e Armature CrazySpace Improvement
===============================

An improved CrazySpace correction is now used for Armature modifiers that use
vertex groups, and that are the first enabled modifiers in the stack. This is
a a specific case, but also a common one.

http://www.blender.org/development/current-projects/changes-since-244/skinning/

Implementation Notes:

- The quaternion crazyspace correction is still used for modifiers other than
  the armature modifier.
- Modifiers can now provide a deform matrix per vertex to be used for
  crazyspace correction, only the armature modifier implements this now.
2007-07-28 21:04:30 +00:00
Brecht Van Lommel
373f91c8b1 Bone Heat Weighting
===================

This is a new automatic vertex weighting method, next to the existing
envelope based method. The details are here:

http://www.blender.org/development/current-projects/changes-since-244/skinning/

This is based on section 4 of the paper:

"Automatic Rigging and Animation of 3D Characters"
Ilya Baran and Jovan Popovic, SIGGRAPH 2007

Implementation Notes:

- Generic code for making mesh laplacian matrices has been added, which
  is only used by bone heat weighting at the moment.
- Bone to vertex visibility checking is done with the raytracing code.
- Fixed an issue in the subsurf limit calculation function, where the
  position of vertices on boundary edges was wrong. It is still not the
  correct position, but at least it's in the neighbourhood now.
2007-07-28 14:04:02 +00:00