blender/source/gameengine/Converter
Dalai Felinto b263aefb0e TexFace to Material Settings big patch
Summary:
========
The idea here is to move the texface options into the material panel.
For images with the change please visit:
http://code.blender.org/index.php/2011/09/bge-material-texface-changes

1 - Some of the legacy problems 2.49 and 2.5x has with the texface system:
==========================================================================
1.1) Shadow, Bilboard and Halo are mutual exclusive (in the code), yet you can
select a face to be more than one mode.
1.2) Sort only works for blend Alpha yet it's an option regardless of the
Transparency Blend you pick.
1.3) Shared doesn't affect anything in BGE.
1.4) ObColor only works for Text objects (old bitmap texts) when using Texture
Face Materials. (not address yet, I so far ignored obcolor)

2 - Notes:
============
2.1) Now "Use Face Textures" in material Option panel will work in Multitexture
even if there is no texture channel.

2.2) In FaceTexture mode it will use TexFace all the time, even if you don't
check the "Use Texture Face" option in the UI. It's a matter of decision, since
the code for either way is there. I decided by the solution that makes the
creation of a material fast - in this mode the user doesn't need to mess with
textures or this "Use Texture Face" option at all. I'm not strong in my opinion
here. But I think if we don't have this then what is the point of the Texture
Face mode?

2.3) I kept references for tface only when we need the image, UV or the tiling
setting. It should help later when/if we split the Image and UV layers from the
tface struct  (Campbell and Brecht proposal).

3 - Changes in a Nutshell:
==========================
3.1) "Texture Face" panel (in the Mesh/Object Data panel) no longer exists. Those settings are all part of the material properties, visible when Game Render is set.

3.2) "Texture Face" Shading mode (in the Render panel) is now called “Single Texture”, it needs a material for special settings (e.g. Billboard, Alpha Sort, …).

3.3) New options in the Material Panel
* Shadeless option in the Material panel is now supported for all three Shading modes.
* Physics is now toggleable, this is the old Collision option.
* Two Side (on) is now called Back Culling (off).
* Alpha Sort is one of the Alpha options, together (and mutually exclusive) to Alpha Blend, Alpha Clip, Add and Opaque (i.e. solid).
* Shadow, Billboard and Halo are grouped in the “Face Orientation” property.
* "Face Textures" and "Face Textures Alpha" (under Options) can be used for all but GLSL shading mode (to be supported in GLSL eventually).
* The backend in the game engine is still the same as before. The only changes are in the interface and in the way you need to think your materials. The bottomline is: It’s no longer possible to share materials between faces that do not share the same game properties.

4 - Acknowledgment:
==================
Mike Pan for the design discussions, and testing along the whole development process.
Vitor Balbio for the first hands-on code with the interface changes. That helped me a lot to push me into work on that.
Benoit Bolsee and Brecht van Lommel for patch review (* no one reviewed the whole patch, or the latest iteractions, so I still hold liability for any problems).
Blender artists that gave feedback and helped testing the patch.

