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
2009-06-092.50:Brecht Van Lommel
svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r19820:HEAD Notes: * Game and sequencer RNA, and sequencer header are now out of date a bit after changes in trunk. * I didn't know how to port these bugfixes, most likely they are not needed anymore. * Fix "duplicate strip" always increase the user count for ipo. * IPO pinning on sequencer strips was lost during Undo.
2009-06-052.5 MSVC projectfilesAndrea Weikert
* added file editors/space_buttons/buttons_context.c * removed BRE_yafray project
2009-05-262.5 MSVC projectfiles updateAndrea Weikert
- file editors/space_image/image_panels.c -> image_buttons.c (renamed) - file editors/interface/interface_templates.c added Also added small fix for crash in filebrowser.
2009-05-142.5 filebrowserAndrea Weikert
- drawing code cleanup - use of BLF_font in own string drawing, needs to be aligned with uiStyles still. - thumbnail scaling now done on graphics card via new glaDrawPixelsTexScaled (slightly modified glaDrawPixelsTex)
2009-05-14BGE modifier: generate correct physic shape, share static derived mesh, ↵Benoit Bolsee
share display list. This commit completes the support for modifiers in the BGE. - The physic shape is generated according to the derived mesh. This is true for all types of shapes and all types of objects except soft body. - Optimization for static derived mesh (mesh with modifiers but no armature and no shape keys). Replicas will share the derived mesh and the display list: less memory and faster rendering. With this optimization, the static derived mesh will render as fast as if the modifiers were applied. Known Limits: - Sharing of mesh and display list is only possible between in-game replicas or dupligroup. If you want to instantiate multiple objects with modifiers, use dupligroup to ensure best memory and GPU utilization. - rayCast() will interact with the derived mesh as follow: Hit position and hit normal are the real values according to the derived mesh but the KX_PolyProxy object refers to the original mesh. You should use it only to retrieve the material. - Dynamic derived mesh have very poor performance: They use direct openGL calls for rendering (no support for display list and vertex array) and they dont't share the derived mesh memory. Always apply modifiers on dynamic mesh for best performance. - Time dependent modifiers are not supported. - Modifiers are not supported for Bullet soft body.
2009-05-11BGE: Add MT_Vector3 support for Py attribute macro system. See ↵Benoit Bolsee
KX_PYATTRIBUTE_VECTOR_...
2009-05-11BGE performance, 4th round: logicBenoit Bolsee
This commit extends the technique of dynamic linked list to the logic system to eliminate as much as possible temporaries, map lookup or full scan. The logic engine is now free of memory allocation, which is an important stability factor. The overhead of the logic system is reduced by a factor between 3 and 6 depending on the logic setup. This is the speed-up you can expect on a logic setup using simple bricks. Heavy bricks like python controllers and ray sensors will still take about the same time to execute so the speed up will be less important. The core of the logic engine has been much reworked but the functionality is still the same except for one thing: the priority system on the execution of controllers. The exact same remark applies to actuators but I'll explain for controllers only: Previously, it was possible, with the "executePriority" attribute to set a controller to run before any other controllers in the game. Other than that, the sequential execution of controllers, as defined in Blender was guaranteed by default. With the new system, the sequential execution of controllers is still guaranteed but only within the controllers of one object. the user can no longer set a controller to run before any other controllers in the game. The "executePriority" attribute controls the execution of controllers within one object. The priority is a small number starting from 0 for the first controller and incrementing for each controller. If this missing feature is a must, a special method can be implemented to set a controller to run before all other controllers. Other improvements: - Systematic use of reference in parameter passing to avoid unnecessary data copy - Use pre increment in iterator instead of post increment to avoid temporary allocation - Use const char* instead of STR_String whenever possible to avoid temporary allocation - Fix reference counting bugs (memory leak) - Fix a crash in certain cases of state switching and object deletion - Minor speed up in property sensor - Removal of objects during the game is a lot faster
2009-05-07BGE performance, 3rd round: culling and rasterizer.Benoit Bolsee
This commit extend the technique of dynamic linked list to the mesh slots so as to eliminate dumb scan or map lookup. It provides massive performance improvement in the culling and in the rasterizer when the majority of objects are static. Other improvements: - Compute the opengl matrix only for objects that are visible. - Simplify hash function for GEN_HasedPtr - Scan light list instead of general object list to render shadows - Remove redundant opengl calls to set specularity, shinyness and diffuse between each mesh slots. - Cache GPU material to avoid frequent call to GPU_material_from_blender - Only set once the fixed elements of mesh slot - Use more inline function The following table shows the performance increase between 2.48, 1st round and this round of improvement. The test was done with a scene containing 40000 objects, of which 1000 are in the view frustrum approximately. The object are simple textured cube to make sure the GPU is not the bottleneck. As some of the rasterizer processing time has moved under culling, I present the sum of scenegraph(includes culling)+rasterizer time Scenegraph+rasterizer(ms) 2.48 1st round 3rd round All objects static, 323.0 86.0 7.2 all visible, 1000 in the view frustrum All objects static, 219.0 49.7 N/A(*) all invisible. All objects moving, 323.0 105.6 34.7 all visible, 1000 in the view frustrum Scene destruction 40min 40min 4s (*) : this time is not representative because the frame rate was at 60fps. In that case, the GPU holds down the GE by frame sync. By design, the overhead of the rasterizer is 0 when the the objects are invisible. This table shows a global speed up between 9x and 45x compared to 2.48a for scenegraph, culling and rasterizer overhead. The speed up goes much higher when objects are invisible. An additional 2-4x speed up is possible in the scenegraph by upgrading the Moto library to use Eigen2 BLAS library instead of C++ classes but the scenegraph is already so fast that it is not a priority right now. Next speed up in logic: many things to do there...
2009-05-06Blender 2.5 Andrea Weikert
MSVC projectfiles updates * removed WITH_FREETYPE2 * update for several missing or moved files rna_fcurve.c, gpencil.c,...
2009-05-04BGE performance: second round of scenegraph improvement.Benoit Bolsee
Use dynamic linked list to handle scenegraph rather than dumb scan of the whole tree. The performance improvement depends on the fraction of moving objects. If most objects are static, the speed up is considerable. The following table compares the time spent on scenegraph before and after this commit on a scene with 10000 objects in various configuratons: Scenegraph time (ms) Before After (includes culling) All objects static, 8.8 1.7 all visible but small fraction in the view frustrum All objects static, 7,5 0.01 all invisible. All objects moving, 14.1 8.4 all visible but small fraction in the view frustrum This tables shows that static and invisible objects take no CPU at all for scenegraph and culling. In the general case, this commit will speed up the scenegraph between 2x and 5x. Compared to 2.48a, it should be between 4x and 10x faster. Further speed up is possible by making the scenegraph cache-friendly. Next round of performance improvement will be on the rasterizer: use the same dynamic linked list technique for the mesh slots.
2009-04-26BGE: Fix Orthographic mode and viewport scalingBenoit Bolsee
- the BGE now uses correct glOrtho projection whe camera is in orthographic mode -
2009-04-21BGE: Support mesh modifiers in the game engine.Benoit Bolsee
Realtime modifiers applied on mesh objects will be supported in the game engine with the following limitations: - Only real time modifiers are supported (basically all of them!) - Virtual modifiers resulting from parenting are not supported: armature, curve, lattice. You can still use these modifiers (armature is really not recommended) but in non parent mode. The BGE has it's own parenting capability for armature. - Modifiers are computed on the host (using blender modifier stack). - Modifiers are statically evaluated: any possible time dependency in the modifiers is not supported (don't know enough about modifiers to be more specific). - Modifiers are reevaluated if the underlying mesh is deformed due to shape action or armature action. Beware that this is very CPU intensive; modifiers should really be used for static objects only. - Physics is still based on the original mesh: if you have a mirror modifier, the physic shape will be limited to one half of the resulting object. Therefore, the modifiers should preferably be used on graphic objects. - Scripts have no access to the modified mesh. - Modifiers that are based on objects interaction (boolean,..) will not be dependent on the objects position in the GE. What you see in the 3D view is what you get in the GE regardless on the object position, velocity, etc. Besides that, the feature is compatible with all the BGE features that affect meshes: armature action, shape action, relace mesh, VideoTexture, add object, dupligroup. Known problems: - This feature is a bit hacky: the BGE uses the derived mesh draw functions to display the object. This drawing method is a bit slow and is not 100% compatible with the BGE. There may be some problems in multi-texture mode: the multi-texture coordinates are not sent to the GPU. Texface and GLSL on the other hand should be fully supported. - Culling is still based on the extend of the original mesh. If you have a modifer that extends the size of the mesh, the object may disappear while still in the view frustrum. - Derived mesh is not shared between replicas. The derived mesh is allocated and computed for each object with modifiers, regardless if they are static replicas. - Display list are not created on objects with modifiers. I should be able to fix the above problems before release. However, the feature is already useful for game development. Once you are ready to release the game, you can apply the modifiers to get back display list support and mesh sharing capability. MSVC, scons, Cmake, makefile updated. Enjoy /benoit
2009-04-202.50: svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender ↵Brecht Van Lommel
-r19323:HEAD Notes: * blenderbuttons and ICON_SNAP_PEEL_OBJECT were not merged.
2009-04-182.5 MSVC9 projectfilesAndrea Weikert
* long time due: copy the executables to the install/msvc9 or install/msvc9d dir instead of keeping them in the source tree in the bin folder! * copy the new ui scripts to the install dir
2009-04-182.5 MSVC9 projectfilesAndrea Weikert
- added editors/keyingsets.c
2009-04-14BGE: Occlusion culling and other performance improvements.Benoit Bolsee
Added occlusion culling capability in the BGE. More info: http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.49/Game_Engine#BGE_Scenegraph_improvement MSVC, scons, cmake, Makefile updated. Other minor performance improvements: - The rasterizer was computing the openGL model matrix of the objects too many times - DBVT view frustrum culling was not properly culling behind the near plane: Large objects behind the camera were sent to the GPU - Remove all references to mesh split/join feature as it is not yet functional
2009-04-132.5 MSVC projectfilesAndrea Weikert
- added missing files - cleanup of some project settings - RNA building has dependency issue: had to add interface_api.c to the makesrna project and makesrna and rna projects now include editors. - added debug libraries for OpenExr, please update lib/windows/openexr to get them
2009-04-08Patch #18462: Fisheye (Dome) and Spherical Panoramic mode in BGE.Benoit Bolsee
User guide: http://wiki.blender.org/index.php/Dev:Source/GameEngine/Fisheye_Dome_Camera Fixed two bugs from original patch: - deleting a text will clear the warp field from Game framing settings - removed spurious black dots along the edge of the cube map in the gameplayer Known limitation: - resizing of the screen doesn't work in the gameplayer Known bugs: - Texture with reflexion are not rendered correctly - Spurious problems with light
2009-04-08BGE Scenegraph and View frustrum culling improvement.Benoit Bolsee
This commit contains a number of performance improvements for the BGE in the Scenegraph (parent relation between objects in the scene) and view frustrum culling. The scenegraph improvement consists in avoiding position update if the object has not moved since last update and the removal of redundant updates and synchronization with the physics engine. The view frustrum culling improvement consists in using the DBVT broadphase facility of Bullet to build a tree of graphical objects in the scene. The elements of the tree are Aabb boxes (Aligned Axis Bounding Boxes) enclosing the objects. This provides good precision in closed and opened scenes. This new culling system is enabled by default but just in case, it can be disabled with a button in the World settings. There is no do_version in this commit but it will be added before the 2.49 release. For now you must manually enable the DBVT culling option in World settings when you open an old file. The above improvements speed up scenegraph and culling up to 5x. However, this performance improvement is only visible when you have hundreds or thousands of objects. The main interest of the DBVT tree is to allow easy occlusion culling and automatic LOD system. This will be the object of further improvements.
2009-04-07MSVC9 project file updateBenoit Bolsee
2009-04-03MSVC9 project file.Benoit Bolsee
2009-04-03MSVC9 project file update.Benoit Bolsee
2009-03-30Adding missing files to vcproj:Daniel Genrich
/source/blender/blenfont/intern/blf_font_helv10.h /source/blender/blenfont/intern/blf_internal.c
2009-03-292.5 MSVC 9 projectfilesAndrea Weikert
- update for editors/armature - update for RNA_context
2009-03-23MSVC project files updated for ffmpeg 0.5 and armature. You must also update ↵Benoit Bolsee
lib/windows.
2009-03-182.50: svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender ↵Brecht Van Lommel
-r18677:19317 Notes: * Sequence transform strip uses G.scene global, this is commented out now, should be fixed. * Etch-a-ton code was most difficult to merge. The files already in 2.5 got merged, but no new files were added. Calls to these files are commented out with "XXX etch-a-ton". editarmature.c and transform_snap.c were complex to merge. Martin, please check? * Game engine compiles and links again here for scons/make/cmake (player still fails to link).
2009-03-142.5 filebrowserAndrea Weikert
* added filter buttons to header * changed large icon for movie files to match small icon * fixed small stack corruption in interface_draw.c (Matt, check if this is ok) * moved nice display of file size to storage.c, where string is created.
2009-03-05Update MSVC9 project file for VideoTextureBenoit Bolsee
2009-03-022.5 MSVC9 projectfilesAndrea Weikert
- space_text update
2009-03-01MSVC9 project file: add ffmpeg avdevice lib to linker for the blenderplayer.Benoit Bolsee
2009-02-282.5: updated MSVC9 project filesAndrea Weikert
- blenfont - editors: sculpt changed to sculpt_draw - some RNA additions (rna_animation.c) - fixed some game engine include directories
2009-02-20MSVC9 project files: reactivate VideoTexture module in BGE; it that was ↵Benoit Bolsee
disabled for some reason.
2009-02-07Update MSVC9 project filesBenoit Bolsee
2009-02-072.5 MSVC9 projectfilesAndrea Weikert
update for renaming space_ipo -> space_graph
2009-02-012.5 MSVC9 projectfiles Andrea Weikert
updates: * project blenfont added
2009-01-282.5 MSVC9 projectfiles Andrea Weikert
updates: * windowmanager/wm_draw.c * editors/space_ipo: ipo_draw.c, ipo_edit.c and ipo_ops.c
2009-01-262.50: svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender ↵Brecht Van Lommel
-r17853:HEAD
2009-01-222.5 MSVC9 projectfiles Andrea Weikert
updates: * windowmanager/wm_jos.c * editors/datafiles/preview.blend.c
2009-01-212.5 MSVC9 projectfiles Andrea Weikert
updates: * windowmanager/wm_draw.c
2009-01-202.5 MSVC9 projectfiles Andrea Weikert
updates: * several new files added to editors/space_sequencer * several new files added to editors/preview
2009-01-182.5 MSVC9 projectfiles Andrea Weikert
updates: * RNA: rna_space.c and rna_vpaint.c * DNA: DNA_anim_types.c * blenkernel: anim_sys.c, fcurve.c * editors: space_image several files added * editors: uvedit several files added * editors: gpencil: several files added
2009-01-132.5 MSVC9 projectfiles Andrea Weikert
* added new files in editors/object and editors/space_sequence * added seqeffects.c in blenkernel
2009-01-112.5 MSVC9 projectfiles Andrea Weikert
small update: * added editors/space_ipo(ipo_draw.c * added editors/object/editconstraint.c
2009-01-082.5 MSVC9 projectfiles Andrea Weikert
* update of RNA project after reorganisation * added editors/space_view3d/vpaint.c and editors/mesh/editdeforn.c to projectfiles
2009-01-072.5 MSVC9 projectfiles Andrea Weikert
updates: - booleanops.c and booleanops_mesh in blenkernel - screendump.c in editors/screen - keyval.c in editors/interface - RNA: rna_pose.c
2009-01-072.5 MSVC9 projectfilesAndrea Weikert
update: editors/sculpt files
2009-01-062.5 filebrowserAndrea Weikert
further cleanup: - moved struct FileList* back to SpaceFile - fix for memory related errors and freeing operator in file_free - removed wmSubWindowSet, we're not doing OpenGL select in filebrowser - removed drawing of load button when invoked from windowtype pupmenu 2.5 MSVC projectfiles: - slipped in removal of multires_firstlevel.c in blenkernel
2009-01-062.5 - Start of filebrowser.Andrea Weikert
- basic drawing of list and thumbnail view (switchable through 'favourits' icon in header) - selection of files and directories (bookmarks) works with the RMB (right mouse button) - load operator for files still unstable (no check for correct file type) and incomplete. (WM_operator_free missing) immediate TODOS: - fix load file operator - finish drawing of buttons in header - drawing of detailed list with all file info. - finish selection and execute operators (LMB and MMB execute) later todos: - parent dir - keymap for all the shortcuts - append/link and databrowse - ...
2009-01-062.5 MSVC9 projectfiles Andrea Weikert
updates: * stubs.c was moved from editors/screen to python * RNA: rna_action.c * Armature: all in editors/armature added.
2009-01-042.5 MSVC9 projectfiles Andrea Weikert
updates: * RNA: several files (rna_cloth, rna_object_force.c, rna_particle.c, rna_scriptlink.c, rna_text.c, rna_texture.c, rna_userdef.c) * complete removal of verse and cleanup of WITH_VERSE from projectfiles * deleted projectfiles for BL_src - not needed anymore. * editors/mesh: mesh_intern.h was renamed from editmesh.h, new file mesh_ops.c * editors/util: editmode_undo.c, undo.c and util_intern.h added * editors/animation: anim_channels.c added * editors/space_action: action_edit.c added