Commit Graph

11814 Commits

Author SHA1 Message Date
402fbd95cc 2 things:
* Patch #17998
* tex_input_vec now takes 3-vector as first argument (was 4-vector).
2008-11-26 13:07:24 +00:00
d6ba347266 * Added a new Timeline menu entry: Playback -> Sync Playback to Frames/Sec. It's
more convenient and sensible to find this feature, than over in the audio settings 
(dropping frames in playback is not just for audio!)
2008-11-26 00:47:38 +00:00
00fae51fc1 * Added 'Particle System' entries as children of particle system modifiers in the
outliner. Clicking on one activates it and takes you to the object buttons - it's a 
lot better to see what's going on than a little < 1 Part 5 > that gives very little 
indication.
2008-11-25 23:14:00 +00:00
376ba4ac14 * fix path to openexr on irix
* added missing define in storage.c
2008-11-25 12:53:13 +00:00
Nathan Letwory
cac2a438ae * make sure Bullet is enabled when WITH_BF_BULLET=True 2008-11-25 08:00:58 +00:00
96d3d8426e use const where possible and removed some unneeded args (4.3% speedup) 2008-11-25 03:39:30 +00:00
9efb9adac7 minor changes
* less calls to BKE_image_get_ibuf when switching between images
* remove thread debug prints
* use own pixel blending funcs (IMB_blend_color isnt needed in some cases), slightly faster without this.
2008-11-24 22:06:09 +00:00
d467158158 Second step out of three for merging sketching subdivision methods with graph subdivision methods.
Graph subdivision uses graph arc iterators.
2008-11-24 19:24:49 +00:00
933ac8db12 Link pole controls to the parent of the bone with the IK constraint.
Presumably, this should give better result, but tests where not conclusive.
2008-11-24 17:48:40 +00:00
f1474648d3 patch #8583: Add support for gcc on irix
to compile blender with gcc on IRIX, IRIX_USE_GCC needs to be set to true in
user-def.mk.

Other changes related to irix:
 * compile solid from extern/
 * don't build plugins (yet) with "make release" when using gcc (the shell
   script used assumes MIPSpro is installed)
 * use statvfs instead of statfs on irix, like done on solaris
 * use external libs from $(LCGDIR) instead of /usr/freeware
 * use glew header files from $(LCGDIR)/glew instead of the ones installed on
   the system (this applies to other platforms as well)
 * ffmpeg support currently is disabled on irix
