Commit Graph

364 Commits

Author SHA1 Message Date
Ben Batt
433f6c7043 Integration of the Google Summer of Code Modifier Stack Upgrade project. The
main features are:
* Modifiers can now be in any order in the modifier stack
* DerivedMesh now has a standard framework for custom element data to be passed
  through the stack with mesh data (being copied and interpolated as
  appropriate), so modifiers can access whatever data they need
* The modifier stack code has been refactored and a number of bugs have been
  removed
* The EdgeSplit modifier has been added:
  http://mediawiki.blender.org/index.php/BlenderDev/EdgeSplitModifier
* The DerivedMesh modifier has been added:
  http://mediawiki.blender.org/index.php/BlenderDev/DisplaceModifier
* The UVProject modifier has been added:
  http://mediawiki.blender.org/index.php/BlenderDev/UVProjectModifier

For more info, see:
http://mediawiki.blender.org/index.php/User:Artificer/ModifierStackUpgrade
(currently undergoing reorganisation)
2006-08-28 01:12:36 +00:00
Nathan Letwory
7fd8ce8156 * Patch #4909 by Joseph Eagar (joeedh)
- this patch adds verse support for SCons, which can be enabled by
    giving WITH_BF_VERSE=1, ie. on command-line
  - this patch also adds a custom lib dir possibility. From the patch description:


 "To set a custom ../lib dir, put LCGDIR="path to lib dir, including the platform folder name!" in your user-config.py."

* Fixed win32-vc-config.py so that it links to the proper library. Reported by Brandano.
2006-08-22 13:04:07 +00:00
Jiri Hnidek
2ee42ac01e Huge commit: VERSE
- All code is in #ifdef ... #endif
 - Only make build system is supported and you have to add:
    export WITH_VERSE=true
   to user-def.mk file
 - Blender can share only mesh objects and bitmaps now
 - More informations can be found at wiki:
    http://mediawiki.blender.org/index.php/BlenderDev/VerseIntegrationToBlender
    http://mediawiki.blender.org/index.php/BlenderDev/VerseIntegrationToBlenderUserDoc

  I hope, that I didn't forget at anything
