Commit Graph

3543 Commits

Author SHA1 Message Date
01b4caa701 2.5 - Rotation order is now taken into account for constraints
* Added a 'rotOrder' parameter for constraint evaluation objects and constraint targets, which describes the rotation mode used for the matrices there. 

Todos:
* Constraint targets default to using XYZ only for now. This will need be be addressed eventually.
* Copy Rotation constraint currently cannot use the new rotation order code for the target matrix. What's surprising is that even though it's just using XYZ as the old code did, it doesn't work, and yet everything else works nicely. Silly constraint! (it is almost impossible to improve this constraint further without breaking a rig out there)
2009-09-02 10:45:11 +00:00
a44b948260 2.5 - Rotation Orders for Bones [Durian Rigging Request]
This commit is the start of an implementation of (euler) rotation orders for Bones (later to be extended to Objects too). 

Technical details and references can be found at:
http://wiki.blender.org/index.php/User:Aligorith/EulerRotationOrder

In short, I've added a new set of Euler conversion functions (EulO... and ...EulO), coexisting with the old functions for now, which can handle different rotation orders.

Changes have only been made to the basic evaluation code. However, the following places will still need modifications:
* Transform code - needs to be made to use functions which take rotation order into account instead of using XYZ only
* Rotation constraints - same story
* Other rotation editing tools for armatures also need a check up, since there might have been some missing code when I ported eulers earlier
2009-09-01 12:18:17 +00:00
87929332c7 Changed sync difference time of sound strips to 0.5 seconds instead of 1 frame. Maybe this should be a user preference setting? 2009-08-31 18:18:10 +00:00
3fa51df744 Grease Pencil: Restored some editing operators (convert and delete active frame)
* Convert operator - can currently be used to convert active Grease Pencil layer to curves. I had a look at making this part of a special "curve sketching" macro, though it seems that we cannot have modal operators coming first in a macro (and also cannot specify operator calling modes)

* Delete Active Frame operator - does what its name say it does. It deletes the active frame for the active layer of Grease Pencil sketches.
2009-08-31 01:58:11 +00:00
d4d520c9a2 Grease Pencil: Various Drawing Fixes
* Restored option to have strokes aligned to screen space. By default, this is not enabled (the setting for view-space is the default instead). 

* Fixed bugs related to drawing/erasing in screen space.
2009-08-30 11:37:29 +00:00
4b206c675c just some comment fixes 2009-08-30 03:10:03 +00:00
c6ccf5fd2e Cloth didn't update properly in particle mode. Don't understand why the particle mode check was there to begin with, but if removing it causes trouble later on some other solution can be figured out. 2009-08-29 21:52:57 +00:00
874d38eeb4 Point cache editing:
- Baked point caches for particles, cloth and softbody can now be edited in particle mode.
	* This overwrites the old cloth/sb cache editmode editing.
	* The type of editable system is chosen from a menu.
	* For particles the current particle system and it's current cache are used.
- Currently this only works for caches that are in memory, but some automatic conversion from disk to memory and back can be implemented later.
- All tools from hair editing can't be applied to point caches and are hidden in the tool panel and specials menu. Some functionality like subdividing paths can be later implemented in a slightly different way from how it works for hair.
- Code is not yet optimized for speed, so editing might be slow sometimes.

Known issues:
- Cloth doesn't update properly while in particle mode, due to the way cloth modifier currently works. Daniel can you check on this?
- As "particle mode" is not only for particles any more some other name would be in place?
- Better icons are needed for the path, point, and tip-modes as the current icons from mesh edit mode are quite misleading.
- Direct editing of point velocities is not yet implemented, but will be in the future.

Other changes:
- Hair editing doesn't require a "make editable" button press any more.
- Multiple caches in single particle system disables changing emission properties.
- Unified ui code for all point cache panels.
	* Defined in buttons_particle.py and imported for cloth, smoke & softbody.
- Proper disabling of properties in ui after baking point caches. (Daniel could you please make needed disable code for smoke panels as their functionality is not familiar to me.)
- Hair weight brush has been removed. Once hair dynamics is re-implemented I'll code a more useable alternative to the functionality.