2008-11-24 14:15:05 +00:00
360d9acc0b backface culling wasnt working as it should in perspective view with the "Normal" option enabled. 2008-11-24 07:08:51 +00:00
a51f17bc30 painting onto faces was broken when the UV's or faces were flipped, reversing the order that LSCM and many other tools give. 2008-11-24 05:58:00 +00:00
5a87cfe4f8 * changed "Normal" falloff to only fade out at more extreme normals
* tooltip was wrong
2008-11-24 03:06:27 +00:00
6adeff5778 * brush and airbrush match The Gimp, where the total color applied to a pixel during a stroke is limited by the brush opacity. With the airbrush option enabled it will accumulation over the opacity level (as it did before, irrespective of the settings).
* float buffer support for all painting operation and undo.
* only run brush_sample_tex() for textures brushes.
* redraw the brush outline even when nothing is painted.
2008-11-24 02:13:24 +00:00
0cf9844d00 Only paint in the view clipped area when view clip is enabled (space defined by Alt+B). 2008-11-23 17:06:35 +00:00
1a28bf797e [#18021] Rotating gets locked to axis after trackball rotate mode is entered
Reset transform restriction flags when switching to other transformations while running.

Also don't draw constraint if no constraint flag is on (old annoyance).
2008-11-23 15:27:53 +00:00
8a4a2d96d0 Fix bug with name templating text buttons (wrong event). 2008-11-22 22:22:38 +00:00
6ae70999b9 Cache the armature template graph while in editmode.
Display the number of joints in the selected template in the sketch panel
When using selected bones as template, turn off Connected if bone has a parent that is not copied.
2008-11-22 17:58:49 +00:00
f747629133 maximum polyline between clipped rectangle and triangle was 6, but in some cases 7 points were set. set the maximum size of the polyline at 8 to be safe. 2008-11-22 15:09:16 +00:00
923fb888d6 fix for painting onto faces from a side view in perspective mode, they would have jaggie clipping applied that looked bad.
The reason for this was with transforming screenspace points outside the face into UV space and when the bucket bounds was enough outside the face.
For faces viewed side on, this transformation would be applied incorrectly (a bit like trying to apply a projection matrix to a point behind the view), the buckets UV space coords would be incorrect and the wrong pixels would be initialized for that face.

solution is to clip the screenspace face with the bucket before getting the UVs. This should also be a bit faster since the clipped polyline will have a smaller bounding box.
2008-11-22 14:54:49 +00:00
bef72facd5 * smudge tool wanst working (forgot to set the precious mouse location)
* VecWeightf and Vec2Weightf didnt have return types defined.
2008-11-21 06:17:26 +00:00
ecfeed042d * added option "Normal", same as the vpaint option, gives more natural looking brush strokes.
* faces that were ignored were also not taken into acount when checking UV seams - causng bleed not to work properly in some cases.
* commented early pixel filling loop exit that fails in some cases.
2008-11-21 03:09:48 +00:00
c6ff0ec49d Change name templating to &S and &N (less potential bugs).
It now also accepts lower case versions (&s and &n).
2008-11-20 22:23:01 +00:00
0f3e985aca merging trunk 17485:17520 2008-11-20 21:57:21 +00:00
520a5b0926 Crasher fix.
If vertex groups had % in them, the function making the menu string would crash (in release only).
2008-11-20 21:45:22 +00:00
935ed8a53b commit yesterday broke scaling in the sequencer (dumb mistake)
also changed 3 if's into a switch statement for selecting the interpolation.
2008-11-20 00:34:24 +00:00
9bb9859753 draft for arc iterators to unify code.
Just moving code to work home, nothing to see here.
2008-11-19 20:01:13 +00:00
5ab1256f5b * use utility function brush_painter_paint that runs the project_paint_op in a callback, (hopefully making tablets work properly)
* removed own interpolation function, use bilinear_interpolation_color instead.
2008-11-19 07:57:25 +00:00
e6a4f4cf29 svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r17471:HEAD 2008-11-19 03:43:03 +00:00
f8e56e96bf Split up the following imbuf functions in 2...
void bicubic_interpolation(struct ImBuf *in, struct ImBuf *out, float u, float v, int xout, int yout);
void neareast_interpolation(struct ImBuf *in, struct ImBuf *out, float u, float v, int xout, int yout);
void bilinear_interpolation(struct ImBuf *in, struct ImBuf *out, float u, float v, int xout, int yout);

Added...
void bicubic_interpolation_color(struct ImBuf *in, unsigned char *col, float *col_float, float u, float v);
void neareast_interpolation_color(struct ImBuf *in, unsigned char *col, float *col_float, float u, float v);
void bilinear_interpolation_color(struct ImBuf *in, unsigned char *col, float *col_float, float u, float v);

This is needed so for projection painting but generally useful if you want to get the interpolated color of a pixel in an image without having a destination imbuf.

While editing these I noticed the functons are a bit dodgy, they assume the input ImBuf has matching float/chr buffer to the output.
2008-11-19 03:28:07 +00:00
a4776347ea bicubic_interpolation - dont use pow(val, 3.0f) at all, do (val*val*val) instead,
Tested overall speedup is about 5x when scaling 4096x4096 -> 4000x4000 in the sequencer.

There were some artifacts in the resulting image but double checked and the old code gives the same problems.
Added back old code with #if 0's since its a bit more readable.
2008-11-19 02:07:23 +00:00
5c6fd58a79 Some improvements brecht suggested, only noticable change is faster multithreading
General optimizations
* Precompute 1/x when dividing by x multiple times.
* Use float constants like 0.0f instead of 0.0, avoids conversions from float to doubles and back.

ProjectPixel
* make pixel (and similar pointers elsewhere) a union with a float and unsigned int pointer to reduce the number of casts a little. generally there are a lot of casts going on in the code, makes it hard to read.

project_paint_begin()
* the perspective case checks with (*projScreenCo)[3] > 0.001) for faces behind the view. - Changed to use the clip start from get_view3d_viewplane 
* removed arbitrary check for brush size to disable threads.

imapaint_paint_sub_stroke_project()
* Make clone tool use IMB_blend_color to reduce the code and support blend modes.