2006-08-20 15:22:56 +00:00
Martin Poirier
e341a4e1f4 Patch: Constraints to Limit Transforms (#4662) by Joshua Leung (aligorith)
This adds three new constraints to limit the range of location, rotation and scaling values.
2006-08-13 14:18:15 +00:00
Ton Roosendaal
4718a22cd0 Bugfix #4882
New toolsettings variable "select_thresh" was not initialized. This caused
the option "similar normals" to not work really (uses a dot product).

It now is initialized (scene.c) as well as corrected in do_versions for
saved files.
2006-08-13 11:11:22 +00:00
Ton Roosendaal
c56f04cb5f Fixes I did before leaving to siggraph, couldn't commit it due to freeze:
- buffer overflow was possible with providing a file path argument longer
  than 256 characters.
- buttons "VCol Light" and "VCol Paint" were not mutual exclusive
- quicktime error menu (unable to create) had a enter in end
- deleting points in CurveMapping button (like Curves node in compositor)
  did not give proper recalc event
- edges render menu had a tooltip still mentioning the unified render
2006-08-09 10:00:27 +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
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
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
Ton Roosendaal
a156ecb7f5 Two fixes, venomgfx Fraka bird test!
- AO "Use Distances" can not use 'sky texture' for colors, that bug was
  fixed in UI (prevent settings to combine), but better also gets fixed
  on reading files.

- Backbuf render, when not existed, didn't initialize backdrop color to 0.
2006-07-06 21:18:06 +00:00
Ton Roosendaal
2ca81ba8cc Bug from own testing (yeah, writing logs means finding bugs!)
The Curve widget flag 'premultiply' should be cleared on read. This could
lead to an occasional crash...
2006-07-05 20:30:44 +00:00
Ton Roosendaal
b6984214f0 Fix #4601
Buttons window "align" is being set to default on files read older than
2.30. This is giving very bad panel layouts now.
2006-07-04 11:06:00 +00:00
Ton Roosendaal
e4354bbf12 Bugfix #4569
Global undo didn't restore correctly the camera in unlocked 3d views.
("Lock" icon option next to layer buttons)
2006-07-02 12:03:07 +00:00
Ton Roosendaal
ba7af683ae Version patch for 2.41 saved files that had unsupported passes set.
Settings for unsupported passes are cleared now.
2006-06-27 08:53:39 +00:00
Ton Roosendaal
dd064b5990 Patch from Ed Halley to ensure transmissivity values get the right
defaults.
2006-06-25 15:46:03 +00:00
Brecht Van Lommel
2c72f5d5d6 Fixes for bugs #4450, #4451 and #4452.
- Unwrapper setting got reset unnecessarily in do_versions.
- UV pixel snapping did floor rounding, nearest pixel is nicer.
- Draw Faces button didn't trigger UV editor redraw.
2006-06-24 14:16:36 +00:00
Ton Roosendaal
0953e9add4 Bugfix #4355
Group appending issue: the rules for how this works were still confusing.
In some cases you want the objects in the scene itself, in others not.

New method:

- when you append a group directly (shift+f1 -> group -> name(s)) it
  will both append the group and link objects to the current scene
- in all other cases it will only append a group itself.
  (means, you can then use "Add group" to see it).
2006-06-19 12:29:35 +00:00
Ton Roosendaal
5f5ee11fcb Seems a large commit, but I also changed function names to match the new
naming convention for Compositing:

- Render Result node -> Render Layers node (name only appears in Add menu)
- Compositor image -> Viewer Node image

I've also added a version patch (2.41 saved files only) to rename existing
"Compositor" Images.
2006-06-19 08:45:11 +00:00
Ton Roosendaal
19832a0639 Solved bad design decision in Node Editor:
The buttons uiBlock was stored in a Node, for retrieval of node buttons,
however that won't work when multiple windows show same Nodes.
Now implemented more correct unique Block names (as all over in UI), and
use that name to retrieve buttons with API call uiGetBlock().
2006-06-17 13:04:09 +00:00
Ton Roosendaal
4e078c1a73 Bugfix in the patching for Stucci texture: the version code assumed that
the MTex (mapping for texture) always had a texture... which should be
tested of course. My bad!

(Thanks Plumi studio for report!)
2006-06-17 10:34:05 +00:00
Ton Roosendaal
5a4dc67281 Cleanup of UI for new renderpipeline
- removed "Unified" button, replaced with "HD" preset for 1920x1080 output
- removed the unused "Pass" options
- removed the unused "Strands" render-layer option

Because the internal render pipe supports this already; added two more
render-layer options:

- "Sky", to enable/disable sky render in a layer (this was part of "Solid"
  before, not so correct... to ensure previously saved files work, the
  "Sky" option is set by default when "Solid" was set. The version patching
  will do this temporally always, until we've bumped up version to 2.42
- "Edge", to enable/disable edge render in a layer. Nice for compositing.

Also in this commit: fixed warnings for exported functions for the new
Node Editor pull-down menus.
2006-06-17 10:25:07 +00:00
Ton Roosendaal
7aeba4fd0f Preview Texture for Stucci works again.
NOTE: stucci didn't return 'intensity' since blender 1.0, something that
alsways caused headaches all over (all other textures do per definition).
But, allowing stucci to return 'intensity' would break old files.

To make it work for preview, I had to solve this once. Done with a version
patch, so old files (including current 2.41!) won't read with color channel
active for Stucci textures.

(Preview.blend I saved as a 2.42 file btw!)
2006-06-16 15:31:32 +00:00
Ton Roosendaal
acd56a193b Bug fix:
Files saved with new cloth modifier patch crash in cvs blender. (#define
for cloth is 13 even!). This was caused by lack of upward compatibility
for non existing modifiers.

Also added giant warning in code for the ENUM for modifier types.
2006-06-14 13:25:01 +00:00
Ton Roosendaal
b81e5bac74 Bugfix #4135
Mixdown option (blending sequence audio strips) didn't write proper WAV.
- file length in header chunk was too short (potential crasher)
- endian switch code used swab(), which wasn't defined to work when src and
  target is identical
- cleaned up some code too... like removing timecursor() for core loop.
2006-06-14 12:42:23 +00:00
Ton Roosendaal
bad72cec61 New feature! (Well, replacement for the exisiting cumbersome "DispView")
Next to the "DispWindow" there are now two new choices:

- Display render output to Image Editor
- Display render output to Screen-sized Image Editor

Both options won't open a 2nd window anymore, which makes work quite more
smooth even, especially because 'focus' isn't lost. Further it fits in the
'single window UI' paradigm of Blender. Should have been done 10 years ago!

Lastly it might bypass issues with X11... having 2 windows with opengl
context is not always stable in Linux.

This option uses an identical trick as for the Compositor viewer, using an
Image block with a fixed name ("Render Result").

The flow, when invoking a Render, goes as follows:
- first it checks if there's an Image Editor visible displaying the "Render
  Result", if so then it uses that area-window.
   (Use this option for dual-monitor setups for example, a render will always
   go to the same location then)
- else it checks if there's an Image Editor open in general, it then
  assigns that window the "Render Result" Image.
- else: it searches for the largest Area in the screen, and turns that into
  a temporal Image Editor showing render output.

After a render, an ESC will push back the former view, if the Area type has
changed.

Same rules apply for the "Full Screen" option. Here an ESC will always go
back to the regular Screen, and restore Area type if required.

While rendering, the queue for the renderwindow isn't handled yet, so you can
not zoom (nor get full redraws), as for the regular render window.

Existing conflicts:
- in FaceSelect mode, the Image editor enforces to display the face texture
  after rendering again.
- when using an Image window for compositing, you'll lose the Viewer output
  on a render.

Implementation note:
While rendering updates, nothing is drawn in frontbuffer anymore. That's
good news for b0rked OpenGL drivers (and faster). However, for the few
OpenGL cards that don't do a "swap copy" but a "swap exchange" you get
issues... has to be worked on. I'm afraid we have to drop frontbuffer
drawing altogether.

Other fixes:

- Hotkeys NumPad 1, 2, 4, 8 will set zoom levels (was half coded only?)
  Use SHIFT to zoom out (smaller).

- Rendering Tile updates still had draw errors on edges of tiles, in OSA
  only. (Caused by commit 4 days ago)
2006-06-12 14:39:08 +00:00
Ton Roosendaal
cbf1dc9e21 Bugfix #4299
The Scene audio.mixrate variable was zero on creating new scenes, causing
synced playback to fail.
Added initialize in kernel, and patch in buttons drawing to set the value
for wrongly saved files.

(Pixelshading: small correction for more optimal code)
2006-06-11 09:06:07 +00:00
Brecht Van Lommel
56e2aa7001 Fix for bug #4276: LSCM unwrap crash.
Set ABF as default unwrapper.
Disable some debugging prints in unwrapper code.
2006-06-10 20:06:41 +00:00
Ton Roosendaal
0950a40411 Plumiferos report: Appending objects with ipo drivers, didn't expand to
include the driver object.
2006-06-08 19:26:08 +00:00
Joseph Gilbert
4c802a0a78 *bugfix
-another quick fix. Runtime checks complain that a unused reference being returned from a function.
2006-06-07 15:09:07 +00:00
Joseph Gilbert
8e631bd4b6 *bugfix
-uninitialized variable being returned from a function
2006-06-07 15:04:14 +00:00
Peter Schlaile
4467c26337 == Sequencer & IPOs ==
This code enables IPO-pinning for Sequence-strips again, by working
around the missing libdata in blenloader/intern/readfile.c.

Bad hack(tm). Maybe we find a way, to make Sequence-strips true libdata?

It also fixes two places in IPO-editing where frame-locking wasn't handled.
2006-06-05 19:04:19 +00:00
Andrea Weikert
e5218ce9aa - added saving of the image previews to the .blend file to prevent having to load the full images for the image previews
- new struct PreviewImage in DNA_image_types can in the future be moved to struct ID for storing previews for all types
2006-06-05 11:07:15 +00:00
Ton Roosendaal
6f1c45ced4 Plumiferos bugreport:
Appending a Scene, which had group-objects, accidentally linked these
objects to the active scene too. This was a mixup with the case of just
appending a group.
2006-06-02 20:48:22 +00:00
Ton Roosendaal
3b783f1db8 Recommitted Erwin's change in version patching Bullet;
- code was on wrong location, all version patches should be grouped,
  otherwise we completely lose track!
- code didn't use the WOPHY_BULLET define...
- made more clear comment on meaning of version patch
2006-05-15 09:52:59 +00:00
Erwin Coumans
93c47e1071 - Added support for kinematic objects (interaction between rigidbodies), deriving linear/angular velocity from previous transform/current transform and deltatime.
- Made another attempt to migrate from Sumo to Bullet: import of older files automatically switch to Bullet, but you can override it, and save the file in 2.42 version. then it stays Sumo physics.
2006-05-11 00:13:42 +00:00
Martin Poirier
1c89ae39cc === Animation ===
Patch #4044 patch to change the step when changing frame with up or down arrow keys.

This adds a per Scene setting to specify the number of frames skipped by the up and down arrow.
This setting can be changed in the Timeline header and in the Anim/Playback section of the Scene settings.

Upon loading a file without that setting or creating a new scene, it is set to 10

Also fixed the Start and End frame buttons in the Scene buttons to do a proper refresh.
2006-04-16 16:50:26 +00:00
Ken Hughes
dfb545a77c Fix some warning for unsigned vs signed comparisons. 2006-04-03 20:31:10 +00:00
Geoffrey Bantle
cc8051eead -> Stored Selections in Mesh DNA
Stored selections now get saved to mesh library blocks as direct data.
The idea that stored selections are 'erased' when leaving editmode and
switching objects is pretty mysterious for the user. Note that currently
the mselect array in a mesh is not written to file.  Not sure whether
to change this or not.
2006-04-03 19:02:22 +00:00
Daniel Dunbar
1d5cca805b - fix some minor typing/redefinition errors, should
not be misconstrued as "working" by myself
2006-04-02 18:11:02 +00:00
Ton Roosendaal
9e53e4ee47 Bugfix #4042
New empty drawsize and type are initialized on loading old files now.
2006-04-02 12:39:11 +00:00
Campbell Barton
79e58e66c2 FREE_WINDOWS was declaring a typedef for __int64. __int64 was alredy defined.
so WIngws' GCC was seeing it as
typedef long long long long... and not compiling.

Added an ifndef around this decleration. safe solution. but probably remove the typedef entirely.

- Cam
2006-03-30 22:44:33 +00:00
Nils Thuerey
0a63b3c0ca Several minor fixes:
- Added part of Austin's msvc8 fixes (vector::erase function
  was "misused"), hopefully compiles better now.
- Ctrl-b now also bakes a selected fluidsim domain
  similar to the softbodies.
- Added surface smoothing option for domains: default is
  1, higher values result in a smoother surface (and probably
  slightly higher comupation times), while 0 means the surface
  is not modified at all.
- Added BLENDER_ELBEEMBOBJABORT environment variable in readBobj,
  if >0 quits blender when a not yet existing fluidsim
  frame should be loaded. Useful for rendering simulations
  as far as possible from the command line.
- Surface normals pointer is now set to NULL in readfile.c
- Fixed win32 error string handling, now uses a function
  to return the string from the solver.
- Fixed fluidsim particle halo scaling problem.
- Solver update
2006-03-29 07:35:54 +00:00
Ken Hughes
7c0deed11c Fix gcc warning about usage of identifier "main"; renamed the variable to
"mainptr".
2006-03-27 22:33:21 +00:00
Ton Roosendaal
b746e27c82 Scene id->us user counter was always set to 1 on a file read, which did not
work for Composite nodes using a scene... when you delete such a node the
scene could get zero users then.

Now scenes count users correctly, and are initialized to 1 on the correct
place.
2006-03-20 20:52:04 +00:00
Ton Roosendaal
cf0408a4f6 More environment map stuff:
- added a zoom factor for Planar Environment Map, allowing to zoom in or
  out on the reflected object. The zoom is corrected when rendering, so it
  just gives control over the resolution.
- Planar maps don't cycle anymore, but only render the front plane, using
  standard image texture extend mode.
- threaded rendering is back in envmap render
2006-03-19 17:50:53 +00:00
Ton Roosendaal
c2fffa60b1 Small fix for surviving changes in library data.
In case an armature object lost its object-data, it crashed in trying
to link the pose data.
2006-03-07 21:50:26 +00:00
Peter Schlaile
327d413eb3 this patch features several cleanups and bugfixes for the sequencer:
- blur works again (this was a serious bug in gamwarp...)
- seperates all sequence effects into a seperate file with a clean interface
- thereby fixing some obscure segfaults
- seperates the scope views into a seperate file
- adds float support to all effects and scope views
- removes a bad level call to open_plugin_seq
- FFMPEG seeking improved a lot.
- FFMPEG compiles with debian sarge version cleanly
- Makes hdaudio seek and resample code really work
2006-03-07 20:01:12 +00:00
Ton Roosendaal
9ce587e211 Quickfix: appending scenes from a file, won't expand the other scenes
when used in a compositor node... this is quite useless, and invokes
importing all data.
2006-03-07 14:47:41 +00:00
Brecht Van Lommel
b9861d2a80 Array modifier patch by Ben Batt! (#3788)
This modifier allows to make arrays of meshes, with multiple offset types:
- constant offset
- offset relative to object width
- offset with scale and rotation based on another object

The number of duplicates can be computed based on a fixed count, fixed length
or length of a curve. Duplicate vertices can be automatically merged.

Nice docs and example files available in the wiki:
http://mediawiki.blender.org/index.php/BlenderDev/ArrayModifier
2006-03-01 15:30:10 +00:00
Ton Roosendaal
f68b0ddb2a Recoded Panorama rendering.
The old implementation was added quite hackish (talking about 10 yr ago).
You also had to make a small image slice, which was extended Xparts in
size. That also required to adjust the camera angle. Very clumsy.

Now; when enabling the Panorama option, it will automatically apply the
panorama effect on the vertically aligned tiles. You can just enable or
disable the "Pano" button, to get a subtle lens effect like this:

(without pano)
http://www.blender.org/bf/rt.jpg
(with pano)
http://www.blender.org/bf/rt1.jpg

For Panorama render, the minimum slice size has been hardcoded to be 8
pixels. The XParts button goes up to 512 to allow that. In practice,
rendering 64 slices will already give very good images for a wide angle
lens of 90 degrees, the curvature of straight lines then is equal to
a circle of 256 points.
Rendering a full 360 degree panorama you do by creating an extreme wide
angle camera. The theory says camera-lens 5 should do 360 degrees, but
for some reason my tests reveil it's 5.1... there's a rounding error
somewhere, maybe related to the clipping plane start? Will look at that
later. :)

Also note that for each Xpart slice, the entire database needs to be
rotated around camera to correct for panorama, on huge scenes that might
give some overhead.

Threaded render goes fine for Panorama too, but it can only render the
vertically aligned parts in parallel. For the next panorama slice it has
to wait for all threads of the current slice to be ready.

On reading old files, I convert the settings to match as closely as
possible the new situation.
Since I cannot bump up the version #, the code detects for old panorama
by checking for the image size. If image width is smaller than height, it
assumes it's an old file (only if Panoroma option was set).
2006-02-27 12:39:36 +00:00