Bug fixes:
- Unlinking particle settings crashed.
- Deleting the active object with particles in the scene crashed.
- Softbody didn't write point caches correctly on save.
2009-08-29 15:20:36 +00:00
77c587a825 2.5 Paint:
* Removed the BKE_sculpt file and moved it's contents (basically just the sculpt session struct) to BKE_paint
2009-08-28 21:47:11 +00:00
03b3d2cb79 Sound packing/unpacking operators. 2009-08-28 21:47:05 +00:00
c15db042cc Grease Pencil: WIP Code Reordering + Context Stuff
* Shuffled some code around, and renamed some functions used for getting context info
- Split UI-buttons into a separate file from stroke-drawing code
- Removed some obsolete code (i.e. old paint code that used to be in _edit, but which has been moved to _paint). 

* Made drawing in 3D-View default to using the active object as the owner of the Grease Pencil data. For now, the drawing code will therefore only show the GP data for the active object only. More work to come on this.

* Fixed freeing code for Objects/Scenes with GP data.
2009-08-28 12:41:45 +00:00
a3bc7f3d1d BGE shape key actuator working, though only tried a simple testcase. 2009-08-26 20:06:16 +00:00
c30f54e326 2.5 Sound: RNA for bSound. 2009-08-26 18:20:17 +00:00
47ce314bc5 2.5 Sound:
- Cleaned up DNA_sound_types.h, especially the bSound structure.
- Fixed a caching bug.
2009-08-26 14:19:29 +00:00
36b85d4508 Changed default audio device from SDL to OpenAL after a discussion in IRC, we're testing if OpenAL works flawlessly on all plattforms and if so we'll keep it as default device as it supports 3D Audio for the GE what SDL doesn't. 2009-08-26 08:09:29 +00:00
4893cdc338 2.5 - Warning cleanups (for mingw+scons)
Also, made the Outliner's horizontal scrollbar work better for keymaps view. It's still using an approximation of the width, but at least you can scroll now.
2009-08-26 00:38:43 +00:00
3f5a2a1194 Smoke:
*Bugfix for crash on using a plane as smoke domain (reported by DingTo)
* Bringing slowly high res back, not yet working
2009-08-25 23:39:49 +00:00
6a5773d4a8 Smoke:
* Deleting high res modifier again
* fixing smoke + continue physics drawing
* fixing cache reset when changing dissolve
2009-08-25 21:53:52 +00:00
0e9f7757b9 Pointcache:
*forgot 1 rename
2009-08-25 19:58:42 +00:00
e2d91a5e5f Pointcache:
* change function names
2009-08-25 18:53:20 +00:00
1d1e8595f2 Pointcache:
*introducing unique ID's following brechts hint from ML

Enhancements resulting from this:
* multiple caches per modifier stack position
2009-08-25 18:41:36 +00:00
706a4c22b5 Implemented dynamic and multidimensional array support in RNA.
Example code: http://www.pasteall.org/7332/c.
New API functions: http://www.pasteall.org/7330/c.

Maximum number of dimensions is currently limited to 3, but can be increased arbitrarily if needed.

What this means for ID property access:

* MeshFace.verts - dynamic array, size 3 or 4 depending on MFace.v4
* MeshTextureFace.uv - dynamic, 2-dimensional array, size depends on MFace.v4
* Object.matrix - 2-dimensional array

What this means for functions:

* more intuitive API possibility, for example:
  Mesh.add_vertices([(x, y, z), (x, y, z), ...])
  Mesh.add_faces([(1, 2, 3), (4, 5, 6), ...])

Python part is not complete yet, e.g. it is possible to:

MeshFace.verts = (1, 2, 3) # even if Mesh.verts is (1, 2, 3, 4) and vice-versa
MeshTextureFace.uv = [(0.0, 0.0)] * 4 # only if a corresponding MFace is a quad

but the following won't work:

MeshTextureFace.uv[3] = (0.0, 0.0) # setting uv[3] modifies MTFace.uv[1][0] instead of MTFace.uv[3]
2009-08-25 17:06:36 +00:00
4ba6dbce76 Replaced G.sce by Main.name in sound.c.
I hoped for it to resolve the bug of loading sounds with relative paths didn't work, but Main.name isn't set before the sounds are loaded, so the bug resists!
Someone who is into file loading should please fix this!
2009-08-25 15:30:04 +00:00
a81b458dbd * Volume Rendering
Finally in 2.5 branch :)

Still things to do, but will continue working in here. I won't bother
repeating the commit messages from the last year or so, however I've 
written up some technical docs to help Ton/Brecht/etc review and find 
their way around the code:
http://wiki.blender.org/index.php/User:Broken/VolumeRenderingDev

That above page has some known issues and todos listed, but I'm still 
interested in bug reports.

