Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2006-12-05Modifier Stack: Limit calculation to required data.Ben Batt
This commit upgrades the modifier stack to only calculate the data which is needed, either by modifiers further down the stack or by other functions at the end of the stack (e.g. drawing functions). This speeds up modifier stack recalculation, especially where vertex groups and UV coordinates are concerned. For example, a mesh with an Armature modifier followed by a Subsurf modifier would previously have required the Subsurf modifier to interpolate all the vertex groups in the mesh, slowing down modifier calculations considerably. With this update, vertex group data is not propagated beyond the Armature modifier, so calculations are faster. Note that this depends on the order of modifiers in the stack. If the Armature and Subsurf modifiers were swapped in the above example, the Subsurf modifier would have to interpolate vertex groups, as they are needed by the Armature modifier.
2006-12-01Two hours of fixing details based on Klocwork source review. Useful report,Ton Roosendaal
although it has a lot of noise. Not to mention our bad string code gives a load of warnings. I've reviewed specifically: - file reading/write - dna and library code - node system - entire render module Done a couple of files in src/ too, seemed to be nice errors.
2006-11-29Render Monster support: (part 1)Ton Roosendaal
Removed all limitations from render code for maximum threads. The only define for this now is in BLI_threads.h, and currently set to 8. Note that each thread renders an entire tile, and also allocates the buffers for the tiles, so; more threads might work better with smaller tiles. IMPORTANT: node system won't work yet with more than 2 threads! So, don't try material nodes or compositing with over 2 threads. That I'll commit later today. What does work (should work :) is AO and soft shadow now.
2006-11-28Render Baking upgrade:Ton Roosendaal
- Now baking itself is threaded too (like for render, max 2 cpus. Moving this to 4 cpus is on todo. Goes twice as fast! - fix: ESC from bake was broken... - other fix: toolbox menus didn't treat sublevel string lengths OK, truncating items like for Group library names.
2006-11-22Upgrades to the UVProject modifier:Ben Batt
- New perspective projection capability. If a camera is used as the projection object, the modifier detects whether to do perspective or orthographic projection based on the camera type. If any other object type is used as the projection object, orthographic projection is used. - Orthographic projection actually works properly now. - The projected UVs are scaled and offset so that the image is centred in the projecting camera's view. - AspX and AspY inputs have been added to control the aspect ratio of the projected UVs. Also: - I have added the Mat4MulVec3Project() function to BLI_arithb.h; this function converts a 3-dimensional vector to homogeneous coordinates (4-dimensional, with the 4th dimension set to 1), multiplies it with the given matrix, then projects it back to 3 dimensions by dividing through with the 4th dimension. This is useful when using projection matrices.
2006-11-21Bugfix, own collection:Ton Roosendaal
Random seeding is still not perfect in render, especially lack of good thread support still. - VectorBlur node was calling seed for each exec, causing other nodes to get fixed random too. - added seed in non-OSA main loop for render - use BLI_srandom, is better than BLI_srand
2006-11-21Fix for commit from Brecht:Ton Roosendaal
2006/11/19 00:07:32 CET Fix for bug #5250: inaccurate conversion between edit and pose mode bones. Two very bad bugs: - replacing atan() with atan2() should also remove the M_PI correction! This is the equivalent: angle=atan(x/y); if(y<0) angle+=M_PI; angle= atan2(x, y); - the new NormalizedVecAngle2() call was negating an input vector, causing calling code to screw up. All arithb.c calls should not alter input.
2006-11-19Fix for bug #5250: inaccurate conversion between edit and pose mode bones.Brecht Van Lommel
Using acos(dot(u, v)) to find the angle between two vectors is quite inaccurate, and there's a better way to do it, as explained here: http://www.plunk.org/~hatch/rightway.php Also changed the use of atan for computing roll to atan2 in some places, the latter avoids accuracy and division by zero issues.
2006-11-17CMake lists initial submission. Documentationand further verification for ↵Jacques Beuarain
different platforms will follow soon. This was just tested against current CVS on MSVC 2005 with Verse, QuickTime, OpenEXR, Player all on.
2006-11-15Patch #2307, by Bob HolcombTon Roosendaal
Loadsa new compo nodes, most added in new menu "Mattes". - Seperate into YCC - Combine YCC - Seperate into YUV - Combine YUV - (Chroma) Difference Matte - Chroma Key - Luminance Key - Color Spill correction Main problem is missing docs still... Bob is working on it, he'll also make tooltips for all buttons. Some UI things might change too, like more clear names.
2006-11-13Just a few fixes to the indention of some functions (purely cosmetic code ↵Joshua Leung
changes)
2006-11-12Added custom vertex data support to editmode. Only used for vertex groupsBrecht Van Lommel
now, others can be added later (sticky, shape keys). Beside one small fix for knife exact vertex group interpolation, is intended to work the same as before. Also fixes bug #5200, related to editmode undo and vertex groups. And corrects the editmode to faceselect mode selection conversion, that was broken in a previous commit.
2006-11-11Added custom face data support in edit mode. The code used to do this isBrecht Van Lommel
the CustomData module from the modifier stack rewrite, but with additions to make it also usable in edit mode. Some of the datatypes from that module were move to a DNA header file, they are not saved to file now, but will be soon. The only code that wasn't abstracted is the uv collapse / merging code. It is rather complicated, will look into that in the future. There should be no user level changes.
2006-11-08Modified the way booleans preserve face data, and cleaned up someBrecht Van Lommel
duplicate code. Also removed redundant files from the bsp module, that where replaced by boolop last year, no sense in updating them for these changes. On the user level things should still work the same, this is only preparation work. Not counting the removed files, -1501 lines of code, not too bad :)
2006-11-07MSVC compiler is non-posix for some string operations...Ton Roosendaal
Created a BLI_strcasestr and used existing BLI_strcasecmp in code now.
2006-11-06Merged Google Summer of Code sculptmode/multires/retopo tools.Nicholas Bishop
From the tracker: https://projects.blender.org/tracker/index.php?func=detail&aid=5018&group_id=9&atid=127
2006-10-26LocEulSizeToMat4 arith function.Martin Poirier
Creates a 4x4 matrix from location, size and euler angles components. Coded by Joshua Leung (aligorith) for one of his patches. Integrating right now because it's useful in and of itself.
2006-10-24Irregular shadow fix: the MemArena module didn't give callocs, only malloc.Ton Roosendaal
Made nice crashes that way... but not in !@%@$ OSX because it seems to clear memory unwanted. Solve dit with adding API call in MemArena to default to callocs. Also removed malloc() from MemArena, replaced with MEM_mallocN().
2006-10-15=translate hoek to angle=Tom Musgrove
renamed the dutch variable hoek to angle globally arithb.c changes done by Matt Plough
2006-10-11some tiny changes to the softbody systemJens Ole Wund
- UI for self collision ball size definition - edge collision mode added (almost a bug fix) volatile test file --> http://www.wund.homepage.t-online.de/hidden/sb_col_must_1_2.blend
2006-10-02- fix for relative path: BLI_strncpy needs to be passed len+1 !Andrea Weikert
(introduced by my last patch - ouch)
2006-10-01==Mat4ToEul==Tom Musgrove
a utility function to convert 4x4 matrices to a euler rotation, contributed by Joshua Lueng (aligorith)
2006-09-25A possible problem was noted by Cyril Brulebois regarding copyright issuesAlfredo de Greef
with regards to the noise functions in yafray based on Ken Musgrave's original code. I had left the 'Copyright' notice in the comments, and according to Cyril Brulebois this is a problem. In fact, from what I understand this makes it even impossible to use or modify the code in other software. But since it is not a verbatim copy of the code but rather based on Musgrave's work, he suggested I change it to explicitely state that it is in fact based on the code from the 'Texturing & Modeling' book. And since the yafray code is in turn based on the blender code, I better adapt the blender code too. This reminded me that I also have forgotten to include the copyright notice in the mersenne twister rng code I used for the Python Noise module. This does clearly state to include the original notice with any resdistributed code, in modified form or not. So I added that too. I hope that solves the problems.
2006-09-16FIX: [ #4944 ] Shift F4 menu folders are freezedAndrea Weikert
- code for adding 'c:\' on Windows missed fact that BLI_convertstringcode is also used for databrowse. - now only replacing when path starts with '/', which isn't the case with databrowse
2006-09-06Added support for threadsafe MEM_mallocN/MEM_freeN in the guardedallocBrecht Van Lommel
module itself, replacing the special MEM_mallocT/MEM_freeT functions. Mutex locking is only enabled when threads are running. There was no good reason to have these separate, it just led to ugly hacks when calling functions with non-threadsafe malloc from threads.
2006-09-05Redesigned the EdgeSplit modifier's splitting algorithm to be betterBen Batt
structured and more maintainable. The old algorithm could leave the mesh in an inconsistent state during recursive calls, making it quite fragile. The new algorithm keeps the mesh in a consistent state, and should be more robust. This commit fixes the issues EdgeSplit was having with non-manifold meshes (bug #4946, also reported by several other people). EdgeSplit now works correctly with all the test files I have. This commit also fixes the BLI_ghash_remove function to correctly decrement gh->nentries (the number of entries in the hashtable) on a successful removal.
2006-08-28Integration of the Google Summer of Code Modifier Stack Upgrade project. TheBen Batt
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-22* Patch #4909 by Joseph Eagar (joeedh)Nathan Letwory
- 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-20Huge commit: VERSEJiri Hnidek
- 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-20Fixes for:Andrea Weikert
[ #4337 ] Cant refresh the C:\ [ #4710 ] Wrong paths in file selector under user prefs [ #4353 ] Using ^ char + click on Open/Load = Blender crash Details: Fixes for root paths like C:\ on Windows, where Blender still used '/'. Also contains fixes for relative paths: - no relative paths for the default dirs (forced to absolute) - message if using relative paths when .blend file hasn't been saved. Lastly also added '.' for refresh in root paths. Windows FindFirstFile/FindNextFile also return '.' and '..', but not in root paths like C:\
2006-08-13Bugfix #4843 revisitedTon Roosendaal
This is a new incarnation of compatible_eul(), a function called: void Mat3ToCompatibleEul(float mat[][3], float *eul, float *oldrot) It uses the two euler extraction methods as added by Brecht a while ago, and checks for compatibility each, and then picks the best of the two based on minimal difference with 'oldrot'. Gives for rotation key inserting a much higher hitrate for OK eulers.
2006-07-05broken noticed VecAngle3 and VecAngle2 comments wernt that helpfull. updated ↵Campbell Barton
to make more sense.
2006-06-30Bugfix #4544Ton Roosendaal
Another fix in scanfill. A really old one... probably over 5 years. Fill crashed when there were loose edges that were zero sized.
2006-06-30Bugfix #4544Ton Roosendaal
The 'edge fill' code failed on filling tiny small polygons. It has a limit check for double points, which was hardcoded set to 0.0003. That is (commented in code too) a weak part. Better would be to define a bounding box first, and then derive the limit from that. Further, the edge fill code uses blender EditEdge data, which fails when the filling code removes edges. Certainly a topic to work on once, this code is from the 80ies!
2006-06-19Bugfix #4363Ton Roosendaal
In windows, without temp path set, the 'save buffers' render option crashes. I've coded a blenlib BLI_is_writable(char *filename) to check for such cases. This is not much needed in Blender, since the open() command is checked for. However, file saving happens deep inside the C++ exr lib, and it throws an exception crash when a file cannot be written.
2006-06-03Rotation constraint update.Ton Roosendaal
Small fix, but results are at least less frustrating now. It uses the "compatible euler" function from inserting key positions here, preventing euler values to be constrainted that differ weirdly. I've tried several other approaches to get a definite rotate constraint, but only constraining a single axes seems to me impossible magic still...
2006-03-27-> Stored SelectionsGeoffrey Bantle
Previously Blender did not store the order in which vertices, edges or faces were selected in edit mode. In many cases it is useful to have this data, however it is not desirable to store every selection made. Now blender stores selections in the order in which they were made in a linked list called 'selected' in EditMesh. EditSelection structs are created whenever 'EM_store_selection' from editmesh_lib.c is called (currently only on user selection with mouse). There are several cases in which they might be deallocated by calling the 'EM_remove_selection' function however: -When the user deselects something with the mouse ('mouse_mesh' in editmesh_mods.c) -When switching selection modes stored selections that are not relevant to the new mode are removed by the 'EM_strip_selections' function (multi-select mode is supported) -When the vertex, edge or face pointed to by a certain stored selection is deallocated -When EM_clear_flag_all is called and where the flag passed to the function contains the 'SELECT' bitmask. -When leaving edit mode (making stored selection data persistent across editing sessions will require modifications to mesh DNA later) Todo: There are a few cases still where you can temporarily end up with a stored selection that points to an element that is no longer selected (edge loop de-select can cause this for instance). The solution to this is to add a call to EM_remove_selection from 'EM_select_edge' and 'EM_select_face' when these functions are being used to deselect elements. For the sake of completeness however this will also require that an 'EM_select_vert' function be coded and called at all appropriate parts of the editmesh code. I will look into this later in the week. For now there are two tools that already take advantage of the stored selections. The first one is 'merge at first or last vertex' in the merge menu (the 'firstvert' and 'lastvert' pointers are gone from EditMesh). The second tool is path select, which builds a path between the last vert selected and the second to last vert selected. This allows you to build complex path selections in a short amount of time like this 'select A, select B, path select. select C, path select. select D...'
2006-03-26Made group work from multiple selection's (before it used the first selected ↵Campbell Barton
face/vert/edge) so you can select 2 faces and then get all coplaner faces around both. Added fp to face and edge edit data so as to store edge length and face area/perimeter. (in the union so minimal overhead) current implimentation is fairly optimized. Change to arithb.c was just to command Inpf as being the dot producr.
2006-03-25Added select group edges (Length/Direction/FaceUsers)Campbell Barton
Added VecAngle2 - needed for grouping by normal and planer faces. Made select face & edge group ignore hidden faces. fixed a bug where hiding faces didnt update G.tot*sel
2006-03-25Added select group meny to mesh editmode.Campbell Barton
Currently only works for faces. Try Shift+G in face/editmode.
2006-03-19=== bugfix win32 - python ===Andrea Weikert
Fixed BLI_exist: In Windows stat doesn't recognize a dirname ending is a slash, exept when it's the root dir ("C:\\"), where it is required. So trailing slashes are only removed when filename is longer than 3 chars. Also fixed Python Sys.c that now uses BLI_exist instead of calling stat directly.
2006-03-13Two fixes in renderpipe...Ton Roosendaal
- Renderwin still used a thread-unsafe malloc, in the header text print - Setting clipping flags in vertices for parts required a mutex lock after all... I thought it would go fine, but noticed on renders with small amounts of faces that sometimes faces disappear from a render. (was doing movie credits, so all faces are visible! Otherwise it would have hardly been noticable...)
2006-03-01Array modifier patch by Ben Batt! (#3788)Brecht Van Lommel
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-02-27pthreads for Makefiles/cygwin (don't forget to update lib/windows).Chris Want
2006-02-25==SCons==Nathan Letwory
+ SCons support for pthreads-win32. Library will be committed shortly into lib/windows, so be sure to check commit list and update that as well when the pthread lib is available.
2006-02-25Replacing SDL threads with pthread.Ton Roosendaal
For some reason I thought SDL thread handling would be much simpler... but the migration to posix pthread went very smooth and painless. Less code even, and I even notice a slight performance increase! All threading code is still wrapped in blenlib/intern/threads.c Only real change was making the callback functions to return void pointer, instead of an int. The mutex handling is also different... there's no test anymore if a mutex was initialized, which is a bit confusing. But it appears to run all fine still. :) Nathan Letwory has been signalled already to provide the Windows pthread library and make/scons linking. For MSVC we might need help from someone else later though.
2006-02-24restored SDL_WaitThread() again, SDL_KillThread() is not OK.Ton Roosendaal
2006-02-20==SCons==Nathan Letwory
* add -pthread compile switch for linux2 platforms to be on the safe side.
2006-02-20Another attempt to solve linux issues.... now threads get killed inTon Roosendaal
end instead of using SDL_WaitThread from example code...
2006-02-18The regular warning fix update; includes two variables that were usedTon Roosendaal
without initialization. For Brecht: source/blender/blenkernel/intern/subsurf_ccg.c:329: warning: left-hand operand of comma expression has no effect This line I don't understand...