imapaint_paint_sub_stroke_project_mt()
* Make threaded and non threaded mode use same function (just dont start threads when its set to 1)
* removed PIL_sleep_ms, was not needed and slowed down threading (my bad!, was copied from bake code).
2008-11-18 13:51:51 +00:00
52ab2f5200 Added option to use another UV layer as a clone source, to paint from one uv layer's image and UVs into the active layer. 2008-11-18 03:28:50 +00:00
a54dc97c13 * Added buttons for accessing options "occlude", "backface cull" and "bleed", note that bleed is 0.0 by default, before it was always 2.0;
* use a faster method of getting a pixels screenspace location.
* check if its possible to break out of pixel to bucket/face intersection early - ~7% overall speedup (ignoring redraw time).
* removed scanline intersection function (added back incase they were needed but it looks like there not)
* speedup for painting with only 1 image (use a loop without context switching checks)
* more commenting + cleanup
2008-11-18 00:17:13 +00:00
9ba822c4d7 Fix leak on exit (it's not a real fix, still uses silly global mem) 2008-11-17 23:02:53 +00:00
c08d374df2 merging trunk 17457:17485 2008-11-17 22:19:05 +00:00
826c6d935d QuatOne was so wrong is would make Hamilton cry.
Thankfully, very little code used it, the only exception being the retarget code in etch-a-ton.
2008-11-17 22:13:45 +00:00
2d0a005aaa Template retarget now works with normal conversion (not in Quick mode that is). 2008-11-17 21:11:12 +00:00
497c9b4ce7 Use grease pencil manhattan distance threshold for strokes. 2008-11-17 21:03:41 +00:00
139f6bb1aa New option for roll correction.
Calculate new roll based on the angle to the normal of the joint (cross produce of the two bones).

This works best in some cases but not in others, so it's an option for now.

I'll have to see if I can iron the left over kinks, then it can be made the default (with Align to view an added option).
2008-11-17 20:38:04 +00:00
3a1cfa5015 Added BF_PROFILE_LINKFLAGS, Compiling with BF_PROFILE=1 was also throwing a python error. 2008-11-17 10:43:12 +00:00
a10d4192b5 disabled painting to offscreen buckets, was causing priblems when zooming in on large models. also simplified backface test. 2008-11-16 18:25:15 +00:00
a0a7018363 * fix "dot drawing" problem - draw lines inbetween updates when redrawing the view like how existing painting works. (this means slow systems wont have the problems when they would only see dots as they dragged their mouse around)
* bucket resolution is now set from the brush size so there is around 9 buckets under the brush - (previously was fixed to 128x128).
* brush sizes below 40 disable multithreading, since threads only speeds up cases where each bucket has enough pixels in it for each core to spend some time.
* make smear use bicubic pixel lookups so a low Spacing value works as expected.
* smear tool was darkening pixels a tiny bit.
* fix for simple mistake causing ProjectPaintImage arrays not to be thread safe.
2008-11-16 15:26:15 +00:00
63d3829144 svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r17443:HEAD 2008-11-15 16:55:37 +00:00
db434c3434 * clone tool didnt work when the object was not at the center point.
* added clone button to the paint editbuttons (was only in the image window before)
* ctrl+clicking to set the 3d cursor also sets its depth to the face its over (much more useful when cloning and rotating the view)
* support for painting and cloning for tiled textures (for UV's outside 0-1)
* more consistant veriable names, merged image arrays into a ProjectPaintImage type to be less confusing.
2008-11-15 16:20:37 +00:00
a92969e8f1 made undo on multiple images works 2008-11-15 02:58:47 +00:00
d2023e070c Pkey toggle sketching panel
(it used to do select parent, but that's already done with [ and ] for children, no need for a second key).
2008-11-14 17:33:15 +00:00
1462aa4bc3 tile based undo's now works while projection painting.
TODO - float buffer support & for some reason painting on multiple images at once dosnt restore the tiles to the right image then undoing.
2008-11-14 17:30:55 +00:00
6eda50f8d9 Merging trunk 17342:17457 2008-11-14 16:09:23 +00:00
59ac45dd12 Reset max cost to FLT_MAX (this fixes a bug with early culling)
Optimization when number of buckets == number of joints
2008-11-14 15:46:51 +00:00