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
2008-11-13Merge of trunk into blender 2.5:Brecht Van Lommel
svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r12987:17416 Issues: * GHOST/X11 had conflicting changes. Some code was added in 2.5, which was later added in trunk also, but reverted partially, specifically revision 16683. I have left out this reversion in the 2.5 branch since I think it is needed there. http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=16683 * Scons had various conflicting changes, I decided to go with trunk version for everything except priorities and some library renaming. * In creator.c, there were various fixes and fixes for fixes related to the -w -W and -p options. In 2.5 -w and -W is not coded yet, and -p is done differently. Since this is changed so much, and I don't think those fixes would be needed in 2.5, I've left them out. * Also in creator.c: there was code for a python bugfix where the screen was not initialized when running with -P. The code that initializes the screen there I had to disable, that can't work in 2.5 anymore but left it commented as a reminder. Further I had to disable some new function calls. using src/ and python/, as was done already in this branch, disabled function calls: * bpath.c: error reporting * BME_conversions.c: editmesh conversion functions. * SHD_dynamic: disabled almost completely, there is no python/. * KX_PythonInit.cpp and Ketsji/ build files: Mathutils is not there, disabled. * text.c: clipboard copy call. * object.c: OB_SUPPORT_MATERIAL. * DerivedMesh.c and subsurf_ccg, stipple_quarttone. Still to be done: * Go over files and functions that were moved to a different location but could still use changes that were done in trunk.
2008-09-29resolve some compiler warnings with intel c/c++ compilerCampbell Barton
* subsurf code had a lot of unused variables, removed these where they are obviously not needed. commented if they could be useful later. * some variables declorations hide existing variables (many of these left), but fixed some that could cause confusion. * removed unused vars * obscure python memory leak with colorband. * make_sample_tables had a loop running wasnt used. * if 0'd functions in arithb.c that are not used yet. * made many functions static
2008-09-10Bugfix [#17594] separated mesh crashDaniel Genrich
2008-09-09Bugfix for [#17329] Bevel Weights are lost after SubsurfDaniel Genrich
2008-09-05Merge of first part of changes from the apricot branch, especiallyBrecht Van Lommel
the features that are needed to run the game. Compile tested with scons, make, but not cmake, that seems to have an issue not related to these changes. The changes include: * GLSL support in the viewport and game engine, enable in the game menu in textured draw mode. * Synced and merged part of the duplicated blender and gameengine/ gameplayer drawing code. * Further refactoring of game engine drawing code, especially mesh storage changed a lot. * Optimizations in game engine armatures to avoid recomputations. * A python function to get the framerate estimate in game. * An option take object color into account in materials. * An option to restrict shadow casters to a lamp's layers. * Increase from 10 to 18 texture slots for materials, lamps, word. An extra texture slot shows up once the last slot is used. * Memory limit for undo, not enabled by default yet because it needs the .B.blend to be changed. * Multiple undo for image painting. * An offset for dupligroups, so not all objects in a group have to be at the origin.
2008-04-17Patch from GSR that a) fixes a whole bunch of GPL/BL licenseChris Want
blocks that were previously missed; and b) greatly increase my ohloh stats!
2008-03-26made editmode face copy menu appier with when there is no active face ↵Campbell Barton
(without options that required an active face) active face drawing didnt always work since it used the last selected element for drawing. moved stipple into glutil.c rather then using 128 bytes in the stack for each stipple draw.
2008-03-07Normal map tangents are now not always averaged at vertices anymore,Brecht Van Lommel
but only when the UV's are connected. That fixes some artifacts when baking and using tangent space normal maps. It does mean increased memory usage because it now stores 4 tangents per face like UV's, and increased processing time, but there's no simple way around that.
2008-02-18Fix for bug #8052: particle emit from verts and volume didn't supportBrecht Van Lommel
subsurf/derivedmesh mapping yet. Also added int-to-pointer and back conversion function to solve warnings. Note that it is only allowed to store an int in a pointer and then get it back, but not a pointer in an int!
2008-02-13Render SimplificationBrecht Van Lommel
This adds a few settings to control global render quality, for faster renders when tweaking lighting etc. The implementation is not so great, and this should really be part of a proper render profile and preset system. So for now it's a hidden Peach feature, enabled by setting rt to 1. Before the next release, I'll either remove or improve it. Settings are: - Maximum subsurf level - Child particles percentage - Maximum shadow map samples - AO and SSS quality factor
2008-01-07Patch to change license to GPL only, from GSR.Chris Want
2008-01-01removed blenderdef.h, BIF_*, BDR_* and BSE_* header files (except for ↵Campbell Barton
BIF_gl.h and BIF_glutil.h)
2007-09-25made active vert/edge/face draw properly with modifiers applied and made ↵Campbell Barton
their theme default white. removed active face draw in Face/UV (which is now paint mask mode) mode.
2007-09-22added an active face for the mesh editmode and normal mesh - this is needed ↵Campbell Barton
because the TFace flag was not always easy to access from editmode. using the last selected face was almost good enough however when selecting verts and edges the last selected face would become inactive and the space image would flicker about too much. The active face is used for getting the space image at the moment and keeps scripts that use this flag working also. This has 2 commands to get and set, so the variable is not accessed directly. all "UV Calculate" scripts work now last commit crashed when in solid draw mode, it seems subsurf modifier is ignoring the displayMask since MTFACE is available. just made it do a null check for now. uvcalc_follow_active_coords.py - should be done inC and put in the snap menu.
2007-09-22made draw shadow work as it used to (I didnt understand at first that this ↵Campbell Barton
was to draw the subsurfed UV faces) this is really slow, its unuseable on suzanne subdivided twice on my computer with 2.45 and trunk, this could be sped up however it would need to be subsurf spesific.
2007-08-28Another fix for the editmode textured draw commit, subsurf vertex colorBrecht Van Lommel
drawing didn't work.
2007-08-28Textured drawing in Edit ModeBrecht Van Lommel
============================= - In textured drawmode it now draws the texture, with solid mode lighting. - UVs and vertex colors for subsurf are not computed incremental yet, so editing in textured drawmode then may not be as fast as the other modes. Implementation Notes: - Added textured drawing functions to the editmesh and subsurf derivedmeshes. - Removed some unused, legacy subsurf code that directly used Mesh. - Restructured texture drawing a bit to make it more clear and allow for editmode drawing. (Peach feature request)
2007-07-28Bone Heat WeightingBrecht Van Lommel
=================== This is a new automatic vertex weighting method, next to the existing envelope based method. The details are here: http://www.blender.org/development/current-projects/changes-since-244/skinning/ This is based on section 4 of the paper: "Automatic Rigging and Animation of 3D Characters" Ilya Baran and Jovan Popovic, SIGGRAPH 2007 Implementation Notes: - Generic code for making mesh laplacian matrices has been added, which is only used by bone heat weighting at the moment. - Bone to vertex visibility checking is done with the raytracing code. - Fixed an issue in the subsurf limit calculation function, where the position of vertices on boundary edges was wrong. It is still not the correct position, but at least it's in the neighbourhood now.
2006-12-13Multiple UV and vertex color layers: (still work in progress)Brecht Van Lommel
These can be created and deleted in the Mesh panel in the same place as before. There is always one active UV and vertex color layer, that is edited and displayed. Important things to do: - Render engine, material support - Multires and NMesh now lose non active layers Also CustomData changes to support muliple layers of the same type, and changes to layer allocation, updated documentation is here: http://mediawiki.blender.org/index.php/BlenderDev/BlenderArchitecture/CustomData
2006-12-07Fix for bug #5177: EdgeSplit modifier mode "From Flag" doesn't show sharpBen Batt
edges in Editmode This bug was due to CCGDerivedMesh (the DerivedMesh backend used to store editmode subsurf results) not copying edge flags correctly, meaning that they were unavailable to the EdgeSplit modifier. I have updated CCGDerivedMesh to copy edge flags correctly.
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-11-26Fix for bug #5308:Brecht Van Lommel
Smooth normals drawing wrong with subsurf followed by array modifier.
2006-11-20* remove a stray ; and place a declaration before any actual code. msvc8 was ↵Nathan Letwory
falling over these. GCC needs some good spanking for allowing this type of code to get through by compiling it /Nathan
2006-11-20Added custom vertex/edge/face data for meshes:Brecht Van Lommel
All data layers, including MVert/MEdge/MFace, are now managed as custom data layers. The pointers like Mesh.mvert, Mesh.dvert or Mesh.mcol are still used of course, but allocating, copying or freeing these arrays should be done through the CustomData API. Work in progress documentation on this is here: http://mediawiki.blender.org/index.php/BlenderDev/BlenderArchitecture/CustomData Replaced TFace by MTFace: This is the same struct, except that it does not contain color, that now always stays separated in MCol. This was not a good design decision to begin with, and it is needed for adding multiple color layers later. Note that this does mean older Blender versions will not be able to read UV coordinates from the next release, due to an SDNA limitation. Removed DispListMesh: This now fully replaced by DerivedMesh. To provide access to arrays of vertices, edges and faces, like DispListMesh does. The semantics of the DerivedMesh.getVertArray() and similar functions were changed to return a pointer to an array if one exists, or otherwise allocate a temporary one. On releasing the DerivedMesh, this temporary array will be removed automatically. Removed ssDM and meshDM DerivedMesh backends: The ssDM backend was for DispListMesh, so that became obsolete automatically. The meshDM backend was replaced by the custom data backend, that now figures out which layers need to be modified, and only duplicates those. This changes code in many places, and overall removes 2514 lines of code. So, there's a good chance this might break some stuff, although I've been testing it for a few days now. The good news is, adding multiple color and uv layers should now become easy.
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-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-03-11Fix for bug #3802: Display problems with modifiers and uv face selectBrecht Van Lommel
The bug reported here was already fixed some weeks ago, but there were more issues. Modifier display in face select and paint modes was never properly finished. This fixes some small drawing update glitches, and only allows modifiers that preserve a mapping to the original mesh to be applied. Otherwise selection and painting isn't even possible.
2006-02-19Warning fix in subsurf_ccg.c. Also changed subsurf UV vertex and edgeBrecht Van Lommel
handles to be more consistent.
2006-02-09Seam Cutting in Faceselect Mode:Brecht Van Lommel
- Mark Border Seam: mark edges on the border of face selection as seam. - Clear Seam: clears seams in selected faces. Hotkey: Ctrl+E - Alt+RMB Click: mark/clear edge as seam - Alt+Shift+RMB Click: mark/clear seams along the shortest/straightest path from last marked seam. The cost of the path also includes some measure of 'straightness' next to the typical distance to make things work more predicatble and edgeloop friendly. Note that this cuts a path from edge to edge, not vertex to vertex. That gives some nice control over the direction of the seam. Also includes: - Removed old LSCM code. - Fix updates glitches with DerivedMesh/Subsurf drawing in FaceSelect mode. Now there's a drawMappedFacesTex instead of drawFacesTex. - Minimize Stretch menu entry called Limit Stitch. - Removed the lasttface global, was being set before it was used anyway, so might as wel return from a function. - Moved some backbuf sampling code to drawview.c from editmesh, so it can be used by Faceselect and VPaint. - Use BLI_heap in parametrizer.c.
2006-01-13Subsurf UV crasher fix - thanks Malefico and Matthew for test files.Brecht Van Lommel
2006-01-10MSVC compile error fix for subsurf UV.Brecht Van Lommel
2006-01-10Apply Subsurf to UV's.Brecht Van Lommel
This fixes most of the UV distortion issues with subsurf. Near seams however there might still be some distortion, but this should at least not be worse than before. Subsurf UV is enabled by default on new meshes, and can be enabled in the modifier panel for existing ones. Before and after: http://users.pandora.be/blendix/notsmooth.png http://users.pandora.be/blendix/smooth.png
2005-10-10 - silly test inversion, thanks to Stephan Kassemeyer for noticingDaniel Dunbar
2005-10-09 - bug fix for #2948, made ccgSubSurf bail (completely) when it encountersDaniel Dunbar
an inconsistent mesh. I would really like this to be corrected at some other stage, probably on loading, but at least things shouldn't crash now.
2005-08-25Making compiler happy;Ton Roosendaal
- removed unused variables - #if 0 around unused calls - init of uninitialized vars
2005-08-24 - add option to drawMappedFaces to draw with colors (from tface or mcol)Daniel Dunbar
- convert weightpaint/vertexpaint to draw using drawMappedFaces, slightly hacky because during weightpaint mcol's get overridden in order to have them propogate through modifiers. should work fine. - add NULL check in shaded draw, prevents crash w/ dupliframe
2005-08-23 - subsurf getVertCos returned verts in wrong order sinceDaniel Dunbar
shuffling of code... led to fun and crazy results (maybe less fun for les artiste)
2005-08-22 - sillyness... added drawMappedEdges for meshDaniel Dunbar
- revert to drawLooseEdges instead of general drawEdgesFlag - ditched TFace edge flags, done dynamically now which also means don't need to recalc surface on flag changes - added BLI_edgehash, guess what it does
2005-08-21 - added mesh_strip_loose_faces, works in conjunction with make_edgesDaniel Dunbar
to get rid of faces with MFace.v3==0 - change all Mesh's to have ->medge now. This is forced by make_edges on readfile, and in the various exotic important routines, and on conversion back in python. - make python NMesh structure always have medges now (needs testing) - with above two changes it is guarenteed that mf->v3 is never ==0 in main blender code (i.e., all MFace's are actually triangles or quads) and so I went through and removed all the historic tests to deal with MFace.v3==0. Equals lots of deleting, I am in heaven! - removed MEdge edcode flag, no longer needed - added experimental replacement for edge flag system Still are some inconsistencies in FACESELECT mode edge drawing to be ironed out. NOTE: This commit adds an experimental edge flag calc system, based on 10-seconds-of-thought algorithm by yours truly. Would appreciate feedback on how this system works, esp compared to old one and esp on complex or interesting models. To Use: New system is enabled by setting G.rt to a value between 1 and 1000 (Value of 0 uses old system). Value 1000 is reserved for "auto" edge, which is more or less identical to old system but also makes sure that at least 10% of edges are drawn (solves errors for super subdivided meshes). Values between 1 and 999 act as percent (out of 1000) of edges that should be drawn, starting with "most interesting" edges first. Please try it and comment!
2005-08-20 - made make_edge mark edges with LOOSEEDGE appropriatelyDaniel Dunbar
- added user settable defaultEdgeData (for auto edge creation in CCGSubSurf) - bug fix, possible crash on meshes with loose edges but in mface not in medge - missed file in last commit, for proper updating in image window
2005-08-20 - convert all DerivedMesh map functions to use index basedDaniel Dunbar
mapping (instead of Edit{Vert,Edge,Face} pointers) - dropped convertToDispListMeshMapped (whew, glad of it too) - added DerivedMesh drawMappedFaces function - dropped EM suffix for DerivedMesh functions, it was neither particularly correct nor descriptive - converted test_index_mface to test_index_face that also corrects MCol and TFace. Good thing we had three versions of this routine, you never know when one might burn down. - removed flipnorm_mesh, not used anymore (and was incorrect to boot) - Getting face select to work with modifiers turned out to be much more complicated than expected. Reworked mapping architecture for modifiers - basically elements in a DispListMesh are now required to be stored in an order that corresponds exactly to original ordering. MVert/MEdge/MFace all have a new flag ME_XXX_STEPINDEX that is set on each element that is set on the first derived element of each original element. I can't say the code to follow these requirements for subsurf is particularly transparent, but on the upside it is a reasonably consistent and simple system that is memory efficient and allows keeping the DispListMesh structure. - rewrote mirror modifier to be simpler/conform to new requirements for mapped DispListMesh structure. This also means that mirror interacts much better with incremental subsurf calculation (it used to recalc one entire side on any topology change, now it generally avoids that). - added EM_{init,free}_index_arrays and EM_get_{vert,edge,face}_for_index functions to handle mapping indices back into appropriate EditMesh structures. - bug fix, make edges didn't recalc object data - bug fix, initial image assignment to TFace's didn't recalc object data - new feature, added circle select support for FACESELECT - bug fix, creating new faces in editmode duplicated the TFACE active flag - but there should only be one active tface - bug fix, possible crash when deleting all faces in faceselect mode on mesh with tfaces... Still todo: TFace edge drawing is still not always correct in face mode, in particular with a mirror modifier when mesh has edges (and no preceeding subsurf). Have not yet decided how to deal with this. Best solution is probably to do switch to meshes all having MEdge's, in which case I can get rid of TFace edge flags (and need to recalc modifiers on tface selection change).
2005-08-18 - added DerivedMesh.drawUVEdges function & implementationsDaniel Dunbar
- removed DerivedMesh.drawLooseEdges and replaced with much more general drawEdgesFlag function that draws based edge flags. - switch DerivedMesh.drawFacesTex to give user control over which faces are drawn - added object_uvs_changed and object_tface_flags_changed functions to do object recalc flag flush/redraw queueing and added calls in appropriate places - added various edge flags to mark TFace information. This is used by the drawEdgesFlag routine and was the best way I could come up with to deal with drawing TFace information from modifier stack. Unfortunate side effects are (1) uses a lot of MEdge flags (although not needed in file so thats fine) and (2) requires recalculation of modifier stack on UV selection changes. #2 is disappointing but I could not find a better solution. - update UV mesh shadow drawing to use modifier result. At the moment just uses the final result but probably should be integrated with the editmode cage option. - convert draw_tfaces3D to use drawEdgesFlag routine which cleaned up the code quite a bit. - convert draw_tface_mesh to draw using result of modifier stack. Same comment about which result actually gets draw in FACESELECT mode as for UV editor shadow drawing applies. There is a still a bug in that selection is using the wrong mesh to draw.
2005-08-17 - bug fix, free bake didn't workDaniel Dunbar
- bug fix, force free of bake data on exit editmode, can't give user a choice
2005-08-15EditMode armature: mirrored editing feature.Ton Roosendaal
- Option is in EditButtons, Armature panel. - Currently only local X-axis mirror (seems to be default anyway) - Transform then applies changes to the mirrored-name bone as well. - Extrude: also does the counterpart Bone - New: SHIFT+E extrude: extrudes 2 mirrored Bones out of a normal Bone. (creating names by appening _L and _R) Or in short: you can now model a full rig without any manual naming! Of course the names are not too nice... a couple of ideas to explore; - rename a mirrored bone renames counterpart too - allow in weightpaint mode to select Bones - and of course mirrored edit in PoseMode (if that's useful...) Important note: I tweaked the naming convention a bit; names like Bone_L.005 and Bone_R.005 are considered counterparts. However, if you use the "Flip names" option, the number extension is still truncated. BTW: Commits in Zr's code are fixes for gcc warnings. :)
2005-08-14 - cleaned up edge drawing a tad, there were issues with mesh'sDaniel Dunbar
with "loose" edges (edges without a face) and drawing in solid mode. they would either not draw, or draw with a nasty selection outline. Added a ME_LOOSEEDGE flag to mark such edges in displists/mesh and editmode sets it. - changed DerivedMesh drawEdges to take an argument whether it should draw loose edges or not
2005-08-13 - readded Subsurf "optimal" edge drawing/renderingDaniel Dunbar
- added ME_EDGERENDER flag, barely changes things atm except makes sure plain meshes with FasterDraw/etc set still render all edges. The edge drawing system needs a bit of a revamping - it is a cool feature but could use several improvements: (1) The algorithm could be better in choosing the best edges to draw. (2) The drawflags should interact well with modifiers. It is wierd to have a large grid with a deformer that draws no edges because flags are only calculated based on base mesh. (3) Drawflags should not be destroyed by editmode. Better design would be a "Draw % of edges" button. Of course, could also be the feature is not worth it and we should just drop. Feel free to comment if you have an opinion.
2005-08-09Big commit, had to rework lots of selection stuff so that thingsDaniel Dunbar
worked properly with modifiers. Needs more testing I am sure. No, honestly, I wasn't just cleaning for the hell of it, it was *necessary* (I would never do such a thing). Selection should work completely with cage options of modifiers now. - added DerivedMesh foreach functions to iterate over mapped verts/edges/face centers. These replaced some of the drawing functions and are more general anyway. Special edge drawing functions remain for performance reasons. - removed EditFace xs, ys fields - added general functions to iterate over screen coordinates of mesh/curve/lattice objects - removed all calc_*verts* functions that were used for storing screen coordinates in objects. they were recalc'd on the fly for most situations anyway, so now we just always do that. calc_*verts_ext was one of those calls that did dirty things deep down in the callstack (changing curarea and poking at matrices) - rewrote all vertex level selection routines (circle, lasso, bbox) and closest vertex routines (rightmouse select) to use the new system. This cleaned up the selection code a lot and the structure of selection is much easier to see now. This is good for future work on allowing modifiers to completely override the selection system. It also points out some discrepancies in the way selection is handled that might be nice to resolve (mesh vertex selection has fancy stuff to try to help with selecting overlapping, but it only works w/o bbuf select, and curves/lattices don't have at all). - had to remove ton's code to move Manipulator to cage location, this is not reliable (can come up with a different method if requested) - as it happens BezTriple.s and BPoint.s are basically available to be removed, just need to rewrite editipo code that still does background calc of screen coordinates - MVert.{xs,ys} are still around because they are abused in some places for other info (not sure if this is safe actually, since they are short's and the mvert limit went up). And did I mention this commit is comes out to -305 lines? Well it does.
2005-08-08 - added VecLerpf to blenlibDaniel Dunbar
- switch to using DerivedMesh.drawMappedFaceCentersEM to draw face dots, still need to do some work so this works in all selection modes (atm it does not work in no-zbuf mode)
2005-08-07 - bug fix, need to check mapped verts/edges/faces are non-NULL beforeDaniel Dunbar
using in assorted DerivedMesh functions
2005-08-07 - got rid of DerivedMesh.drawMappedEdgeEM function, can be implemented withDaniel Dunbar
drawMappedEdges - added DerivedMesh.convertToDispListMeshMapped function which converts and also returns mapping information for use in editmode - updated DispListMesh derivedmesh to be able to function in editmode - update mirror modifier to support use as a cage - update mirror & subsurf modifiers to properly pass mapping information down modifier stack It is now possible to have a mesh with mirror/subsurf modifiers where you can edit with both as cage. Selecting the mirror'd part works, but of course transform is flipped so it is a bit weird. Not the cleanest code in the world and I can't say I am really happy with the architecture but it works for now and supports the existing feature set.