Commit Graph

500 Commits

Author SHA1 Message Date
17dd29cb85 Bugfix, own collection
New displist code for curves/text copied display lists without 
checking for freeing existing ones. Caused some memleaking.
2011-01-08 15:35:15 +00:00
8f21a43535 split BKE_utildefines.h, now it only has blender specific defines like GS() MAKE_ID, FILE_MAXDIR, moved the generic defines to BLI_utildefines.h.
no functional changes.
2011-01-07 18:36:47 +00:00
5f64450726 remove assignments which are unused. 2011-01-06 01:29:13 +00:00
64c3ea272e Todo item: linked curve objects behaves incorrect with modifiers
Use object's displists for storing deformed tesselated curve. Was unable to
totally get rid of curve's displist because of how texture space is calculating.
2011-01-05 10:40:38 +00:00
5226155369 Memory for bevelSplitFlag wasn't duplicated in copy_displist.
Also corrected memory allocation comment for this array.
2011-01-03 19:45:08 +00:00
2c7a2a6a41 Sync fix with render branch. Solves crash with ob->bb not found. 2010-12-06 17:41:12 +00:00
7d80a4a067 Get rid of G.rendering in curve_to_displist 2010-11-11 10:01:10 +00:00
cf673cf80a Fix #24643: Nurbs Surface Preview resolution overrides render resolution
NURBS surfaces always used resol{u,v} from spline and never used curve's render resolutions.
Now, if curve's render resolution is non-zero then it'll override resolution for all
splines when rendering (in needed direction only, ofcource).
2010-11-11 09:56:39 +00:00
6b767b8018 fix [#24499] Consistency Issue with LassoSelect/ExtendOption
Added extend option to lasso. 

also...
- selecting bones wasn't checking their layer of if they were hidden in a number of places.
- fixed memory leak.

small unrealed changes
- added PBONE_VISIBLE macro
- renamed functions used for paint selectoin from *_tface to paintface_*. sine they no longer have anything todo with tface's.
- removed scanfill include from BLI_blenlib.h, this is only used in very few places and quite specific.


Noticed lasso select is broken for metaballs and face mask mode but this has been the case for a while, will look into it next.
2010-11-03 01:56:02 +00:00
8268a4be71 most unused arg warnings corrected.
- removed deprecated bitmap arg from IMB_allocImBuf (plugins will need updating).
- mostly tagged UNUSED() since some of these functions look like they may need to have the arguments used later.
2010-10-16 14:32:17 +00:00
25bbf99a79 replace SIDE_OF_LINE macro with line_point_side_v2() inline function.
made a number of files build without unused warnings.
2010-10-15 05:18:45 +00:00
916085247a Fix #23925: converting text into a curve looses materials
filldisplist worked incorrect with polys when charidx matched but col doesn't
Also fixed material loose when converting text/curve to mesh
2010-09-22 05:08:52 +00:00
5f77852a47 Do not reset bevel/taper object when they've got incorrect type - just do
noting in makebevelcurve and calc_taper functions if type is not curve.

This avoids DNA changing depended on object recalc.
2010-08-05 08:39:25 +00:00
708ef64663 include cleanup, no functional changes
- removed DNA_brush_types.h from DNA_scene_types.h (and some other similar cases)
- removed DNA_wave_types.h (never used)
- removed Main.wave
2010-08-04 04:01:27 +00:00
cc061d075f == Sculpt ==
More icon work

* Added icon defines for all the brushes
* Load all the brush icons after loading regular Blender icons
* Added the brush icons to their respective tool enums in RNA
* Fixed a couple unused-variable warnings
2010-07-25 22:23:40 +00:00
cc0f3146e7 Shapekeys for curves/surfeces
Fix #21498: Edit curve Shape key /252_r 27318

Added full support of shape keys for curves and nurbs surfaces including
topology changing in edit mode, undo stuff, updating relative keys when
working under basis and so on.
2010-07-25 11:57:36 +00:00
a470640f2e sequencer float conversion was only using rgb -> float conversion inconsistantly, some places used colorspace conversion, some not.
Added IMB_float_from_rect_simple() for the sequencer to use.
2010-07-12 14:57:24 +00:00
8517a7a3cd Fix #20965: metaballs partticles and volume material crash rendering
Fix #21187: 2.5svn26947 - particles + meta sphere = crash in rendering

Use separated displists for mballs in view3d and render stuff.
Do not recalculate displist for view3d while rendering - mball.c
uses several global variables which shouldn't be accepted from
parallel threads.
2010-06-28 11:07:02 +00:00
989cca1434 Fix #21369: normals on extruded text and curve objects were flipped
for the backside, giving problems with e.g. boolean operations.
2010-06-23 13:18:50 +00:00
d200243a5c Fix #22654: Converted curve from mesh disappearing
Curve object should have ob->bb=NULL if there is no derivedMesh
2010-06-23 09:58:02 +00:00
d885635216 Fix #22137: Shrink wrap modifer with curves, projection bug
Always pack DispList into one block for deformation modifiers and
create DerivedMesh for all curve objects passed to get_dm. This would
fix problems with modifiers when they're creating dm for
additional information (as it's made in shrinkwrap for normals).

Small additional code cleanup in curve_calc_modifiers_post().
2010-05-13 19:23:52 +00:00
fba7ebcbea replace add_v3_v3v3() --> add_v3_v3() where possible 2010-04-21 12:27:48 +00:00
f7717b2e80 option to use curve point weights to influence particle effectors. 2010-04-21 11:59:47 +00:00
0d19b4167c - Call DAG_id_flush_update for each object in convert operator if keep_original
option is switched off. This fixes trouble when user converts curve which is
  set as taper/bevel object to mesh (scene kept unchanged until object
  recalculation).
- Moved checking of taper/bevel objects type to RNA property update handlers.
- Added resetting taper/bevel object in do_makeDispListCurveTypes it this
  objects aren't curves.
2010-03-30 18:10:05 +00:00
d0f8d9f38c Fixed segmentation fault when non-curve object is setting as a taper
Deny user to select non-curve objects for taper and bevel lists, also
added some checking into displist and curve modules - object could be
converted from curve to mesh (would be better to unset bevel/taper
object in this case -- will try to implement a bit later).
2010-03-30 14:33:05 +00:00
bdea39c809 Fix #21827: Outer portions of extruded 2D curves do not render correctly
DispList->rt is used by render stuff to set vlak flags. This rt field is setting
to nurbs's flags in displist creation function. Possible flags for nurbs are
CU_SMOOTH and CU_2D. CU_SMOOTH is ok, but CU_2D conflicts with R_NOPUNOFLIP.

I cleared rt's CU_2D flag. Don't forget about possible conflicts if new
nurbs flags will be added.
2010-03-30 09:57:58 +00:00
57101c4fd2 Second attempt at committing the different render slot implementation. This
has a fix that hopefully solves the problem on mac/win. Also fixes #21322,
render slots not working well with FSA.
2010-03-27 15:35:34 +00:00
0912d84f2a Fixed incorrect rendering result when bevel object has got modifiers
enabled only for realtime display or only for rendering
2010-03-26 15:06:30 +00:00
66efe00d4d Fix #21761: Curve+"Fill deformed"+modifier ( not all)= not rendered
Incorrect displist base was passed to curve_to_filledpoly().
2010-03-25 18:41:57 +00:00
1e9bf0cfdb spaces -> tabs, (4 spaces == 1 tab, only for white space preceding text) 2010-03-22 09:30:00 +00:00
546ca400d8 removed unused includes, except for physics and particle related files 2010-03-21 13:42:25 +00:00
391cc2d004 merge own commits into render branch into trunk since 27560
27562, 27570, 27571, 27574, 27576, 27577, 27579, 27590, 27591, 27594, 27595, 27596, 27599, 27605, 27611, 27612, 27613, 27614, 27623
2010-03-20 16:41:01 +00:00
14e29a62dc "Fill deformed" option for 2D curves
Add new option named "Fill deformed". If this option is switched on.
2D curve will be first deformed by modifiers and only then be filled
with faces.
2010-03-16 21:09:53 +00:00
ac76568e67 Fixed incorrect calculation of constructive modifiers when rendering.
DerivedMesh was crating from object's disp instead of specified one.
2010-03-14 13:05:42 +00:00
838842581c - Fixed trouble with rendering curves with disabled modifiers, which are
disabled for realtime displaying but enabled for rendering.
- Calculate tex space for curves before modifiers applying.
2010-03-08 13:49:13 +00:00
3ddbd2abe5 Fixed segmentation fault error when entering curve's edit mode when
there is sufsurf modifier first in the stack.

Some optimizations in curve_calc_modifiers_post():
  - Calculate allverts array only for curve modifier applying to curve
    without derived mesh.
  - Do not calculate deformedVerts array each time deformation modifier
    is applying to derived mesh.
2010-03-08 10:05:51 +00:00
8d53f3f04e Enable "Build" modifier for curves/surfaces. 2010-03-07 10:40:52 +00:00
d0c70ad1d5 Constructive modifiers for curves and surfaces
Used approach with creating DerivedMesh for curves whet they've got such modifiers.

Available modifiers are: array, edge split, mirror, solidify, subsurf.
2010-03-05 16:47:52 +00:00
ad01c90ee3 Revert render slots commit for release, I can't find the bug or even redo
it myself, there will still be render slots just old implementation.
2010-02-16 19:24:04 +00:00
2061f91741 Render Slots: change the implementation by moving it from the render to the
image code, this should be clearer and makes reusing the Render struct later
on easier.
2010-02-16 15:49:22 +00:00
081c1205a3 correct fsf address 2010-02-12 13:34:04 +00:00
10240261e9 J-key render switching back, now with 10 slots.
Implementation note: this was done by giving each Render a slot number,
and for every slot a new Render will be created. Not sure if this is
ideal, but it ensures that all passes, render info, etc are separate so
you can also compare render layers and passes, in 2.4x only whatever it
was currently displaying was backed up.
2010-02-09 19:37:37 +00:00
fffce6c554 Sculpt: Multires
* Displacement coordinates are now stored differently, as a grid per
  face corner. This means there is duplication of coordinates, especially
  at low subdivision levels, but the simpler implementation justifies it
  I think.
* ToDo: conversion of existing multires files (2.4x or 2.5x), loading them
  may even crash now.
* Editmode preservation/interpolation code also has not been updated yet.

* Multires now works on the CCGDerivedMesh grids instead of CDDerivedMesh,
  which should be more memory efficient.
* There are still bad memory peaks (if you're using 32bit) when subdividing
  or propagating displacements. Though at least there should be no huge
  memory blocks allocated, which windows is now to have trouble with.
* Still found some weird spike artifacts at lower multires levels, some also
  happening before this commit. Perhaps computation of tangents needs to be
  tweaked more.

* Multires modifier now has viewport, sculpt and render levels. Also the
  levels have been made consistent with subsurf, previously the same level
  of subdivision was one less for multires.
* Both multires and subsurf modifier now can have their subdivision level
  set to 0 for no subdivision.
2009-11-25 14:07:12 +00:00
91446e9aad Math Lib
* Post-conversion commit, fixing some introduced warnings.
2009-11-10 20:50:34 +00:00
37e4a311b0 Math Lib
* Convert all code to use new functions.
* Branch maintainers may want to skip this commit, and run this
  conversion script instead, if they use a lot of math functions
  in new code:
  http://www.pasteall.org/9052/python
2009-11-10 20:43:45 +00:00
3ffb695b10 Shape Keys
Blended shape keys can now be displayed & edited in edit mode. This
is much like showing an armature modifier in edit mode, and shape keys
now are a applied as a virtual modifier (for mesh & lattice only, curve
doesn't fit in the stack well due to tilt).

The main thing missing still is being able to switch between the active
shape key in edit mode, that's more complicated.. but the weights of
other shapes can be edited while in edit mode.

One thing to be careful about is that this does automatic crazyspace
correction, which means that if you edit a shape key with a low value,
the actual vertices will be moved to correct for that and actually move
a (potentially much) longer distance.

Also includes some UI tweaks, mainly placing some buttons horizontally
since the vertical list was getting too long.
2009-10-22 16:35:51 +00:00
06d57fdae0 Shape Keys
Internal change to not apply the shape keys to the Mesh vertex coordinates,
but rather use it as part of the derivedmesh/displist evaluation. This only
has one practical advantage right now, which is that you can now make a
linked duplicate and pin it's shape key to a different shape than the first
object.

Further, this makes shape keys correctly fit into the modifier stack design,
which will help implement some other features later. Also it means the mesh
vertex coordinates are now really the orco's.
2009-10-22 09:31:07 +00:00
ba5df38d66 use static functions where possible for some local functions. 2009-09-14 16:52:06 +00:00
ee768ada68 curve twist
* added new twist method - "Tangent", suggested by Martin.
  the nice thing about this is its stable no matter how you rotate the data, rotation is local to each segment.
* added smooth option that smooths the twisting (before applying user twist), to workaround Z-Up and Tangent's ugly curve twisting. Id prefer not to have this however it makes tangent much nicer. Possibly tangent can be improved some other way and this can be removed.
  A smooth value of 1.0 will iterate over and smooth the twisting by the resolution value of the spline.
* Minimum-Twist method now corrects for cyclic twist by taking the roll difference between first and last, then increasingly counter rotate each segment over the entire curve. Previously it calculated from both directions and blended them.

details
* BevPoints use quats rather then 3x3 matrix.
* added BevPoint direction "dir" and tangent "tan" used only for 3D curves.
* don't calculate BevPoint->cosa, BevPoint->sina for 3D curves.
* split bevel tilt calculation into functions.
* nurbs curves currently don't generate tangents and wont work with tangent twist method.
* some of the use of quats should be optimized.
* smoothing is not animation safe, the higher the smoothing the higher the likelyhood of flipping.
2009-09-11 15:35:30 +00:00
2b5f89ed9f svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r23043:23119 2009-09-11 03:00:09 +00:00