Commit Graph

366 Commits

Author SHA1 Message Date
Joshua Leung
cee9c7a8fa Bugfix #13667: Outliner doesn't update when changing Parent in Transform Properties
There was a missing refresh call for the Outliner.
2008-06-08 10:46:30 +00:00
Campbell Barton
1a5181c9c7 bugfix for own bug. mousewheel while playing in the sequencer crashes blender. 2008-05-28 21:15:40 +00:00
Peter Schlaile
d2fcba7f65 == Ipo ==
This fixes [#11118] Record Mouse in IPO Curve Editor 2.46rc3
and adds thereby a new feature: correct audio sync to IPO mouse recording :)
2008-05-12 17:16:54 +00:00
Campbell Barton
5122cae732 fix for [#11121] mouse wheel dont work when playing animation 2008-05-10 19:05:46 +00:00
Campbell Barton
5da47ddd02 fps timer was starting off at 0 fps 2008-05-07 18:33:10 +00:00
Brecht Van Lommel
722f24d153 Fix for bug: drawing x-ray and transparency with sets didn't
work well, now it draws those type of objects from sets also
at the end.
2008-05-06 15:31:17 +00:00
Campbell Barton
02afc94932 fix for [#10458] Rc4 Blender crash when activate playback FPS than Alt+A to play animation. 2008-05-05 06:30:19 +00:00
Campbell Barton
09e102fd01 [#8397] "playback fps' jumps all over the map
average over the last 8 times to reduce flickering. ideally this would show how many frames were drawn in the last second. but I think this is good enough just to get an idea how fast the animation is playing without annoying flicker.
2008-05-01 14:51:06 +00:00
Chris Want
5d0a207ecb Patch from GSR that a) fixes a whole bunch of GPL/BL license
blocks that were previously missed; and b) greatly increase my
ohloh stats!
2008-04-16 22:40:48 +00:00
Campbell Barton
83c5401896 replace magic numbers with constants for (G.vd->persp), view naming was also using persp as a flag which worked but isnt correct. 2008-04-16 08:48:49 +00:00
Brecht Van Lommel
1fe5302cce Point Cache Refactoring
=======================

Caching and Baking:
- The point cache is now cleared on DAG_object_flush_update(), and not cleared for time dependency graph updates.
- There is now a Bake button instead of Protect. Also cache start and end frames were added to softbody and particles.
- The cloth autoprotect feature was removed.
- The Ctrl+B menu now also bakes cloth and particles next to softbody and fluids. Additionally there are now frree bake and free cache menu entries.
- The point cache api has been changed. There is now a PTCacheID struct for each point cache type that can be filled and then used to call the point cache functions.
- PointCache struct was added to DNA and is automatically allocated for each physics type.
- Soft body now supports Bake Editing just like cloth.
- Tried to make the systems deal consistently with time ipo's and offsets. Still not sure it all works correct, but too complicated to solve completely now.

Library Linking:
- Added some more warnings to prevent editing settings on library linked objects.
- Linked objects now read from the cache located next to the original library file, and never write to it. This restores old behavior for softbodies. For local simulation the mesh and not the object should be linked.
- Dupligroups and proxies can't create local point caches at the moment, how to implement that I'm not sure. We probably need a proxy point cache for that to work (ugh).

Physics UI:
- Renamed deflection panel to collision for consistency and reorganized the buttons. Also removed some softbody collision buttons from the softbody panel that were duplicated in this panel for cloth.
- Tweaked field panel buttons to not jump around when changing options.
- Tabbing e.g. Soft Body Collision into the Soft Body panel, it now only shows Collision to make the panel names readable.
- I tried to make enabled/disabling physics more consistent, since all three system did things different. Now the two modifier buttons to enable the modifier for the viewport and rendering are also duplicated in the physics panels. Toggling the Soft Body and Cloth buttons now both remove their modifiers.
- Fixed modifier error drawing glitch.

Particles:
- Particles are now recalculated more often than before. Previously it did partial updates based on the changes, but that doesn't work well with DAG_object_flush_update() ..
- Fixed memory leak loading keyed particle system. Now keys are not written to file anymore but always created after loading.
- Make particle threads work with autothreads.

Continue Physics:
- The timeline play now has a Continue Physics option in the playback menu, which keeps the simulations going without writing them to the cache.
- This doesn't always work that well, some changes are not immediately updated, but this can be improved later. Still it's fun to get a feel for the physics.

Todo:
- Point cache can get out of sync with and undo and changing a file without saving it.
- Change the point cache file format to store a version (so old point cache files can be either converted or at least ignored), and to do correct endian conversion.
- Menu item and/or buttons for Ctrl+B.
- A system("rm ..") was changed to remove() since the former is very slow for clearing point caches. These system() calls were already giving trouble in a bug in the tracker, but really most use of this system("") should be changed and tested.
- The Soft Body Collision and Clot Collision panel titles don't mention there's point cache settings there too, doing that makes them unreadable with the default panel setup.. but may need to make the names longer anyway.
2008-04-10 11:39:20 +00:00
Campbell Barton
d3116dd4d2 use Z depth for the ortho border zoom also, if there is no depth values set then fallback to previous method. 2008-03-21 17:13:35 +00:00
Campbell Barton
df1ba7da75 make border zoom ignore backfaces in texture mode and zero alpha areas of billboards. 2008-03-21 16:27:43 +00:00
Campbell Barton
734db8cbff Objects with transp and xray work with border zoom (shift+b),
zooming behind an object to one with xray now works, transp objects work like normal objects.
2008-03-20 21:43:32 +00:00
Campbell Barton
107bed0170 shift+b zoom in perspective mode, (apricot feature for better navigation on large maps) 2008-03-20 20:03:13 +00:00
Brecht Van Lommel
65b0e6245d Fix for bug #7986: tab in edit introduces garbage values. 2008-03-18 10:55:07 +00:00
Brecht Van Lommel
4afa6a2594 Attempted fix for bug #8441: editing in particle mode with limit visible
enabled is really slow on some cards. Cause might be the large number of
calls to glReadPixels, now it uses the same system as sculpt to store
the depths once, code was already there for the case those depths were
available, it just wasn't storing them.
2008-03-13 10:27:35 +00:00
Brecht Van Lommel
21299f2325 Going into vertex paint mode without vertex colors, now it doesn't
create vertex colors from shaded mode anymore. Instead there is
function in vertex paint mode to create them.

Also some fixes for previous commits.
2008-02-26 18:30:41 +00:00
Martin Poirier
0799c2665c === Custom Orientations ===
Change selection icon in the panel to the more appropriate Checkbox icon.
2008-01-28 01:15:21 +00:00
Joshua Leung
0d3c8ad238 * Made the "mini axis" draw with lines proportional to it's size. Currently, the thick lines are a bit too thick at larger sizes, but it's better than having slower viewports.
* Fixed bug with IPO-transform. When "Switch Mouse Buttons" is on, click-drag transforms of keys didn't work.
2008-01-24 00:03:16 +00:00
Nicholas Bishop
c6118036bc == Radial Control ==
* Generalized the interactive brush property control from sculpt mode into a simple API
* Modified sculpt mode to take advantage of this (even fixes some minor bugs!)
* Added shortcuts in particle edit to set brush size/strength (FKEY/shift+FKEY)

Still todo are the other modes that have brushes...
2008-01-16 07:19:21 +00:00
Joshua Leung
442ff2c322 Bugfix for Transform Orientation Panel:
Removed a pair of uiPanelPush()/uiPanelPop() calls from the Transform Orientation panel, which were causing minor redraw/refresh problems for the panel's buttons here.
2008-01-14 02:49:25 +00:00
Martin Poirier
d660e29365 === Custom Transform Orientation ===
Custom Orientations can be added with Ctrl-Shift-C (hotkey suggestions are welcomed), this adds and select the new alignment. Custom Orientations can also be added, deleted, selected from the Transform Orientations panel (View -> Transform Orientations). Standard orientations (global, local, normal, view) can also be selected from this panel.

If you plan on using only a single custom orientation and don't really need a list, I suggest you use the hotkey as it adds and selects at the same time.

Custom Orientations are save in the scene and are selected per 3D view (like normal orientation).

Adding from an object, the orientation is a normalized version of the object's orientation.
Adding from mesh data, a single element (vertex, edge, face) must be selected in its respective selection mode. Vertex orientation Z-axis is based on the normal, edge Z-axis on the edge itself (X-axis is on the XoY plane when possible, Y-axis is perpendicular to the rest). Face orientation Z-axis is the face normal, X-axis is perpendicular to the first edge, Y-axis is perpendicular to the rest.
(More logical orientations can be suggested).

I plan to add: 2 vertice (connected or not) => edge orientation , 3 vertice = face orientation

Differences from the patch:
- orientations no longer link back to the object they came from, everything is copy on creation.
- orientations are overwritten based on name (if you add an orientation with the same name as one that already exists, it overwrites the old one)
2008-01-13 18:24:09 +00:00
Campbell Barton
bbd4d05321 Used valgrind to find some uninitialized variables 2008-01-05 19:11:10 +00:00
Brecht Van Lommel
2f7dad7df7 - Make dupliverts inside a dupligroup render and draw as instances.
- Possible fix for a dupli render memory leak, but i'm not sure.
2008-01-04 17:48:07 +00:00
Peter Schlaile
3ef896a945 == Sequencer ==
Attention! Rather large sequencer rewrite:

* Implemented layer blending using implicit effects. (works like layers 
  in "The Gimp" or Photoshop.)
* Fixed Space-Bar start-stop in preview windows.
  You can start playback using spacebar within a preview-window and it _works_!
* Fixed Flip Y (didn't work for float)
* Fixed premul (didn't work for float)
* Added IPOs to _all_ tracks. In blend-mode REPLACE it drives the 
  "mul"-parameter in all other blend modes it drives the effect.
* you can meta single tracks.
* moved "mute track" from "M" to "Shift-M"
* added "Shift-L" for "lock track"
* changed inner workings for Metas. Now all ImBufs have to use the
  reference counting mechanism. (Only interesting for coders :)

!!! Really important change, that affects current files!

Since you can mute tracks and now there is real layer blending capabilities
in place, I changed the silly behaviour that chose the output track.

Old behaviour: if we have an effect track visible, use the uppermost effect
track. If there is _no_ effect track visible, use the lowest input track.

New behaviour: always use the uppermost track. With blend modes active: 
work our way down starting from the uppermost track to the first 
"replace"-mode track. This is the way the gimp, photoshop, basically _all_
other applications work...

So if this change ruins your day: please try to fix your files using
"mute". If this doesn't work out, I can still restore the old behaviour,
but I really hope, that this is _not_ necessary!

Rational: most people won't get affected by this change, since you can't
really do anything usefull with the (old) sequencer without at least one 
effect track and then you are on the safe side...
2008-01-01 11:44:42 +00:00
Campbell Barton
0a62df356d find external files wasnt finding the biggest screen area for the file selector,
other minor changes. renamed "Dump Screen" to "Screenshot" in the file menu.
2008-01-01 02:20:13 +00:00
Nicholas Bishop
015007beaf == Sculpt ==
Fixed bad level calls in sculptmode.
2007-12-26 22:40:56 +00:00
Peter Schlaile
74ebc77547 == Sequencer (Peach request) ==
Make the "Sync" button work when sound is disabled, Animators use this as a way to play animations at the right speed, could be renamed to "Drop Frames" and work even when blender built without audio enabled.

(do not forget to give credit to me :)
2007-12-23 17:01:44 +00:00
Nicholas Bishop
801c0799c1 == Sculpt Mode ==
Applying Stephan Kassemeyer's patch (#6750) to add a curve modifier for sculpting.

A few changes from the patch:
* The default curve is closer to the old behavior
* Fixed loading files already saved in sculpt mode
* Changed the interface; split the brush texture controls off into a third sculpt tab, and put the curve (and curve reset) into the Brush tab.
2007-12-20 19:07:47 +00:00
Nicholas Bishop
5518aaaace Fixed bug #6711, Retopo problem when maximizing 3d view and still painting
Caused by some incorrect usage of the current v3d during updates
2007-12-18 21:56:17 +00:00
Campbell Barton
6dc52c893f for button popups, dont close unless you click or press escape, this would often close when dragging a button value (or when using a tablet I am told) 2007-12-11 23:05:10 +00:00
Stephen Swaney
160e6afdb8 fix mixed declarations and code warning that breaks strict compilers 2007-12-11 15:35:39 +00:00
Campbell Barton
114ce86167 display real fps in 3d view option
replace 1 with SELECT
edited DVar texture tooltip
2007-12-11 14:19:05 +00:00
Nicholas Bishop
259c807f70 Fixed bug #6870, Sculpt mode + wireframe = nothing
When sculpt object is in wireframe mode (including if the current view is in wireframe mode) a second copy is drawn only to the depth buffer so that sculpting can take place as normal.
2007-12-08 21:53:17 +00:00
Brecht Van Lommel
26b8892c9c Bugfix for mysteriously disappearing left eyeball. Bounding boxes
used for clipping were being stored in the mesh, but modifiers
can result in two objects with the same mesh having a different
bounding box. Solution is to store bounding box in the object.
2007-12-05 21:50:23 +00:00
Brecht Van Lommel
303819276f Bugfix for earlier commit, with OpenGL render the 3d view transforms
were not always set correct.
2007-12-02 14:48:24 +00:00
Campbell Barton
1e32ec2000 minor update, "Draw Handles" wasnt working when disabled everywhere and replaced some magic numbers 2007-12-01 23:25:00 +00:00
Brecht Van Lommel
eff09ae396 For the OpenGL render option in the 3d view, if a camera is active,
it now sets the viewport exactly the same as if rendering.
2007-12-01 19:29:50 +00:00
Janne Karhu
9ff9a5cdca 2nd try at committing to trunk (instead of particles branch) :)
Fixes for bugs in #7833
- Hair softbody cache was reset on rendering.
- When Alt-a playback is synced to audio frames are skipped. This caused dynamics caching to go crazy. Now the first loop of playback goes through all frames if there are non cached dynamic systems.

Invalid point caches weren't cleared when new systems were created. This caused messed up shapes when softbody was added.
2007-11-29 21:09:16 +00:00
Campbell Barton
044b78c83b new function object_is_libdata - checks ob->id.lib but also accounts for proxy's.
Object panels were using object_data_is_libdata, which meant linked obdata could not have object settings changed.

curve2tree 
- option to face leaves up or down
- random pitch and roll options
- place 2 leaves on a point for denser leaves
- random seed entry so you can get reproducible results
2007-11-27 19:23:26 +00:00
Brecht Van Lommel
7da56f4a9b Particles
=========

Merge of the famous particle patch by Janne Karhu, a full rewrite
of the Blender particle system. This includes:

- Emitter, Hair and Reactor particle types.
- Newtonian, Keyed and Boids physics.
- Various particle visualisation and rendering types.
- Vertex group and texture control for various properties.
- Interpolated child particles from parents.
- Hair editing with combing, growing, cutting, .. .
- Explode modifier.
- Harmonic, Magnetic fields, and multiple falloff types.

.. and lots of other things, some more info is here:

http://wiki.blender.org/index.php/BlenderDev/Particles_Rewrite
http://wiki.blender.org/index.php/BlenderDev/Particles_Rewrite_Doc

The new particle system cannot be backwards compatible. Old particle
systems are being converted to the new system, but will require
tweaking to get them looking the same as before.

Point Cache
===========

The new system to replace manual baking, based on automatic caching
on disk. This is currently used by softbodies and the particle system.

See the Cache API section on:
http://wiki.blender.org/index.php/BlenderDev/PhysicsSprint

Documentation
=============

These new features still need good docs for the release logs, help
for this is appreciated.
2007-11-26 22:09:57 +00:00
Campbell Barton
90b4ed9543 added buttons in the Transform Properties for changing curve handle types, (Similar to how Metaballs can be selected) for easier access then H,Shift H, V keys 2007-11-10 15:31:41 +00:00
Joshua Leung
cfd9d390fc Several fixes:
* DNA_action_types.h - fixes for typos that broke compiling (own error)

* transform.c - fix for implicit definition of a function (missing header)

* outliner.c - commented out a few unused vars (as a result of constraints refactor)

* editsima.c - fixed uninitialised var warning

* drawview.c - bugfix #7598 load without ui crashes if there is no camera. Patch provided by Daniel Genrich (genscher)
2007-10-22 06:28:39 +00:00
Peter Schlaile
a0390e5cc3 == Core ==
This adds fractional FPS support to blender and should finally
make NTSC work correctly.

NTSC has an FPS of 30.0/1.001 which is approximately 29.97 FPS.
Therefore, it is not enough to simply make frs_sec a float, since
you can't represent this accurately enough. 
I added a seperate variable frs_sec_base and FPS is now 
frs_sec / frs_sec_base.

I changed all the places, where frs_sec was used to my best knowledge.

For convenience sake, I added several macros, that should make life
easier in the future:

FRA2TIME(a) : convert frame number to a double precision time in seconds
TIME2FRA(a) : the same in the opposite direction
FPS         : return current FPS as a double precision number 
              (last resort)

This closes bug #6715 
Standard framerates not supported / breaks sync -- 23.967 29.967 etc.

https://projects.blender.org/tracker/?func=detail&aid=6715&group_id=9&atid=125

Please give this heavy testing with NTSC files, quicktime in/export
and the python interface.
Errors are most probably only spotted on longer timelines, so that is
also important.

The patch was tested by Troy Sobotka and me, so it most probably should
work out of the box, but wider testing is important, since errors are
very subtle.

Enjoy!
2007-10-21 15:42:08 +00:00
Campbell Barton
46deddcc62 Image Stamping patch by Diego (and peach request)- stamps image info into metadata and optionally
draws into the
frame.

This patch includes some changes I made...   
* use blenders bitmap fonts (rather then own fonts)
* select font size
* user interface layout changes
* Marker as another image stamp option

Also added some new API calls   
BMF_GetFontHeight(font);
BMF_DrawStringBuf(...);  - so we can draw text into an imbuf's image buffer.
get_frame_marker(frame) - get the last marker from the frame.
IMB_rectfill_area(...) - fill in an image buffer with a rectangle area of color.

TODO - draw stamp info in 3d view, at the moment it just displays in the animation.
2007-10-20 16:17:27 +00:00
Campbell Barton
c535939726 gridsubdiv was not initialized properly 2007-10-08 17:37:04 +00:00
Peter Schlaile
5b1d669006 == Sequencer ==
This patch adds prefetch buffering to the sequencer
(see the tracker for additional details:

https://projects.blender.org/tracker/?func=detail&aid=7307&group_id=9&atid=127
)

We create seperate render threads (currently one, because of the fact,
that sequence rendering modifies global structures...), that
render up to the defined userpref value "Prefetch frames" in advance.
(Pressing Alt-A will _first_ fill the buffer and then start playing.)

Bassam and I did some extensive testing, so it should work.

If you don't configure your number of prefetch frames, prefetching is disabled!
(Sane defaults... :)

Also: if the machine is definitely too slow and runs out of the prefetch
area, prefetching is disabled automatically and we are back to good old
frame skipping mode.

My Dual Athlon is able to handle 4 parallel DV streams at once (sometimes
a little bit choppy, but prefetching is never disabled!)

I fixed also a long standing bug in the audio code, that made playback run
backwards at the beginning...
2007-10-01 08:03:11 +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
Kent Mein
56dba39261 This is patch [#6772] Background image drawing speedup
Thanks goto Matthew Plough (meestaplu)

I've tested it on linux with both an nvidia and an ATI card,
I've also tested it on a mac and solaris, as well as through a
remote display.  So I think this one is pretty safe.  
If it causes problems on older systems we can revert it
but I don't think we will have any issues with it.

Kent
2007-09-13 14:33:21 +00:00