Revision 908337b by Brecht Van Lommel July 29, 2008, 15:48 (GMT) |
Game Engine: alpha blending and sorting ======================================= Alpha blending + sorting was revised, to fix bugs and get it to work more predictable. * A new per texture face "Sort" setting defines if the face is alpha sorted or not, instead of abusing the "ZTransp" setting as it did before. * Existing files are converted to hopefully match the old behavior as much as possible with a version patch. * On new meshes the Sort flag is disabled by the default, to avoid unexpected and hard to find slowdowns. * Alpha sorting for faces was incredibly slow. Sorting faces in a mesh with 600 faces lowered the framerate from 200 to 70 fps in my test.. the sorting there case goes about 15x faster now, but it is still advised to use Clip Alpha if possible instead of regular Alpha. * There still various limitations in the alpha sorting code, I've added some comments to the code about this. Some docs at the bottom of the page: http://www.blender.org/development/current-projects/changes-since-246/realtime-glsl-materials/ Merged some fixes from the apricot branch, most important change is that tangents are now exactly the same as the rest of Blender, instead of being computed in the game engine with a different algorithm. Also, the subversion was bumped to 1. |
Revision b204eec by Ian Thompson July 29, 2008, 11:37 (GMT) |
Selections now draw correctly when word-wrapped. |
Revision 7d5eaa6 by Maxime Curioni July 29, 2008, 11:19 (GMT) |
soc-2008-mxcurioni: corrected problems in API with UnaryFunction1DVoid subclasses and Curvature2DAngleF1D. Understood that Curve and Noise classes cannot be defined in Freestyle's API because they are already given by Blender's API. Will rename to FrsCurve and FrsNoise and change the corresponding style modules. |
Revision 4fa17fc by Maxime Curioni July 29, 2008, 10:45 (GMT) |
soc-2008-mxcurioni: SWIG replacement is effective and the native Freestyle API renders a correct result for the test style module 'contour.py'. More testing needs to be done to make sure my work was correct. To make it work, I had to: - update Operators to include all of its methods in the Python API - redefine the Freestyle modules as local classes, allowing predicates to support the __call__ method (I found out that Python does not allow modules to be callable). The API is defined in the new freestyle_init.py file. - remove all references to former Python Freestyle API (located in source/blender/freestyle/python/, under the Freestyle.py file) and replace it with the new API file. - normalize all constants related to the Nature class - redefine the logical_operators.py file so that AndUP1D, OrUP1D and NotUP1D would be subclasses of a UnaryPredicate1D subclass having a operator() implementation. Using UnaryPredicate1D as a superclass would somehow prevent calls to the operator(). For the time being, I chose ContourUP1D (even though it does not really matter which subclass it is, since the __call__ method is redefined in all of these classes). I will implement this classes in C++ to get rid of the problem altogether. - turn off a few classes that somehow are not well recognized (Noise, Curve...). I will reenable them later once I understand what's going on. |
Revision 7259156 by Maxime Curioni July 29, 2008, 10:42 (GMT) |
soc-2008-mxcurioni: SWIG replacement is effective and the native Freestyle API renders a correct result for the test style module 'contour.py'. More testing needs to be done to make sure my work was correct. To make it work, I had to: - update Operators to include all of its methods in the Python API - redefine the Freestyle modules as local classes, allowing predicates to support the __call__ method (I found out that Python does not allow modules to be callable). The API is defined in the new freestyle_init.py file. - remove all references to former Python Freestyle API (located in source/blender/freestyle/python/, under the Freestyle.py file) and replace it with the new API file. - normalize all constants related to the Nature class - redefine the logical_operators.py file so that AndUP1D, OrUP1D and NotUP1D would be subclasses of a UnaryPredicate1D subclass having a operator() implementation. Using UnaryPredicate1D as a superclass would somehow prevent calls to the operator(). For the time being, I chose ContourUP1D (even though it does not really matter which subclass it is, since the __call__ method is redefined in all of these classes). I will implement this classes in C++ to get rid of the problem altogether. - turn off a few classes that somehow are not well recognized (Noise, Curve...). I will reenable them later once I understand what's going on. |
Revision db6388e by Maxime Curioni July 29, 2008, 05:45 (GMT) |
soc-2008-mxcurioni: finished porting the Freestyle API. All of the original classes, except EdgeModifier and TimestampModifier (which aren't even ported via SWIG), are available under the Blender.Freestyle module. Testing of the porting will now begin to make sure the SWIG-less system works as the original. Quite a few modifications were made to finish the API: - Freestyle's SConscript was modified to catch all files within the intern/python directory, allowing integration of future shaders implemented in C++. - the Operators class was ported, with a special care of making its methods static (using the METH_STATIC flag in the tp_methods method definitions) - all of the type-checking functions [ BPy_[class name]_Check(obj) ] were changed to allow subclasses to be seen as that type too: instead on looking at the ob_type value, the PyObject_IsInstance function is used. - all of the iterators can now retrieve the object pointed to by the operator, using the getObject() method. A directedViewEdge pair is returned as a list of the two elements in the pair. - all of the style modules were copied to a style_modules_blender/ folder and were modified to use Freestyle as a Blender's submodule. IntegrationType and MediumType was also integrated (for example, changing MEAN to IntegrationType.MEAN). Testing now begins. If everything works correctly, I'll move on to lib3ds removal right away. |
Revision 5ba56ff by Daniel Genrich July 28, 2008, 22:56 (GMT) |
Bugfix to get deform modifiers after subsurf work again (reported by nudel) |
Revision e4677c4 by Maxime Curioni July 28, 2008, 22:53 (GMT) |
soc-2008-mxcurioni: add all predicate subclasses( BinaryPredicate1D, UnaryPredicate{0D,1D} ). There is just one more class remaining to port (and probably the most important): Operators. After that, I'll be able to test whether Freestyle functions well without SWIG. |
Revision b0c513e by Benoit Bolsee July 28, 2008, 22:36 (GMT) |
BGE patch: fix support of group hidden layer in dupli group instantiation: only the objects in layers matching the group layer mask will be instantiated. This is equivalent to the 3D view |
Revision 3120af6 by Ken Hughes July 28, 2008, 22:10 (GMT) |
Bugfix for #17396. Adding a text object would segfault when using freetype 2.3.6 or later. Thanks to Cyril Brulebois for a one-line patch, which was sent to the ML a while back. |
Revision dfc93da by Daniel Genrich July 28, 2008, 21:52 (GMT) |
UI fixes are the hardest ones.. (2nd try) |
Revision dd1634b by Daniel Genrich July 28, 2008, 20:24 (GMT) |
Bugfix for messed up UI (reported by nudel) |
Revision 8b77b54 by Daniel Genrich July 28, 2008, 16:55 (GMT) |
WIP commit, completely untested (should introduce: 1. copy of modifier settings work, 2. reverse domain, 3. reverse control) |
Revision fd327cb by Ian Thompson July 28, 2008, 15:47 (GMT) |
Word wrap fix: formatting and cursor positioning was not working correctly for wrapped lines containing tabs, or lines with no breaks. |
Revision d63a3f7 by Daniel Genrich July 28, 2008, 15:21 (GMT) |
Bugfix for not-working-deformers (reported by nudel) |
Revision c566867 by Martin Poirier July 28, 2008, 15:03 (GMT) |
Add automatic weight probagation between islands without any selected vertex. Makes it easier to do multi part meshes. |
Revision bc85f11 by Brecht Van Lommel July 28, 2008, 14:28 (GMT) |
Bugfix: game engine does not support non-camera type objects as a camera, would crash, so disabled using the object as a camera then. |
Revision 12f0fb1 by Ian Thompson July 28, 2008, 11:54 (GMT) |
Draw cursor at the leading edge of selection (as in other apps.) and hide cursor swapping from the user. |
Revision f45aca0 by Ian Thompson July 28, 2008, 11:05 (GMT) |
Complete rewrite of syntax highlighting and formatting. Some improvements: - Takes less than half the time to format a full document - Where possible only the required lines are re-parsed when text is changed (was the whole file, for every key press!) - Memory is allocated in one place only (there were all sorts of problems here) - Should be easily extensible for other scripting languages - Lots of comments to make it very easy to follow / change - def and class are now properly coloured. They had a theme colour but the checks didn't work. |
Revision 48b7f16 by Daniel Genrich July 28, 2008, 11:01 (GMT) |
Phase1: fluidsim obstacles/control objects are grabbed from the specific position in modifier stack now (introducing new funciton in DerivedMesh.c), fixed some UI glitches. |
|