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-02-02features & fixes:Ton Roosendaal
- Enabled Groups to execute in Compositor. They were ignored still. Note; inside of groups nothing is cached, so a change of a group input will recalculate it fully. This is needed because groups are linked data (instances use same internal nodes). - Made Composit node "Viewer" display correctly input for images with 1/2/3/4 channels. - Added pass rendering, tested now with only regular Materials. For Material nodes this is quite more complex... since they cannot be easily separated in passes (each Material does a full shade) In this commit all pass render is disabled though, will continue work on that later. Sneak preview: http://www.blender.org/bf/rt.jpg (temporal image) - What did remain is the 'Normal' pass output. Normal works very nice for relighting effects. Use the "Normal Node" to define where more or less light should be. (Use "Value Map" node to tweak influence of the Normal node 'dot' output.) - EVIL bug fix: I've spend almost a day finding it... when combining AO and mirror render, the event queue was totally screwing up... two things not related at all! Found out error was in ray-mirror code, which was using partially uninitialized 'ShadeInput' data to pass on to render code. - Another fix; made sure that while thread render, the threads don't get events, only the main program will do. Might fix issues reported by people on linux/windows.
2006-01-29Fix some of Stealth Apprent's warnings/errors and some extra little stuff.Kent Mein
here is a quick summary... Kent intern/bsp/intern/BSP_CSGMesh_CFIterator.h removed tri_index (unused variable) intern/bsp/intern/CSG_BooleanOps.cpp removed extra ; intern/string/intern/STR_String.cpp added <ctype.h> source/blender/blenkernel/BKE_writeavi.h moved things around so not doing forward declarations source/blender/renderconverter/intern/convertBlenderScene.c changed render.h to render_types.h source/blender/src/blenderbuttons.c source/blender/src/editgroup.c source/blender/src/meshtools.c added newline source/gameengine/Ketsji/KX_KetsjiEngine.cpp commented out include "PIL_time.h" code that requires it is commented out reading blender/src/writeavicodec.c (struct keyword to a couple of lines that needed it) and added: extern struct Render R; blender/renderconverter/intern/convertBlenderScene.c added extern Render R; added #include "rendercore.h" to get rid of undeclared shade_material_loop (Not sure if this is right but it fixes it. Did not fix this problem, is it alright to just pass NULL here or should we chan ge it to something else: init_render_materials' : too few gameengine/Physics/BlOde/OdePhysicsEnvironment.cpp removed argument to dHashSpaceCreate commented out dWorldQuickStep since it does not exist
2006-01-11Tuesday merger of bf-blender into orange branch.Ton Roosendaal
2006-01-06Todo #2574Nathan Letwory
Setchain: it allows you to chain sets. It checks for loops when trying to assign new scene, and will notify if changing set would create a loop.
2006-01-02Orange: more noodle updates!Ton Roosendaal
**** NEW: Group Nodes Node trees usually become messy and confusing quickly, so we need not only a way to collapse Nodes into single 'groups', but also a way to re-use that data to create libraries of effects. This has been done by making a new Library data type, the NodeTree. Everything that has been grouped is stored here, and available for re-use, appending or linking. These NodeTrees are fully generic, i.e. can store shader trees, composit trees, and so on. The 'type' value as stored in the NodeTree will keep track of internal type definitions and execute/drawing callbacks. Needless to say, re-using shader trees in a composit tree is a bit useless, and will be prevented in the browsing code. :) So; any NodeTree can become a "Goup Node" inside in a NodeTree. This Group Node then works just like any Node. To prevent the current code to become too complex, I've disabled the possibility to insert Groups inside of Groups. That might be enabled later, but is a real nasty piece of code to get OK. Since Group Nodes are a dynamic Node type, a lot of work has been done to ensure Node definitions can be dynamic too, but still allow to be stored in files, and allow to be verified for type-definition changes on reloading. This system needs a little bit maturing still, so the Python gurus should better wait a little bit! (Also for me to write the definite API docs for it). What works now: - Press CTRL+G to create a new Group. The grouping code checks for impossible selections (like an unselected node between selected nodes). Everthing that's selected then gets removed from the current tree, and inserted in a new NodeTree library data block. A Group Node then is added which links to this new NodeTree. - Press ALT+G to ungroup. This will not delete the NodeTree library data, but just duplicate the Group into the current tree. - Press TAB, or click on the NodeTree icon to edit Groups. Note that NodeTrees are instances, so editing one Group will also change the other users. This also means that when removing nodes in a Group (or hiding sockets or changing internal links) this is immediately corrected for all users of this Group, also in other Materials. - While editing Groups, only the internal Nodes can be edited. A single click outside of the Group boundary will close this 'edit mode'. What needs to be done: - SHIFT+A menu in toolbox style, also including a list of Groups - Enable the single-user button in the Group Node - Displaying all (visible) internal group UI elements in the Node Panel - Enable Library linking and prevent editing of Groups then. **** NEW: Socket Visibility control Node types will be generated with a lot of possible inputs or outputs, and drawing all sockets all the time isn't very useful then. A new option in the Node header ('plus' icon) allows to either hide all unused sockets (first keypress) or to reveil them (when there are hidden sockets, the icon displays black, otherwise it's blended). Hidden sockets in Nodes also are not exported to a Group, so this way you can control what options (in/outputs) exactly are available. To be done: - a way to hide individual sockets, like with a RMB click on it. **** NEW: Nodes now render! This is still quite primitive, more on a level to replace the (now obsolete and disabled) Material Layers. What needs to be done: - make the "Geometry" node work properly, also for AA textures - make the Texture Node work (does very little at the moment) - give Material Nodes all inputs as needed (like Map-to Panel) - find a way to export more data from a Material Node, like the shadow value, or light intensity only, etc Very important also to separate from the Material Buttons the "global" options, like "Ztransp" or "Wire" or "Halo". These can not be set for each Material-Node individually. Also note that the Preview Render (Buttons window) now renders a bit differently. This was a horrid piece of antique code, using a totally incompatible way of rendering. Target is to fully re-use internal render code for previews. OK... that's it mostly. Now test!
2005-12-13Tuesday merger of Orange branch with bf-blenderTon Roosendaal
2005-12-13With the introduction of fixed edge arrays in Mesh, the options to renderTon Roosendaal
wire frame became very limited... the information of faces (vertex colors and UV reside there) got lost. Solved it nicely with creating a large index table, and use bsearch() to get quickly the matching information. Then I noticed the render code needed fixes too for wire, no proper UV's were calculated over the wire edge.
2005-12-12Bugfix #3544Ton Roosendaal
First two vertices of a hair strand were not transformed OK, causing weird results with especially thicker hair, or very short ones.
2005-12-11Orange: made duplicators work for dynamic particle systems. Meaning; aTon Roosendaal
particle generator can be duplicated. Note that the particles are only generated once, on the original, and just get duplicated. For static particles it worked already OK. Added note for previous grouping commit; group-duplicators should support fully all animation systems, including modifiers and particles.
2005-12-11Orange: Removed old duplicator stuff from renderconverter.c...Ton Roosendaal
2005-12-11Big commit with work on Groups & Libraries:Ton Roosendaal
-> Any Group Duplicate now can get local timing and local NLA override. This enables to control the entire animation system of the Group. Two methods for this have been implemented. 1) The quick way: just give the duplicator a "Startframe" offset. 2) Advanced: in the NLA Editor you can add ActionStrips to the duplicator to override NLA/action of any Grouped Object. For "Group NLA" to work, an ActionStrip needs to know which Object in a group it controls. On adding a strip, the code checks if an Action was already used by an Object in the Group, and assigns it automatic to that Object. You can also set this in the Nkey "Properties" panel for the strip. Change in NLA: the SHIFT+A "Add strip" command now always adds strips to the active Object. (It used to check where mouse was). This allows to add NLA strips to Objects that didn't have actions/nla yet. Important note: In Blender, duplicates are fully procedural and generated on the fly for each redraw. This means that redraw speed equals to stepping through frames, when using animated Duplicated Groups. -> Recoded entire duplicator system The old method was antique and clumsy, using globals and full temporal copies of Object. The new system is nicer in control, faster, and since it doesn't use temporal object copies anymore, it works better with Derived Mesh and DisplayList and rendering. By centralizing the code for duplicating, more options can be easier added. Features to note: - Duplicates now draw selected/unselected based on its Duplicator setting. - Same goes for the drawtype (wire, solid, selection outline, etc) - Duplicated Groups can be normally selected too Bonus goodie: SHIFT+A (Toolbox) now has entry "Add group" too, with a listing of all groups, allowing to add Group instances immediate. -> Library System - SHIFT+F4 data browse now shows the entire path for linked data - Outliner draws Library Icons to denote linked data - Outliner operation added: "Make Local" for library data. - Outliner now also draws Groups in regular view, allowing to unlink too. -> Fixes - depsgraph missed signal update for bone-parented Objects - on reading file, the entire database was tagged to "recalc" fully, causing unnecessary slowdown on reading. Might have missed stuff... :)
2005-12-09Orange; WIP commit for inclusion of "Tangent" vector in rendering.Ton Roosendaal
This first implementation only supports it for Meshes with UV maps, and only tangents in V direction. Tangent diffuse: http://www.blender.org/bf/0001_0080.avi Tangent spec, diffuse, and bump: http://www.blender.org/bf/20001_0080.avi NOTE: since UV coordinates are still very badly subsurfed, this won't work well for subsurf meshes... on the todo. On the todo; - generate tangents for meshes without UV (with some options) - use tangents from Curve/Surface - add the Ashkimin shader from tracker ----- Important bugfix; curves didn't render anymore since yesterday. :)
2005-12-09New feature: "Stress" texture input channelTon Roosendaal
(As usual movies disappears after while) Face example showing stress values on a blend. White is stretch, black is squeeze http://www.blender.org/bf/0001_0014.avi Quick test with softbody stretch http://www.blender.org/bf/0001_0100.avi Based on the difference of the "Orco" (original undeformed coordinate) and the actual render coordinate, a stress value is computed to make textures react to stretching or wrinking skin. The texture coordinate is neutral (0) on relaxed state. -1 is squeezed to zero, +1 is stretched to infinity. Note that scaling (object itself or parent) also will result in stress values. The reason for the huge commit is a cleanup in allocating memory for the vertices. These were growing too large with new options, so now it allocates the optional coordinates dynamically. Saves about 20 MB memory per 1M vertices already. But best of all is that I now can add much more fun... so tangents, here we come!
2005-12-06Orange:Ton Roosendaal
Pointer was checked before being set... but it refused to crash on me! For everyone else it crashed on rendering. Thanks Toni for the bughunt.
2005-12-06Orange: tuesday sync with bf-blenderTon Roosendaal
2005-12-06Orange branch: Revived hidden treasure, the Groups!Ton Roosendaal
Previous experiment (in 2000) didn't satisfy, it had even some primitive NLA option in groups... so, cleaned up the old code (removed most) and integrated it back in a more useful way. Usage: - CTRL+G gives menu to add group, add to existing group, or remove from groups. - In Object buttons, a new (should become first) Panel was added, showing not only Object "ID button" and Parent, but also the Groups the Object Belongs to. These buttons also allow rename, assigning or removing. - To indicate Objects are grouped, they're drawn in a (not theme yet, so temporal?) green wire color. - Use ALT+SHIFT mouse-select to (de)select an entire group But, the real power of groups is in the following features: -> Particle Force field and Guide control In the "Particle Motion" Panel, you can indicate a Group name, this then limits force fields or guides to members of that Group. (Note that layers still work on top of that... not sure about that). -> Light Groups In the Material "Shaders" Panel, you can indicate a Group name to limit lighting for the Material to lamps in this group. The Lights in a Group do need to be 'visible' for the Scene to be rendered (as usual). -> Group Duplicator In the Object "Anim" Panel, you can set any Object (use Empty!) to duplicate an entire Group. It will make copies of all Objects in that Group. Also works for animated Objects, but it will copy the current positions or deforms. Control over 'local timing' (so we can do Massive anims!) will be added later. (Note; this commit won't render Group duplicators yet, a fix in bf-blender will enable that, next commit will sync) -> Library Appending In the SHIFT-F1 or SHIFT+F4 browsers, you can also find the Groups listed. By appending or linking the Group itself, and use the Group Duplicator, you now can animate and position linked Objects. The nice thing is that the local saved file itself will only store the Group name that was linked, so on a next file read, the Group Objects will be re-read as stored (changed) in the Library file. (Note; current implementation also "gives a base" to linked Group Objects, to show them as Objects in the current Scene. Need that now for testing purposes, but probably will be removed later). -> Outliner Outliner now shows Groups as optio too, nice to organize your data a bit too! In General, Groups have a very good potential... for example, it could become default for MetaBall Objects too (jiri, I can help you later on how this works). All current 'layer relationships' in Blender should be dropped in time, I guess...
2005-12-05Bugfix #3512Ton Roosendaal
Duplicated objects, that have modifiers, didn't render (or not correct). Bug reported case with softbody being duplicated. The duplicator system is ancient... integration with new derivedmesh or modifiers has not been really done yet.
2005-12-04Orange branch feature; Material LayeringTon Roosendaal
(WIP, don't bugs for this in tracker yet please!) - New Panel "Layers" in Material buttons, allows to add unlimited amount of materials on top of each other. - Every Layer is actually just another Material, which gets rendered/shaded (including texture), and then added on top of previous layer with an operation like Mix, Add, Mult, etc. - Layers render fully independent, so bumpmaps are not passed on to next layers. - Per Layer you can set if it influences Diffuse, Specular or Alpha - If a Material returns alpha (like from texture), the alpha value is used for adding the layers too. - New texture "Map To" channel allows to have a texture work on a Layer - Each layer, including basis Material, can be turned on/off individually Notes: - at this moment, the full shading pass happens for each layer, including shadow, AO and raytraced mirror or transparency... - I had to remove old hacks from preview render, which corrected reflected normals for preview texturing. - still needs loadsa testing!
2005-11-30Bugfix #496Ton Roosendaal
Noticed that static particle orcos (strands) actually were global coordinates. This was code copied from dynamic particles... Bugreporter (hi env!) tried to make nice zebra texture, which of course very much failed. Note; orco textures for strand give the same texture coordinate for the entire hair. UV maps don't work here yet.
2005-11-26Hairstrand render bug; using Orco could give errors... the orco pointersTon Roosendaal
for some hair vertices were not initialized OK.
2005-11-17New particle option "Unborn" and "Died" didn't work for shaded halos yet.Ton Roosendaal
Thanks Chris Burt for the poke!
2005-11-14Strand render/zbuffering optimize recodeTon Roosendaal
I've been going over the zbuf.c code, which is indeed very ancient, with a load of old optimizing and redundant code in use. Added more 'modern' Span support, which fills per face two arrays with the scanline information in it. That way you can zbuffer a quad in one run as well. It was also exactly that code that's copied all over in zbuf.c For now, to prevent issues for the release, the 'render a quad in 1 run' is only in use for the strand render. Tests reveil a speedup of about 33%. Will work on this recode later... which would also result in making zbuf.c threadsafe. And: bugfix #3398 When using the new 'render emitter' for particles, the orco array for particles was accidentally used by mesh too.
2005-11-12Finished hair strand render project (well, for release), also with a goodTon Roosendaal
doc; http://www.blender3d.org/cms/Hair_Strand_Rendering.722.0.html - added width control for strands - made tangent (anisotropic) render an option (so you can render strands more solid, like metal/wood) Also: - ALT+A anim playback with static particles made cursor flashing
2005-11-10The long awaited Particle patch from Janne KarhuTon Roosendaal
http://www.blender3d.org/cms/New_Particle_options_a.721.0.html There's no doubt this patch had a lot of good ideas for features, and I want to compliment Janne again for getting it all to work even! A more careful review of the features and code did show however quite some flaws and bugs... partially because the current particle code was very much polluted already, but also because of the implementation lacked quality. However, the patch was too good to reject, so I've fixed and recoded the parts that needed it most. :) Here's a list of of most evident changes in the patch; - Guides support recoded. It was implemented as a true 'force field', checking all Curve path points for each particle to find the closest. Was just far too slow, and didn't support looping or bends well. The new implementation is fast (real time) and treats the paths as actual trajectory for the particle. - Guides didn't integrate in the physics/speed system either, was added as exception. Now it's integrated and can be combined with other velocities or forces - Use of Fields was slow code in general, made it use a Cache instead. - The "even" distribution didn't work for Jittered sample patterns. - The "even" or "vertexgroup" code in the main loops were badly constructed, giving too much cpu for a simple task. Instead of going over all faces many times, it now only does it once. Same part of the code used a lot of temporal unneeded mallocs. - Use of DerivedMesh or Mesh was confused, didn't work for Subsurfs in all cases - Support for vertex groups was slow, evaluating vertexgroups too often - When a vertexgroup failed to read, it was wrongly handled (set to zero). VertexGroup support now is with a name. - Split up the too huge build_particle() call in some parts (moving new code) - The "texture re-timing" option failed for moving Objects. The old code used the convention that particles were added with increasing time steps. Solved by creating a object Matrix Cache. Also: the texture coordinates had to be corrected to become "OrCo". - The "Disp" option only was used to draw less particles. Changed it to actually calculate fewer particles for 3D viewing, but render all still. So now it can be used to keep editing realtime. Removed; The "speed threshold" and "Tight" features were not copied over. This resembled too much to feature overkill. Needs re-evaluation. Also the "Deform" option was not added, I prefer to first check if the current particle system really works for the Modifier system. And: - Added integration for particle force fields in the dependency graph - Added TAB completion for vertexgroup names! - Made the 'wait cursor' only appear when particles take more than 0.5 sec - The particle jitter table order now is randomized too, giving much nicer emitting of particles in large faces. - Vortex field didn't correctly use speed/forces, so it didn't work for collisions. - Triangle distribution was wrong - Removed ancient bug that applied in a *very* weird way speed and forces. (location changes got the half force, speed the full...???) So much... might have forgotten some notes! :)
2005-10-12Orange bugreport; Only Shadow lamp crashed on rendering preview.Ton Roosendaal
Bug caused due to fix a couple of weeks ago for this kind of lamp type...
2005-10-03World AO table was freed, but a pointer not NULLed correctly, causing aTon Roosendaal
memory error on end render.
2005-10-02Crash fix; rendering AO with envmap on didn't work.Ton Roosendaal
Note that envmaps still render without raytracing.
2005-09-29- Added shadow buffer support for wire material and particle strandsTon Roosendaal
(Since strands are screen-aligned, it didn't fill in OK yet) No shadow; http://www.blender.org/bf/rt14.jpg Shadow; http://www.blender.org/bf/rt15.jpg
2005-09-29New hair "strand" channel has wrong texture coord input... it renderedTon Roosendaal
from 0 - 1, instead of -1 to 1. Thats fixed. The error made tests i did with alpha make nice though, apparently hairs are nicer when rendered with alpha range 0.0 to 0.5.
2005-09-29Storage of ME_FACE_STEPINDEX in mface iwas same flag as for newTon Roosendaal
anisotropic, causing nice interesting render errors.
2005-09-29- Added "anisotropic" rendering for static particle hair strands.Ton Roosendaal
This means the diffuse and specular shaders don't use the normal for hair (which is actually undefined, a hair is micro cylinder) but it uses the tangent vector (vector in direction of hair). For Diffuse, it computes a fake normal now, representing the optimal hair normal pointing towards the light. All current builtin shaders work with this, including ramps. For Specular, it uses another formula to remap dot products for all lines that now use the tangent vector instead of the normal: dot = vector * tangent dot = sqrt(1.0 - dot*dot) Gives better results than using the 'fake' normal for diffuse. Officially (according the papers) this could be used for diffuse too, but then hair becomes very flat. Now you can control the flatness easily with ramps or using Oren-Nayer for example. Example image (disappears in some weeks) http://www.blender.org/bf/rt9.jpg - Added new texture channel "Strand" to apply textures on hairs over the length of hair (1 dimensional). Orco now gives 1 fixed coordinate for the entire hair, based on where it starts. Note; UV doesn't work yet. Nor vertexcolor. http://www.blender.org/bf/rt10.jpg
2005-09-28Division by zero prevented in new hair strand algo. It showed as verticalTon Roosendaal
lines, especially with the "Step" size low.
2005-09-28Hair!Ton Roosendaal
Thanks to testing in studio orange (thnx andy, matt!) I've found the simple way to code it. Static particle systems, when not set to wire or halo, now render 1 pixel wide 'strands', which are actually just faces with vertexnormals and proper orco texture. Check for quick fun; http://www.blender.org/bf/rt5.jpg (and rt6, rt7, rt8)
2005-09-20Bug fix #3070Ton Roosendaal
<blush>Missing "2*" caused AO tables to be only initialized half</blush> Result was bad AO quality in render, and unpredictable brightness. This bug happened in previous commit, when fixing random table issues.
2005-09-12Exclude only-shadow lamps to be rendered when the main render optionTon Roosendaal
"shadow" is off. Bugfix 3018
2005-08-25Random() issues with rendering...Ton Roosendaal
- AO and soft shadow AreaLight tables were generated without fixed seed, causing animations to give unwanted amounts of noise. - Made sure these tables now are calculated before render, with fixed seed - Then found out the BLI_rand() has very bad seeding... it showed up as patterns. After some experimenting, found a nice method using noise.c hash tables. For compatibility with old code, named it BLI_srandom() to use this next to the BLI_srand(). This follows libc rand() and random() naming convention. - Then of course threading should work... so made a BLI_thread_rand version of the calls. Now supports up to 16 threads, comments added in .h and .c Result is stable animation render with AO and soft shadow. But, please test and feedback!
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-14 - added make_orco_curf, even does keys!Daniel Dunbar
- removed {lattice,curve}_modifier functions - changed render code to use displist for curve rendering instead of making its own. required adding a bevelSplitFlag field to DispList. I also fixed the bevel face splitting which did not work correctly in many situations. - changed so all curve data creation happens in makeDispListCurveTypes, includes making bevel list and filling polys - changed render code to use displist for surface rendering - removed Curve.orco variable, built as needed now - removed stupid BLI_setScanFill* functions... why use a function argument when you can use a global and two functions! Why indeed. (this fixed crash when reloading a file with filled curves and toggling editmode) - bug fix, setting curve width!=1 disabled simple bevel for no apparent reason - cleaned up lots and lots of curve/displist code (fun example: "if(dl->type==DL_INDEX3 || dl->type==DL_INDEX3)"). Hmmm! - switched almost all lattice calls to go through lattice_deform_verts, only exception left is particles - added DBG_show_shared_render_faces function in render, just helps to visualize which verts are shared while testing (no user interface). - renamed some curve bevel buttons and rewrote tooltips to be more obvious - made CU_FAST work without dupfontbase hack Also by the way I wrote down some notes on how curve code works, nothing spiffy but it is at: http://wiki.blender.org/bin/view.pl/Blenderdev/CurveNotes
2005-08-13 - more nurbs fixes... as it turns out, rendering of cyclic UV didn'tDaniel Dunbar
really work at all. Fortunately no one actually *USES* nurbs so no one noticed. This is bug from NaN days (strubi, I am looking at you here) which I guess says a lot (or a little) about NURBS usage. And as usual, the correct code is shorter. - added do_version copy of ME_OPT_EDGES flag
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-12 - remove some silly array copying code for nurb displist generationDaniel Dunbar
- converted dl->flag to use consistent defines for cyclic U/V
2005-08-07 - add allowShared argument to DerivedMesh.convertToDispListMesh to allow ↵Daniel Dunbar
returned DLM to share data from DerivedMesh (reduces some copying/memory allocation) - added displistmesh_copyShared function to copy a DLM but not duplicate any internal data - changed crease drawing to use DerivedMesh functions... this means varying edge width style of creases had to go, I replaced by using varying color to show crease weight instead. Don't think this is a big loss since the subsurf result gives you a much better indication of the crease weight anyway. - bug fix in mirror modifier, didn't copy edge creases from editmesh correctly
2005-08-04updates to the OS X build system :Jean-Luc Peurière
- XCode project - Scons : scons stopped working for Os X in the last month (dont know when) : * the '.' and '..' keywords in CCPPATH are not recognized anymore for sconscripts compiling files at a sub level * when doing a scons clean, the 3 subdirs in build dir are removed and scons then fail to recreate them (exten, intern, source) this commit solve the first problem as a temp workaround for the latter simply recreate the dirs manually I will investigate that further when on vacations, which i should already be. ;( all 3 build systems are now working on Os X
2005-08-03 - removed BLO_findstruct_offset (obsolete)Daniel Dunbar
- remove python access to Optimal and Subsurf flags (they don't work this way anymore, I suppose need to replace with python access to modifiers but not going to do right now). - removed interface access to OPTIMAL mode, needs to be rethough... this means at the moment subsurfs outside editmode always draw and render all edges
2005-07-26 - displacement fix, need to calc normals before displacingDaniel Dunbar
2005-07-25Little issues, combined commit!Ton Roosendaal
- Bug #2857: Spin didn't create nice consistant normals - removed unnecessary call to where_is_object() in init-render phase. - Added DAG_scene_sort() calls when objects were removed (join cases) - When using texture fonts, the file window header didn't display OK - Saving a file didn't set the 'wait cursor' anymore (oldie!)
2005-07-24 - warning fixesDaniel Dunbar
- rare bug in calc_vertexnormals, fourth vertex normal was not flipped correctly (found thanks to my new auto regression test script)
2005-07-23 - cleaned up calc_vertexnormals, did unnecessary temporary array allocDaniel Dunbar
and passed over faces twice - changed init_render_mesh to *always* call calc_vertexnormals. Vertex normal calculation is insignificant time wise in comparison to modern renders so it wasn't a big savings anyway, and vertex normals were sometimes incorrect. Still issue remaining regarding what to do with wire normals.
2005-07-20 - renderer always goes through DerivedMesh atm, means no needDaniel Dunbar
to recalc vertex normals (can be assumed good)
2005-07-20 - added modifier_dependsOnTime to check if modifier needs updatingDaniel Dunbar
based on time change. would be nice if dep graph could handle this. - made dep check if modifiers need update on time change - fix render crash (access null) - added new Build Effect modifier type. compared to old one works as a full member of modifier system, means can apply subsurf, etc on it, reorder, what have you. and it is all nice and self contained. - removed old Build effect, old files convert to new style on load - couldn't help myself, added a randomize feature to build effect - removed Python BuildEffect support