Credits for this code:
* Matt Ebb 
(with thanks to Red Cartel/ProMotion Studios)
* Raul Fernandez Hernandez (Farsthary) for patches:
  o Light cache based multiple scattering approximation
  o Initial voxeldata texture code
  o Depth Cutoff threshold 
* Andre Susano Pinto for BVH range lookup addition
* Trilinear interpolation adapted from pbrt
* Tricubic interpolation from libtricubic
2009-08-25 06:30:09 +00:00
e80ac54a22 2.5 - Keying Sets API (now usable from Py-Scripts)
Wrapped the Keying Sets API with RNA Functions so that they can now be called from Py-Scripts. This will ultimately be useful for riggers to create Keying Sets which can get loaded up/created for animators to use after importing their rig. 

I've created a demo for this, which can be found at:
http://www.pasteall.org/blend/552

Notes:
- Kazanbas, I've had to create a rna_scene_api.c here to hold some of the relevant functions. Hopefully this won't cause you too much pain when you do your next merge from 2.5 to your branch ;)
- I've noticed that there seem to be a few cases mentioned in the demo which don't totally work yet. I'll commit some fixes for those later.
2009-08-25 04:05:37 +00:00
e2eaf26935 2.5 - NLA Bugfixes:
* F-Modifiers on F-Curves can now taken into account when calculating the extents of actions. This is used when there are some NLA strips and some action with some F-Modifiers is being played back on top of those.

* The toggles in the NLA channels list now respect the width of the list instead of using a hardcoded position. This means that clicking on these toggles when the list is resized works again.
2009-08-25 01:46:05 +00:00
ea97a37383 svn merge -r 22628:22753 https://svn.blender.org/svnroot/bf-blender/branches/blender2.5/blender 2009-08-25 01:37:08 +00:00
b33b6babbd 2.5 - Sliders in Animation Editors
The 'Show Sliders' option for DopeSheet and Graph Editors now works again. When this option is enabled (it is disabled by default), a slider (or combobox) is shown beside the mute/lock toggles for F-Curves. Editing the slider will result in a new keyframe being added on the current frame. 

So, for all the (ex)-Maya animators out there, you can now animate in a channelbox-like way. :)

Also in this commit:
* Fixed some warnings in modifier.c from previous commits there
* Fixed some refresh problems with DopeSheet channel list (which were only obvious after adding back the sliders)
* Removed the old/unrestored and nasty slider code used in the past by the Action Editor only.
2009-08-24 04:31:13 +00:00
f5711909a6 svn merge -r 22628:22714 https://svn.blender.org/svnroot/bf-blender/branches/blender2.5/blender 2009-08-23 03:33:33 +00:00
f82ce68a9e * enable ztransp transparency type for new materials by default. 2009-08-23 02:59:18 +00:00
98e9ddbf5b Bugfixing. 2009-08-22 16:54:18 +00:00
1e14ab9992 svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r22668:22701 2009-08-22 10:57:07 +00:00
d4407115fa Hook Modifier Bugfixes:
Fixed some typos made in previous commit. Hook Modifier should now work correctly again (and also for newly added Hook relationships)

Notes:
* To add a hook, you currently need to perform the following steps
1) add modifier from menu (no operator in EditMode)
2) specify the object (and/or bone to use as the hook target)
3a) in EditMode, select the vertices you wish to be affected by the hook, and press 'Assign'
3b) alternatively, fill in the vertex-group field for the Vertex Group which contains the vertices to be affected
4) press 'Reset' (to make sure hook will behave correctly)
5) optionally, also press 'Recenter' if the hook position isn't right...

* BUG ALERT (Brecht/Ton): it is impossible to clear the vertexgroup/bone fields once you have assigned some value. Doing backspace+enter (or any other variation) will always result in the first item in the search menu being used.
2009-08-22 04:11:17 +00:00
647fd95c7f 2.5 Multires:
* Fixed doing a simple subdivide, rather than Catmull-Clark. Note that the first subdivision will still appear to be CC rather than simple, this is a bug we just have to live with for now.
2009-08-21 18:35:40 +00:00
b6548c21c2 2.5/Multires:
* Fixed multires subdivision of a sculpted object. Accidentally broke this when I fixed removing a multires modifier.
2009-08-21 18:15:50 +00:00
93dd95b6c2 bug fix #18982
non mesh objects missing initializers
2009-08-21 12:49:21 +00:00
9125fe55fb Hook Modifier - Bone Targets
Made Hook Modifier be able to use bone targets. However, I haven't been able to verify that everything will work perfectly, since just creating a new Hook Modifier and assigning targets doesn't set hmd->indexar correctly.
2009-08-21 10:47:27 +00:00
46fb2d37e3 have texture paint use the curve rather then the falloff setting (falloff gave ugly center area of 100% opacity) 2009-08-21 07:19:06 +00:00
1be67b60fd 2.5: Modifiers & Menus
* Popup menus now remember the last clicked item again.
* Modifier and File Format menus are now organized in multiple
  columns with categories.
