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-16Increased builtin limit for selection buffer (border select in Object mode)Ton Roosendaal
to allow up to 2500 objects (was 500). Still an arbitrary limit, could use better code. For now its less frustrating :)
2004-11-18Made view3d "home" and "local view" and "zoom to selection" (dot key) doingTon Roosendaal
all the same. The latter two didnt take aspect ratio of windows into account
2004-10-17Outliner now visualizes and allows selection and name editing of ArmaturesTon Roosendaal
in edit mode. Small extra fix; selection (mouse) on armature points goes easier now (larger accepted distance from mouse pointer)
2004-10-03Lots of small changes, all for UI in Blender;Ton Roosendaal
----- Killed UI frontbuffer draw The interface toolkit was drawing all live updates (while using menus/buttons) in the frontbuffer. This isn't well supported cross-platform, so time to be killed once. Now it uses *only* glReadPixels and glCopyPixels for frontbuffer access. Live updates or menus now are drawn in backbuffer always, and copied to front when needed. NOTE: it was tested, but needs thorough review! On PC systems I suspects backbuffer selection to screw up (check!). On SGI/SUN workstations it should work smooth; but I need evidence ----- Smaller fixes; - AA fonts were garbled on ATI systems. Now the AA fonts are drawn exact on pixel positions. Needs the new FTGL libb too, patch is on maillist - Rounded theme uses antialiased outlines - Pulldown and popup menus have nice softshadow now - New button type 'PULLDOWN', thats the one that callsup a pulldown menu. Should be added to themes, as is the full menu/pulldown drawing - Screendump for 1 window does the full window now, including header - Empty pulldowns (for example running blender without scripts) give no drawing error anymore For review & fun; - added curved lines as connectors, for Oops window
2004-09-29Two fixes;Ton Roosendaal
- borderselect draws cleaner info in bottom/left corner window - OGL render (in view3d header) option didn't work on successive renders. was due to removing hack that reopened the window each time. But now it needed to be assigned correctly to blender's 'mywindow' system.
2004-09-25Two nice workflow improvements;Ton Roosendaal
- Zbuffer clipped selection Based on same algos as for drawing (blender polygon offset) vertices, edges and faces now are clipped for draw and selection when Zbuffer is used. Note that it works for endpoint vertices of edges, and for facecenters. Also works for border and circle-select - Optimal draw subsurfs This now draws optimal with faces and edges selected/unselected, hiding the original 'cage' (mesh) completely. TODO: edge select, which still uses original (invisible) edge. http://www.blender3d.org/cms/Mesh_editing_rewrite.425.0.html
2004-07-19Fix Trackball view rotation method to allow rotation angles > 180 deg.Alexander Ewering
without having to start over. I patched this into instinctive a long time ago when someone submitted the math to the mailing list but never got heard. I hope it's acceptable :)
2004-07-16Bunch of small fixes for warnings and whatnot....Kent Mein
intern/SoundSystem/intern/SND_AudioDevice.cpp Initalized a var that could fall through with no value. source/blender/readblenfile/intern/BLO_readblenfile.c source/blender/src/space.c intern/SoundSystem/intern/SND_Scene.cpp source/gameengine/Converter/BL_MeshDeformer.cpp removed unused var's intern/SoundSystem/openal/pthread_cancel.cpp fixed a nested /* source/blender/imbuf/IMB_imbuf.h added static to the type returned for addzbufImBuf source/blender/imbuf/intern/IMB_bmp.h had a wrong prototype source/blender/src/view.c added newline at end of file. source/blender/src/sequence.c removed unused var added #include <stdlib.h> to avoid: warning: implicit declaration of function `abs' initalized a var that could have been used without being set. Kent
2004-07-15Commit for the 4 aforementioned "features":Alexander Ewering
- "Global Pivot": Maintains a global Pivot and Align mode setting for all 3d views when enabled, instead of seperate settings per 3d view - "Auto Perspective": Switch to ortho mode automatically on 1/3/7, and to Perspective when the view is rotated with the mouse - "Align mode": As suggested on the list, when enabled, transformations on several objects only transform their locations, not their sizes or rotations. - Grid dotted when not 1:1 ***ATTENTION***! The User Interface parts of these features have not been committed, as I work on my own modified UI here. The three features need toggle buttons to turn them on and off. I used the following 3 buttons (first two features are in userprefs, third as a 3d view setting): uiDefButBitS(block, TOG, USER_AUTOPERSP, B_DRAWINFO, "Auto Persp", (xpos+edgespace+(3*medprefbut)+(3*midspace)+smallprefbut+2),y3+10,smallprefbut,buth, &(U.uiflag), 0, 0, 0, 0, "Automatically switch between orthographic and perspective"); uiDefButBitS(block, TOG, USER_LOCKAROUND, B_DRAWINFO, "Global Pivot", (xpos+edgespace+(4*midspace)+(4*medprefbut)),y3+10,smallprefbut,buth, &(U.uiflag), 0, 0, 0, 0, "Use global pivot setting for all 3d views"); uiDefIconButS(block, TOG|BIT|10, B_AROUND, ICON_ALIGN, xco+=XIC,0,XIC,YIC, &G.vd->flag, 0, 0, 0, 0, "Translate only (align)"); Someone needs to add these to the interface in an appropriate manner! Thanks.
2004-06-16Restored oldstyle zoom in/out, and added a new userpref for denoting zoomTon Roosendaal
types: - Continue: is default, old style - Dolly: is like previous, but not continuous - Scale: is the new method. Name is based on fact it scales view
2004-05-18Patch provided by Matthew Plough for better view zoom with CTRL+middleTon Roosendaal
mouse. For me it's a good replacement, and more intuitive & compatible. Now let's wait for the storm of reactions...
2004-04-07bug fix #953Ton Roosendaal
This more of a quality issue... changes now are: - in (ortho) 3d view, changing window aspect keeps zooming level (it zoomed out with extreme portrait aspect) - pressing 'home' in 3d window now shows all with extreme aspect ratios too
2004-01-14restored old clipping plane method.Ton Roosendaal
Justin will come with separate option to choose for 'automatic clipping', not based on the vd->dist value, but something smarter... needs more work.
2004-01-13Justin improved clipping at extreme zoomlevels. when you were fully zoomed ↵Roel Spruit
in you couldn't see all the geometry (correctly).
2004-01-13Converted the Userpreference buttons to zr's new ButBit calls.Rob Haarsma
Also added USER_* to each define located in DNA_userdef.h.
2003-12-29Area lights and more...Ton Roosendaal
- New lamp type added "Area". This uses the radiosity formula (Stoke) to calculate the amount of energy which is received from a plane. Result is very nice local light, which nicely spreads out. - Area lamps have a 'gamma' option to control the light spread - Area lamp builtin sizes: square, rect, cube & box. Only first 2 are implemented. Set a type, and define area size - Button area size won't affect the amount of energy. But scaling the lamp in 3d window will do. This is to cover the case when you scale an entire scene, the light then will remain identical If you just want to change area lamp size, use buttons when you dont want to make the scene too bright or too dark - Since area lights realistically are sensitive for distance (quadratic), the effect it has is quickly too much, or too less. For this the "Dist" value in Lamp can be used. Set it at Dist=10 to have reasonable light on distance 10 Blender units (assumed you didnt scale lamp object). - I tried square sized specularity, but this looked totally weird. Not committed - Plan is to extend area light with 3d dimensions, boxes and cubes. - Note that area light is one-sided, towards negative Z. I need to design a nice drawing method for it. Area Shadow - Since there are a lot of variables associated with soft shadow, they now only are available for Area lights. Allowing spot & normal lamp to have soft shadow is possible though, but will require a reorganisation of the Lamp buttons. Is a point of research & feedback still. - Apart from area size, you now can individually set amount of samples in X and Y direction (for area lamp type 'Rect'). For box type area lamp, this will become 3 dimensions - Area shadows have four options: "Clip circle" : only uses a circular shape of samples, gives smoother results "Dither" : use a 2x2 dither mask "Jitter" : applys a pseudo-random offset to samples "Umbra" : extra emphasis on area that's fully in shadow. Raytrace speedup - improved filling in faces in Octree. Large faces occupied too many nodes - added a coherence check; rays fired sequentially that begin and end in same octree nodes, and that don't intersect, are quickly rejected - rendering shadow scenes benefits from this 20-40%. My statue test monkey file now renders in 19 seconds (was 30). Plus: - adjusted specular max to 511, and made sure Blinn spec has again this incredible small spec size - for UI rounded theme: the color "button" displayed RGB color too dark - fixed countall() function, to also include Subsurf totals - removed setting the 'near' clipping for pressing dot-key numpad - when you press the buttons-window icon for 'Shading Context' the context automaticilly switches as with F5 hotkey Please be warned that this is not a release... settings in files might not work as it did, nor guaranteed to work when we do a release. :)
2003-12-22Phew, a lot of work, and no new features...Ton Roosendaal
Main target was to make the inner rendering loop using no globals anymore. This is essential for proper usage while raytracing, it caused a lot of hacks in the raycode as well, which even didn't work correctly for all situations (textures especially). Done this by creating a new local struct RenderInput, which replaces usage of the global struct Render R. The latter now only is used to denote image size, viewmatrix, and the like. Making the inner render loops using no globals caused 1000s of vars to be changed... but the result definitely is much nicer code, which enables making 'real' shaders in a next stage. It also enabled me to remove the hacks from ray.c Then i went to the task of removing redundant code. Especially the calculus of texture coords took place (identical) in three locations. Most obvious is the change in the unified render part, which is much less code now; it uses the same rendering routines as normal render now. (Note; not for halos yet!) I also removed 6 files called 'shadowbuffer' something. This was experimen- tal stuff from NaN days. And again saved a lot of double used code. Finally I went over the blenkernel and blender/src calls to render stuff. Here the same local data is used now, resulting in less dependency. I also moved render-texture to the render module, this was still in Kernel. (new file: texture.c) So! After this commit I will check on the autofiles, to try to fix that. MSVC people have to do it themselves. This commit will need quite some testing help, but I'm around!
2003-12-12Numpad - . (dot) now centers on selected vertices/controlpoints in editmode.Roel Spruit
It already centered on selected objects outside of editmode, so this is just a consistency feature.
2003-12-08- bug report Theeth, #772Ton Roosendaal
When joining 2 unconnected control points in Curve/Surface (FKEY) Blender crashed. Was just assuming in this code that a knots vector array was there... simple fix! BTW: I think Theeth discovered here the oldest Blender ever, I could track it back to old Traces code from 1992. :)
2003-11-20Fix for undo... it didn't do the UV coords (tface) nor the vertexpaintTon Roosendaal
colors. This because of the pretty weird (ab)use of load & make editmesh... For each added undo step, the load_editmesh was fed with an empty mesh to assign data to, without knowledge of what was in the original mesh. That way UV and color data got lost. Solved it in 2 steps: 1. removing the ->tface pointer from EditVlak, and make TFace a builtin struct inside EditVlak. This didnt cost much extra mem, since it already stored UV and color. This enabled some pretty cleanup in editmesh.c as well, storing tface pointers was cumbersome. 2. for each undo step, it then generates always a tface and mcol block to link to the undo Mesh. Even when it wasn't in the actual Mesh, at exit editmode the original Mesh is used as reference anyway, and undo-meshes are freed correctly. The enormous commit is because I had to change the BLI_editVert.h file, and found it was included in about every file unnecessary. I removed it there. ALso found out that subsurf has code ready (unfinished) to make UV coords for the displaylist in EditMode as well, nice to know for later...
2003-11-18- removed temporal patch from myortho2() in mywindow.c, and changedTon Roosendaal
all calls to ortho2 with correctness offset of 0.375 instead of 0.5. this efficiently solves bug in drawing UV lines as reported. cvS: ----------------------------------------------------------------------
2003-11-13- found one other wrong ortho2... causing wrong ortho2 matrices inTon Roosendaal
3d window...
2003-11-06- selecting multiple objects at same location had error. was caused byTon Roosendaal
new code that manages multiple matrices for 'overlay' buttons. just forgot to add call persp(PERSP_VIEW);
2003-10-23Cleaned up new constraint line drawing while grab/rot/scaleTon Roosendaal
- uses callback mechanism to tell main drawing routine what to do - for that reason it doesn't use frontbuffer drawing anymore and it shows up in all 3d windows as well - it uses the same colors as for the grid axes (I tweaked it a bit, this is based at themecolors, and also should work in different background and grid color) - I disabled drawing lines through every object or every vertex. The current display method is clear and not distracting - when in 'local' transform (double press X/Y/Z), it displays a nice axis in the center of transform for vertices. In object-mode, local transform differs per object, so constraint lines and axes are drawn for each individually... Also: - fixed an old bug in rotate transform(). Using a constraint for rotation (X, Y, Z) didn't work for multiple objects at all!
2003-10-21Helpline drawing in transform (semi broken in this commit)Martin Poirier
This is only usefull for rotate now, but the axis constraining code has a part that depended on this, so I commit this part first. For coders: void constline(float *center, float *dir, int col) Draw an infinite line on the screen. col is the color argument. It must be cpack compatible void project_short_infiniteline(float *vec, float *dir, short *adr1, short *adr2); clips infinite line to screen border
2003-10-20Another mega commit... loadsof restructure, and a pretty good one! :)Ton Roosendaal
- changed the BIF_DrawString() function. it used to work different for AA fonts as for default fonts. Now it's identical. Setting color for fonts can just be done with OpenGL, for both font types. Removed: BIF_DrawStringRGB() - added theme color options for Buttons - recoded DefButton, so it automatically chooses the right color. - had to remove a 1000 uiBlockSetCol() calls for that reason... - uiBlockSetCol() still works, to override automatic color - removed entirely the silly old color system (BIFColorID). All color calls can now be done with a BIF_ThemeColor() call, including fonts and buttons and opengl stuff - all buttons in button header have headercolor by default - recoded drawing icons, it was a really bad & old loop doing manually colorshading and blending... which was per pixel a load of code! Now it uses a single OpenGL call to blend or colorize. Quite faster! - (as test, for review) icons don't colorize anymore with button color, but have a different alpha to blend in (when not active) - recoded the entire interface_draw.c file...: - drawing buttons is separated in three parts: 1. main drawing function for text and icons 2. free definable callback for button itself 3. free definable callback for slider - removed a load of redundant code for this! - coded a minimal theme, and adjusted Matt's buttons to match new callback system - adding new drawing themes is piece of cake now - for coders, default 'themes' to be aware of: UI_EMBOSS : the themable drawing style UI_EMBOSSP: the pulldown menu system (apart from color not themable) UI_EMBOSSN: draw nothing, only text and/or icon UI_EMBOSSM: minimal theme, still in use for Logic and Constraintsa this can be set with uiBlockSetEmboss(block) or in the uiNewBlock() call. TODO: make UI API call for button alignment (plus removed another series of warnings from code...) Plus: fixed bug in Matts commit: he used a 'short' button for an 'int'
2003-10-16- fixed editing vertices again!Ton Roosendaal
I had to clean up very old calls to switch matrices for 3d windows. To make it more clear, I've introduced defines for the infamous persp() function: persp(PERSP_WIN); sets matrices at pixel level window persp(PERSP_VIEW); restores matrices back to 3d drawing persp(PERSP_STORE); only called once, to store correct matrices I will now check on frontbuffer drawing of vertices... it's very doubtful if it's used still correctly, was only meant for visual speed in the early nineties you know. :)
2003-10-13Robert (DetectiveThorn) Wenzlaff's Knife subdivide tool. See previousAlexander Ewering
message on Bf-committers for description.
2003-09-27"Set Camera to View3d": SHIFT-NUMPAD0 selects the camera like NUMPAD0, andAlexander Ewering
in addition aligns and positions it so that it exactly "sees" the former View3d.
2003-09-17- bugfix #492Ton Roosendaal
"Waste cpu while rotating view" I added a tiny idle in the 'wait_for_statechanged' call, I suspect ghostwinlay returns events while holding mousebutton...
2003-07-12* selecting objects has a different frontbuffer drawing handling now.Ton Roosendaal
instead of drawing everything again, in all windows, it restricts to the active and previous active object. when there are more objects to be redrawn, it does a normal swapbuffers. Result is it all redraws & selects a lot faster in complex scenes * Little fix in "BallTable" routine when moving mouse vertical out of the 3d window.
2003-07-11* fixed bug "turntable deviation" #364Ton Roosendaal
In fact, I made it working different, much more cooler! -------The BallTable Method TM (patent pending)------------ This is a hybrid of the old turntable method (a virtual camara that rotates around a table) and the trackball method. Mouse moving horizontal, gives the turntable effect, but with vertical movement it works like a trackball. So, vertically moving in the middle of the window exactly mimics old turntable method, moving vertically in the window edge gives a 'twist' rotation. Try the turntable for fun! (is in user settings menu)
2003-04-30LAST of the c code comment translations... hooray!Ton Roosendaal
Might be possible I mised an .h or so, just notify me in that case.
2002-11-25updated .c files to include:Kent Mein
#ifdef HAVE_CONFIG_H #include <config.h> #endif Just need to finish cpp files now :) Kent -- mein@cs.umn.edu
2002-10-12Initial revisionv2.25Hans Lambermont