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
2004-12-27Biiig commit! Thanks to 2-3 weeks of cvs freeze...Ton Roosendaal
Render: - New; support for dual CPU render (SDL thread) Currently only works with alternating scanlines, but gives excellent performance. For both normal render as unified implemented. Note the "mutex" locks on z-transp buffer render and imbuf loads. - This has been made possible by major cleanups in render code, especially getting rid of globals (example Tin Tr Tg Tb Ta for textures) or struct OSA or using Materials or Texture data to write to. - Made normal render fully 4x32 floats too, and removed all old optimizes with chars or shorts. - Made normal render and unified render use same code for sky and halo render, giving equal (and better) results for halo render. Old render now also uses PostProcess options (brightness, mul, gamma) - Added option ("FBuf") in F10 Output Panel, this keeps a 4x32 bits buffer after render. Using PostProcess menu you will note an immediate re- display of image too (32 bits RGBA) - Added "Hue" and "Saturation" sliders to PostProcess options - Render module is still not having a "nice" API, but amount of dependencies went down a lot. Next todo: remove abusive "previewrender" code. The last main global in Render (struct Render) now can be re-used for fully controlling a render, to allow multiple "instances" of render to open. - Renderwindow now displays a smal bar on top with the stats, and keeps the stats after render too. Including "spare" page support. Not only easier visible that way, but also to remove the awkward code that was drawing stats in the Info header (extreme slow on some ATIs too) - Cleaned up blendef.h and BKE_utildefines.h, these two had overlapping defines. - I might have forgotten stuff... and will write a nice doc on the architecture!
2004-12-22Another last minute bug... (thanks aphex)Ton Roosendaal
Add text, TAB, CTR+Z, TAB -> crash... :/ Just forgot 1 if()... was there for weeks! So...
2004-12-19Fix in hook menu; "select" option only worked in vertex selectmode.Ton Roosendaal
2004-12-07Bugfix #1981Ton Roosendaal
Pad-minus key didn't work in typemode transform(). Very easy, just flipping an && with || :)
2004-12-05Reported on IRC;Ton Roosendaal
Converting subsurf to mesh didn't display new Mesh object in correct wire, when susurf was optimal.
2004-12-05Special bf-committers request; Lamp/World/Material now each have 10Ton Roosendaal
channels to link texture to. The amount of code changes seems large, but is mostly getting rind of hardcoded values (6 and 8) for channels, replacing it with MAX_MTEX. Further did some fixes; - Ipo for Lamp showed too many mapping channels - Texture MapTo buttons for lamp missed the slider to blend texture color - Lamp texture mapping "View" only worked for Spot, now it uses lamp- view vector for all types. (Nice for projections!)
2004-12-04- added undo pushes for buttons invoking file window in scene buttonsTon Roosendaal
(set directory, backbuf, scene) - small annoyance; after extrude the transform() didn't react to the "midtog" feature (middlemouse constraint)
2004-12-04Bug fix #1952Ton Roosendaal
When rotating camera itself in camera view, and choose local axis rotate, the camera flipped around. Was due to using viewmat[][] while it changes... Solved in the simplest elegant way; hope Martin will cope with this in new transform!
2004-12-03Bug fix #1945Ton Roosendaal
Undo push missing after "ALT/SHIFT+D and ESC".
2004-12-02Three little fixes as reported by Campbell;Ton Roosendaal
- Mesh editmode; SHIFT+F fill didnt set default vertex color - Parented spotlight had wrong (black) dashed line to parent when selected - Constraint line draw while transform wasn't reset, causing sometimes to draw when using the (ugly) G.moving flag...
2004-11-26Small tweaks to make 3d drawing a tad more interactive, and; somethingTon Roosendaal
for our interactive 3d artists! - AL+Z (potato) texture view now draws objects without Texture Faces compliant with (new) default in engine. Meaning lit faces, using Material RGB for diffuse and specular. It used to draw these as 'shaded' which is quite useless. Per definition, Potato mode is supposed to show what engine draws. (Note; this only for Mesh objects) - Added a couple of more calls to ensure Shaded drawmode updates on changing RGB sliders, moving lamps to layers, or switch layers This based on feedback from Mal, who'll also give it all good tests.
2004-11-23Fix for #1839Ton Roosendaal
On large changes of the Lattice resolution button, the undopush crashed. Reason was that the push happened for buttons before the actual event for buttons was executed. Solved by creating new event UNDOPUSH that's being added to the queue by by buttons now. - Made button undo texts for number buttons more clear - Added undo push for missing Add lamp/empty/lattice/camera
2004-11-21Fix for #1864Ton Roosendaal
In transform code the old global G.totvertsel was still used to define centroid (editmesh). Replaced with nice local variable.
2004-11-16Three bugfixes, as reported on release;Ton Roosendaal
- loopselect doesnt work proper with vertices outside window - outliner crash on script select (potential showstopper...) - make curve parent menu, press ESC, crashed blender All minimal changes in code. no new development, promised!
2004-11-12Headerprint for extrude along face normal was sometimes wrong, because ofBrecht Van Lommel
invalid pointer.
2004-11-12Fix for error found by aphex;Ton Roosendaal
Some extrusions still use proportional mode when thats on. Was due to adding transfrom('g') for non-normal extrude. Made it new code 'h'
2004-11-11Tsk tsk! Using a short to count vertices amount in Mirror menu doesntTon Roosendaal
work when there are a lot, eh :)
2004-11-11Proper fix for Ton's commit.Martin Poirier
Original commit message: "Cosmetic change (after bugreport), scaling in axis (press X,Y,Z) now prints in header "local" too, this to indicate it only does local scales." The solution was half good, since only object mode is restricted to local axis constraints. Fixed by checking for the Local flag (which was properly set).
2004-11-10Cosmetic change (after bugreport), scaling in axis (press X,Y,Z) now printsTon Roosendaal
in header "local" too, this to indicate it only does local scales. In editmesh: added NULL pointer in return of function to prevent crash on error "give quad verts"
2004-11-10Made numerical input work for extrude along normals (Bug #1762)Martin Poirier
Gosh, I hate working with the old transform (of course, all those hackish fix are not making it any better, mind you).
2004-11-08Removed silly "==0" to check if "apply deform" should happen.Ton Roosendaal
I'm just binary flipped...
2004-11-07Tweaked the force_draw() calls, to allow headerprint() to work whileTon Roosendaal
doing a transform. Solves bug reported by Brecht about this.
2004-11-07Lotsa undo stuff added;Ton Roosendaal
- ALT+U undo menu shows history for global undo as well - Added undo pushes for buttons window more consistantly - Added it & tested for ipowindow too - Added it in outliner - And quite some missing occasions for 3d window editing
2004-11-07Fix, as reported by Martin; the 'make dupli real' code would also applyTon Roosendaal
size and rotation.
2004-11-04- Added proper undopush for 'apply object'Ton Roosendaal
- Added proper edgeflag test for knife - Fixed error in 'make face' for cases I again didn't foresee (ordering of vertices can be any, need to try 3 cases before rejecting)
2004-11-01Bugfix for #1717 ↵Martin Poirier
http://projects.blender.org/tracker/index.php?func=detail&aid=1717&group_id=9&atid=125 Scaling with PET with numerical input used a three axis input while it only gave access to one. Made it use and give access to only one as it should.
2004-11-01- Bug #1714; editmode undo error when ESC after extrude (missing undopush)Ton Roosendaal
- Curve Join now moves all curves to 2D (if its 2D) - FGon extrude keeps FGon flags correctly - After Append undo-push added - In almost all Ipo editing commands; undo-push added - Icons in outliner now all consistant grey - Zoffs button had to 20 high (hmetal :)
2004-10-30Crease edit (SHIFT+E) didnt use the proper edge selection flag yet.Ton Roosendaal
(Bug 1709)
2004-10-29Bug 1702Ton Roosendaal
Holding shift, while in extrude transform mode ('n', along normal) popped the extrusion back to beginning, this due to storage of printing value in dvec[3]. Simple fix :)
2004-10-27Bug #1670Ton Roosendaal
Just one simple report, 4-5 hours work... reported was that selecting in action+nla window is slightly off. Quite annoying. It appeared to be a wrong usage of View2D facilities, causing part rewrite of a lot of stuff here. Mainly did it as excercise, to get better understanding of all of this. Would need some testing though! PLus; fixed crash while using "single user" menu with Ipos in Object.
2004-10-16Small fix for #1628Ton Roosendaal
Constraints on an object with hooks (or other deformer) didnt update OK while transform(). The fix is easy code to isolate for Martin, so hopefully he can find integrated solution in transform() refactor :)
2004-10-15one teensy comment.Stephen Swaney
no executable changes
2004-10-14Accidentally committed a line paste with declaration outside of { }...Ton Roosendaal
Thanks jK!
2004-10-14Three fixes;Ton Roosendaal
- bug #1307; copy full scene didn't update links in constraints (was an oldie bug!) - also fixed same for Hooks, which even't didn't duplicate yet - HOME in outliner (show hierarchy) now only does current scene
2004-10-12Extrude crashed on extruding verts/edges only, due to lack of pointerTon Roosendaal
check in theeths commit of 20h ago. :) Theeth; the signal I added (for normal) was hackish, as noted in comments! Hopefully in new transform that all will be nice.
2004-10-11Moved headerprint to editscreen (for logical placement and reusability).Martin Poirier
Made extrude along normals more sane. Now behave like a move along an arbitrary axis (including Ctrl/Shift applications and typemode). Also prints "Along faces normal" in the header, to tell the user what's happening.
2004-10-07- Outliner: new items (on first show) come up collapsed nowTon Roosendaal
- Outliner: click on Armature data goes in posemode And long wanted, and found out is just a threeliner in code: - Posemode: click-select-drag or grab-gesture switches to 'rotate' automatic when no bone can be translated.
2004-10-06Version 1.0 of the new OutlinerTon Roosendaal
The outliner is a hierarchical diagram displaying a list of data in Blender and its dependencies. The 'databrowse' doesn't really show it, and Oops is too chaotic still. And most of all, the former two don't offer much tools. After discussions on irc, Matt came with this design proposal; http://mke3.net/blender/interface/layout/outliner/ Which is closely followed for the implementation. The current version only shows all 'library data' in Blender (objects, meshes, ipos, etc) and not the 'direct data' such as vertex groups or NLA. I decided to make it inside the Oopw window, as an option. You can find the option in the "View" pulldown, or directly invoke it with ALT+SHIFT+F9 Here's a quick overview of the Outliner GUI: - Header pulldown has options what it can show (Visible = in current layers) - click on triangle arrow to open/close - press AKEY to open/close all - Leftmouse click on an item activates; and does based on type a couple of extra things: - activates a scene - selects/activates the Object - enters editmode (if clicked on Mesh, Curve, etc) - shows the appropriate Shading buttons (Lamp, Material, Texture) - sets the IpoWindow to the current IPO - activates the Ipo-channel in an Action - Selected and Active objects are drawn in its Theme selection color - SHIFT+click on Object does extend-select - Press DOTkey to get the current active data in center of view TODO; - rightmouse selection; for indicating operations like delete or duplicate - showing more data types - icon (re)design... - lotsof options as described in Matts paper still...
2004-10-01OK. Here's the long awaited first step (V0.01!) of SoftBody. It is calledTon Roosendaal
from within mesh_modifiers (kernel deform.c). It copies vertices to a temporal particle system (struct SoftBody with BodyPoint structs) to do physics tricks with it. For each frame change the delta movements (based on standard ipo anim or even other deforms (later) are applied to the physics system. How to apply and calculate satisfying results is not my thing... so here I'll commu- nicate with others for. Since it's in the modifier stack, the SoftBody code can run entirely on original data (no displists!). Right now I've implemented 2 things; - "Goal" which is a per vertex value for how much the current position should take into account (goal=1 is without physics). This is a powerful method for artists to get control over what moves and not. Right now i read the vertex color for it. - And some spring stuff, which now only works based on force moving it to the originial location. This doesnt work with 'goal'... erhm. - You can re-use physics vars from engine, used right now is (in Object) - damping - springf (spring factor) - softflag (to set types, or activate softbody for it - The SoftBody pointer in struct Object is only runtime, nothing saved in file To prevent all users going to complain it doesn't work, I've hidden the functionality. :) The buttons to set softbody 'on' only show now (psst psst) when the object has name "soft" as first 4 characters. You can find the buttons in the F7 Particle Interaction Panel (which should be renamed 'physics properties' later or so. Demo file: http://www.blender.org/bf/softbody.blend
2004-09-28Cleaned the apply deform code in Blender. Now also using the modifier code.Ton Roosendaal
Right now, it works for Meshes (all deformers including Curve) and for Curve/Surfaces (only hooks). More follows.
2004-09-28Eek! Commit for 'making transform aware for mesh select mode' caused allTon Roosendaal
other editmodes to crash in transform()!
2004-09-27Transform() now is edge/face selection aware too.Ton Roosendaal
Theeth; i've done the changes as local as possible, and lotsa comments :P
2004-09-24EditMesh refactory + undo recodeTon Roosendaal
The changelog is very long... it's on the web too: http://www.blender3d.org/cms/Mesh_editing_rewrite.425.0.html EditMesh refactor notes (user) **** New selection modes When entering Edit Mode for a Mesh, you now have the choice for three selection modes. These are shown as icons in the 3D header (hotkey is being searched for!). - Vertex Select Select vertices as usual, fully compatible with how previous version work - Edge Select Vertices are not drawn anymore, and selections happen by default on the edges. It is a true edge select, meaning that you can select three out of four edges in a face, without automatic having the 4th edge selected. - Face Select Instead of vertices, now selection 'points' are drawn in the face centers. Selected faces also get a colored outline, like for edges. This also is true face select, for each face individual regardless selection status of its vertices or edges. While holding SHIFT, and press a selection mode, you can also combine the above choices. Now selection becomes mixed, and will behave as expected. For example; in Edge+Face select mode, selecting the 4 edges of a face will select the face too. The selection modes and optional drawing modes (like transparant faces, normals, or solid drawing) all work together. All of Blender's mesh editing tools now react to the correct selection mode as well. Most noticeable it's in: **** Extrude Extruding in Edge or Face Select mode allows much more precise control over what's extruded and what should be excluded. Try for example a checker pattern selection, and extrude it. New is the fixed translation when faces are extruded. This always follows the (averaged) face normal(s) of the old face(s), enabling much easier working in 3D views . A single 'G' (Grab) or 'R' (Rotate) or 'S' (Scale) will change transform modus as usual. **** Other things to note - Hiding edges/faces will also behave different based on Select Mode. - while editing, normals of faces are updated always now - Border select (BKEY) has 2 different rules for edges; when one edge is fully inside of the border, it will only select edges that are fully inside. Otherwise it selects each edge intersecting with the border. - in face mode, adding vertices, edges or a circle is invisible... - "Add monkey" now works as a normal primitive (rotated and on 3d cursor) - Mesh undo was fully recoded, hopefully solving issues now with Vertex Keys and Groups - Going in and out of editmode was fully recoded. Especially on larger models you'll notice substantial speed gain. **** Todo Add 'FaceSelect mode' functionality in EditMode, including zbuffered selection, display and editing of UV texture. EditMesh refactor notes (coder) **** Usage of flags in general The "->f" flags are reserved for the editmesh.c and editmesh_lib.c core functions. Actually only selection status is there now. The "->f1" and "->f2" flags are free to use. They're available in vertex/edge/face structs. Since they're free, check carefully when calling other functions that use these flags... for example extrude() or subdivide() use them. **** Selection flags EditVert: eve->f & SELECT EditEdge: eed->f & SELECT EditFace: efa->f & SELECT - Selection is only possible when not-hidden! - Selection flags are always up-to-date, BUT: if selection mode >= SELECT_EDGE vertex selection flags can be incorrect if selection mode == SELECT_FACE vertex/edge selection flags can be incorrect This because of shared vertices or edges. - use for selecting vertices: eve->f &= SELECT - use for selecting edges always: void EM_select_edge(eed, 1) // 1 = select, 0 = deselect - use for selecting faces always: void EM_select_face(efa, 1) // 1 = select, 0 = deselect - To set the 'f' flags in all of the data: void EM_set_flag_all(int flag); void EM_clear_flag_all(int flag); - the old faceselectedOR() and faceselectedAND() are still there, but only to be used for evaluating its vertices **** Code hints for handling selection If the selectmode is 'face'; vertex or edge selections need to be flushed upward. Same is true for 'edge' selection mode. This means that you'll have to keep track of all selections while coding... selecting the four vertices in a face doesn't automatically select the face anymore. However, by using the above calls, at least selections flush downward (to vertex level). You then can call: void EM_selectmode_flush(void); Which flushes selections back upward, based on the selectmode setting. This function does the following: - if selectmode 'vertex': select edges/faces based on its selected vertices - if selectmode 'edge': select faces based its selected edges This works fine in nice controlled situations. However, only changing the vertex selections then still doesn't select a face in face mode! If you really can't avoid only working with vertex selections, you can use this call: void EM_select_flush(void); Now selection is flushed upward regardless current selectmode. That can be destructive for special cases however, like checkerboard selected faces. So use this only when you know everything else was deselected (or deselect it). Example: adding primitives. **** Hide flags EditVert: eve->h EditEdge: eed->h EditFace: efa->h - all hide flags are always up-to-date - hidden vertices/edges/faces are always deselected. so when you operate on selection only, there's no need to check for hide flag. **** Unified undo for editmode New file: editmode_undo.h A pretty nice function pointer handler style undo. Just code three functions, and your undo will fly! The c file has a good reference. Also note that the old undo system has been replaced. It currently uses minimal dependencies on Meshes themselves (no abuse of going in/out editmode), and is restricted nicely to editmode functions. **** Going in/out editmode As speedup now all vertices/faces/edges are allocated in three big chunks. In vertices/faces/edges now tags are set to denote such data cannot be freed. ALso the hashtable (lookup) for edges uses no mallocs at all anymore, but is part of the EditEdge itself.
2004-09-19Matt's lamp submenu.Martin Poirier
And reorganized the #includes in editobject by "modules"
2004-09-18Found little bug in undo system for editing Font objects. CausingTon Roosendaal
crash at undo after editing.
2004-09-18Another step in the undo evolution.Ton Roosendaal
- Made unified API for undo calls, to be found in space.c BIF_undo_push(char *str) BIF_undo(void) BIF_redo(void) These calls will do all undo levels, including editmode and vpaint. The transition is work in progress, because mesh undo needs recode. - New global hotkey CTR+Z for undo Note: 'shaded draw mode' still is SHIFT+Z, the old CTRL+Z was to recalc the lighting in shaded mode, which already became much more interactive, like during/after any transform(). Recalc hotkey now is SHIFT+ALT+Z CTRL+<any modifier>+Z is redo. - For OSX users; the Apple-key ("Command") now maps to CTRL as well. This disables the one-mouse-button hack for rightmouse btw, will be fixed in next commit. At least we can use Apple-Z :) - Old Ukey for undo is still there, as a training period... my preference is to restore Ukey to "reload original data" as in past, and only use new CTRL+Z for undo. - Added undo_push() for all of editobject.c and editview.c. Meaning we can start using/testing global undo in the 3d window. Please dont comment on missing parts for now, first I want someone to volunteer to tackle all of that. - Since the global undo has a full 'file' in memory, it can save extremely fast on exit to <temp dir>/quit.blend. That's default now when global undo is enabled. It prints "Saved session recovery to ..." in console then. - In file menu, a new option is added "Recover Last Session". Note that this reads the undo-save, which is without UI. - With such nice new features we then can also kill the disputed Cancel/Confirm menu on Q-KEY. - Added fix which initializes seam/normal theme color on saved themes. They showed black now.... (Note: that's in usiblender.c!)
2004-09-14Lot of code... 2 new features:Ton Roosendaal
1) Curve deform http://www.blender3d.org/cms/Curve_Deform.392.0.html Works simple as expected, but keep track of the rotation axis in F7 buttons (Track X Y Z) Only Mesh deform supported now. Code changes: - centralized deformation calls in curve_modifiers() mesh_modifiers() etcetera. Here also other effects can be added like wave. Now the evaluation order is fixed, but should become optional. It also doesnt use the Displist anymore as deform-input. That latter part is unfinished yet. This code also is used for Hooks and will be needed for softbody - made convention stricter that displists are being checked on in drawobject(), this to prevent routines to make new displists recursively (like armature does). Now a freedisplist() is sufficient to signal that a new displaylist should be made. 2) Object Hooks http://www.blender3d.org/cms/Object_Hooks.391.0.html Support for Hooks is added to Mesh, Lattice, Curve and Surface objects. For Armatures this would require some more work & research. Main goal for this feature is to provide quick & simple access to the underlying geometry in Objects on Object level, supporting hierarchies and Ipos etc.
2004-09-01Enabled trial for 'global undo'. This now only has undo steps forTon Roosendaal
- transform (grab, rot, scale, etc) - all button commands, including menus I sacrificed for now the UKEY in the 3d window for it. Shift+U does a redo. (Only in 3d window) What this system does is saving files in the temp directory (user pref). The filenames are cycled around (32 in total now). This commit will follow shortly with a userpref for it, not to frustrate people who want to work in normal fashion with blender.
2004-08-31Three functionalities in one commit, but there's overlap so I can'tTon Roosendaal
separate it... 1) Curve/Surface editmode undo Uses same syntax as mesh undo, so simple to integrate. Edit-curve data is also quite simpler, so no need for any hack at all. It re-uses the undo system from next point, which is nice short & clean local code 2) Framework for global undo The undo calls themselves are commented out. In a next commit I want to enable it for a couple of main features, for further feedback. The speed goes surprisingly well, especially with this new version that 'pushes' undo after a command, ensuring interactivity isnt frustrated 3) framework for texture based icons in Blender Not activated code, but tested here. Part of 2.3 UI project. btw: Johnny Matthews will assist in (and complete) the undo project
2004-08-30Realtime updates of taper and bevel while editing them.Ton Roosendaal