* Hook, explode, uv project modifiers have all their buttons
  again with the relevant operators implemented.
* Modifiers that can't be added by the user, or don't work on
  curves for example, are not in the menu anymore.
* Fix search menu overlapping buttons when near the bottom of
  the screen.
* Fix uv layers search menu not working in some modifiers.
* Cleanup popup menu code a bit, layout engine is used in more
  cases now instead of ugly position calculation code.
2009-08-21 02:51:56 +00:00
1772a0a62f Add unsigned char buffer to BLF_draw_buffer and update makefiles for lzo and lzma.
I rename the original makefile of lzo (Makefile.bak) and a new one.
Also four new option for user-def.mk:
	WITH_LZO, default true
	WITH_LZMA, default true
	NAN_LZO, default extern/lzo
	NAN_LZMA, default extern/lzma

It's easy add support for system libs (using lzo and lzma from OS) but I don't
know if it have much sense.

Note that I can't test the "unsigned char" buffer because the OGL animation
is not working (right ?), but is the same code that for float also the new
Makefile work fine here (Linux), but maybe need some tweak on other OS.
2009-08-20 18:34:14 +00:00
fda97809bc 2.5 Multires:
* Fixed a memory corruption bug when deleting a multiresmodifier, was hanging on to a bad pointer. Reported on IRC by lusque
2009-08-20 17:37:38 +00:00
4df4b17ed6 2.5 Paint:
* Weight paint and vertex paint now use the same cursor setup as sculpt
2009-08-20 16:00:17 +00:00
7dfc1317ac 2.5/Paint:
* Converted vertex paint to use the new stroke system. Now supports the same smooth stroke and stroke spacing as sculpt mode.
* Refactored the paint cursor a bit, just sculpt for now but other modes soon.
* A couple warning fixes
2009-08-20 05:13:07 +00:00
2878eed1c1 Fix Smoke:
* Making it less verbose
2009-08-20 01:22:07 +00:00
89658db576 Fix Smoke #1:
* compile error reported by nudelZ (static/nonstatic)
2009-08-20 00:37:27 +00:00
286c2ca80b Smoke:
* cache for low res (deactivating high res for now)
* new way of view3d rendering of smoke (no longer 3 axes) -using 3dtexture now (introduced into gpu/intern)
* introducing LZO and LZMA libs into extern (makefiles missing for now)
* reducing memory usage after simulating for the frame ended (freeing temporary buffers)
* splitting smoke into 2 modifier for the cache-sake (it cannot handle more than 1 cache on the same modifier-index)
* no color on gui anymore
* fixing non-power-of-2 resolutions (hopefully)
* fixing select-deselect of domain drawing bug
* fixing drawobject.c coding style (making Ton happy) ;-)

HINT #1: If scons doesn't work -> cmakefiles are up-to-date, couldn't test scons (but i tried to mantain them, too)

CODERS HINT #1: we really need a way to disable adding all modifiers through "Add Modifiers" dropdown!

WARNING #1: before applying this commit, deactivate your SMOKE DOMAIN in your old files and save them then. You can open them then savely after that.

WARNING #2: File and cache format of smoke can be changed, this is not final!
2009-08-20 00:33:59 +00:00
792d526489 More texnode preview fixes. Previews now have correct aspect ratio and are drawn by the renderer. 2009-08-19 15:45:16 +00:00
aace6ef551 2.5: Restored statistics in the info header.
Implementation:
* NC_SCENE or NC_OBJECT cause scene->stats to be cleared.
* NC_INFO is sent to tag info headers for redraw.
* In UI scene.statistics() creates scene->stats if it is
  NULLd, and then returns the string.
2009-08-19 12:35:40 +00:00
132277f098 svn merge -r 22450:22627 https://svn.blender.org/svnroot/bf-blender/branches/blender2.5/blender 2009-08-19 11:18:52 +00:00
e611c4756f 2.5: svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r22291:22625 2009-08-19 09:35:22 +00:00