Patch review and original documentation can be found here:
http://wiki.blender.org/index.php/User:Dfelinto/TexFace
http://codereview.appspot.com/4289041/
2011-09-19 19:55:59 +00:00
..
BL_ActionActuator.cpp BGE animations: fixing initialization order issues for BL_ActionActuator and BL_ArmatureObject. Thanks to z0r for pointing them out and providing a fix. 2011-09-04 01:42:47 +00:00
BL_ActionActuator.h BGE animations: This is an attempt to help smooth out some more compatibility issues with the new action actuator. It now has a similar pulse behavior to the old actuator. This has worked well in most of my tests, but YoFrankie still has problems, and it appears to have gotten a little worse. 2011-09-01 21:47:46 +00:00
BL_ArmatureActuator.cpp Code cleanup: remove source/kernel module, this wasn't really the kernel of 2011-05-06 20:18:42 +00:00
BL_ArmatureActuator.h Code cleanup: remove source/kernel module, this wasn't really the kernel of 2011-05-06 20:18:42 +00:00
BL_ArmatureChannel.cpp includes for building with gcc 4.6 on fedora. 2011-03-30 16:14:54 +00:00
BL_ArmatureChannel.h Code cleanup: remove source/kernel module, this wasn't really the kernel of 2011-05-06 20:18:42 +00:00
BL_ArmatureConstraint.cpp Code cleanup: remove source/kernel module, this wasn't really the kernel of 2011-05-06 20:18:42 +00:00
BL_ArmatureConstraint.h Code cleanup: remove source/kernel module, this wasn't really the kernel of 2011-05-06 20:18:42 +00:00
BL_ArmatureObject.cpp - remove deprecated pose channel members 2011-09-16 02:42:50 +00:00
BL_ArmatureObject.h BGE Animations: Adding a new choice for vertex deformation for armatures, which can be found in the Armature's Skeleton panel by the Deform options. Before only Blender's armature_deform_verts() was used. Now users can choose a vertex deformation function that is optimized for the BGE. At the moment it is mostly a copy of armature_deform_verts() with various chunks of code removed, and the BLI_math code was replaced with Eigen2. In my test scene, the new function offered about a 40% improvement over armature_deform_verts() (17~19ms rasterizer to 11~12ms). The only current limitation that I'm aware of if that B-Bone segments are not supported in the BGE version, and I will probably leave it out. I would like to also limit the BGE version to 4 weights to make things easier for a GPU version, but this may just make things slower (sorting weights to find the top 4). 2011-07-26 06:10:05 +00:00
BL_BlenderDataConversion.cpp TexFace to Material Settings big patch 2011-09-19 19:55:59 +00:00
BL_BlenderDataConversion.h Code cleanup: remove source/kernel module, this wasn't really the kernel of 2011-05-06 20:18:42 +00:00
BL_DeformableGameObject.cpp BGE Animations: Various changes to make code reviewers happy: 2011-08-29 06:19:55 +00:00
BL_DeformableGameObject.h BGE Animations: Making shape actions work again: 2011-06-23 19:09:09 +00:00
BL_MeshDeformer.cpp Code cleanup: remove source/kernel module, this wasn't really the kernel of 2011-05-06 20:18:42 +00:00
BL_MeshDeformer.h whitespace edits 2011-09-03 02:15:49 +00:00
BL_ModifierDeformer.cpp Code cleanup: remove source/kernel module, this wasn't really the kernel of 2011-05-06 20:18:42 +00:00
BL_ModifierDeformer.h doxygen: entries for blenderroutines, converter, expressions, gamelogic, gameplayer, ketsji 2011-02-22 10:33:14 +00:00
BL_ShapeActionActuator.cpp BGE Animations: Making shape actions work again: 2011-06-23 19:09:09 +00:00
BL_ShapeActionActuator.h BGE Animations: Making shape actions work again: 2011-06-23 19:09:09 +00:00
BL_ShapeDeformer.cpp whitespace bge edits 2011-09-01 02:12:53 +00:00
BL_ShapeDeformer.h whitespace edits 2011-09-03 02:15:49 +00:00
BL_SkinDeformer.cpp - fix for mesh_get_mapped_verts_nors copying short normals to floats without scaling. 2011-09-12 04:29:35 +00:00
BL_SkinDeformer.h BGE Animations: BGEDeformVerts() now handles normals instead of relying on BL_MeshDeformer::RecalcNormals(), which BlenderDeformVerts() still uses. As expected, the BGEDeformVerts() version isn't as accurate, but it avoids a sqrt per vertex. This gives about a 15~20% improvement in time spent on the rasterizer in my test scene, which resulted in about 5 more fps. However, the main reason for the new normal code is it will be easier to do on the GPU (doesn't rely on neighbor information). 2011-08-01 23:02:10 +00:00
BlenderWorldInfo.cpp whitespace bge edits 2011-09-01 02:12:53 +00:00
BlenderWorldInfo.h doxygen: entries for blenderroutines, converter, expressions, gamelogic, gameplayer, ketsji 2011-02-22 10:33:14 +00:00
CMakeLists.txt svn merge -r 37306:39975 https://svn.blender.org/svnroot/bf-blender/trunk/blender 2011-09-07 15:34:04 +00:00
KX_BlenderScalarInterpolator.cpp BGE Animation: 2011-05-28 07:15:27 +00:00
KX_BlenderScalarInterpolator.h BGE Animation: 2011-05-28 07:15:27 +00:00
KX_BlenderSceneConverter.cpp fix some complier warnings and add -Wundef to CMake's default GCC warnings. 2011-09-05 23:40:52 +00:00
KX_BlenderSceneConverter.h BGE Animations: The IPO conversion code relied on objects having an adt, but this isn't always the case. object->adt can be NULL, which causes a crash. Now BL_InterpolatorLists are cached by action instead of adt. 2011-08-07 04:57:23 +00:00
KX_ConvertActuators.cpp svn merge -r 39975:40061 https://svn.blender.org/svnroot/bf-blender/trunk/blender 2011-09-09 12:21:41 +00:00
KX_ConvertActuators.h doxygen: entries for blenderroutines, converter, expressions, gamelogic, gameplayer, ketsji 2011-02-22 10:33:14 +00:00
KX_ConvertControllers.cpp bge bugfix: [#28362] Controllers names appear incorrectly with a python query 2011-08-29 03:20:15 +00:00
KX_ConvertControllers.h doxygen: entries for blenderroutines, converter, expressions, gamelogic, gameplayer, ketsji 2011-02-22 10:33:14 +00:00
KX_ConvertProperties.cpp doxygen: gameengine/Converter tagged. 2011-02-25 13:30:41 +00:00
KX_ConvertProperties.h doxygen: entries for blenderroutines, converter, expressions, gamelogic, gameplayer, ketsji 2011-02-22 10:33:14 +00:00
KX_ConvertSensors.cpp whitespace bge edits 2011-09-01 02:12:53 +00:00
KX_ConvertSensors.h doxygen: entries for blenderroutines, converter, expressions, gamelogic, gameplayer, ketsji 2011-02-22 10:33:14 +00:00
KX_IpoConvert.cpp BGE animations: Fixing a potential crash when using camera IPOs. The IPOs were being created off of blendercamera->adt->action when they should have been using the supplied action. Thanks to z0r for pointing out the problem and a potential fix. 2011-09-04 01:27:16 +00:00
KX_IpoConvert.h BGE Animations: Lamp and Camera IPOs are now handled like object IPOs, which means lamps and cameras are no longer stuck to just their active action. However, the Blender UI seems a little restrictive in this area. 2011-08-17 09:38:50 +00:00
KX_SoftBodyDeformer.cpp Code cleanup: remove source/kernel module, this wasn't really the kernel of 2011-05-06 20:18:42 +00:00
KX_SoftBodyDeformer.h Code cleanup: remove source/kernel module, this wasn't really the kernel of 2011-05-06 20:18:42 +00:00
SConscript svn merge -r 37306:39975 https://svn.blender.org/svnroot/bf-blender/trunk/blender 2011-09-07 15:34:04 +00:00