Commit Graph

236 Commits

Author SHA1 Message Date
7306eb84f0 move NavMesh draw code out of being a modifier and into DerivedMesh drawing hack (which IMHO is less bad then mis-using a modifier only to override drawing calls). 2011-10-09 21:11:51 +00:00
35f881b44d Commented and tagged some unused vars, added some var init (gcc warnings...) 2011-09-28 15:22:13 +00:00
018fa1540e whitespace edits, make formatting for functions consustent at least within the file. 2011-09-28 05:53:40 +00:00
58587a3881 replace strncpy with BLI_strncpy, in some cases strncpy was being misused since it doesnt ensure \0 termination.
also dont call CTX_data_scene() twice when checking for function arguments.
2011-09-26 18:51:10 +00:00
a043133bab Fix for recent Campbell's commit. 2011-09-23 19:33:04 +00:00
799afc1aa4 Fix #28226: Selection highlighting is wrong when Solidify Modifier is used
Set origindices for edges/faces created for rim to ORIGINDEX_NONE.
Also discovered error in recent editmode VBO fix -- it used to crash
when comparing faces with ORIGINDEX_NONE original index.
2011-09-22 16:57:16 +00:00
aa809e6f78 Minor: Bah, doxygen file's doc comments were also missing from warp and navmesh modifiers... 2011-09-22 12:00:24 +00:00
b6bf57e2b0 Minor: Added doxygen file's doc comments in weightvg modifiers. 2011-09-22 11:52:42 +00:00
3449c0270a Another set of fixes for MSVC 2011-09-20 17:23:52 +00:00
9d1b4b63b3 Fix for recent commit:
- Some declarations after statement left.
- Do not use static inline functions in MOD_navmesh. It produces errors
  with msvc and not sure it's actually helps -- optimizer should
  make it inlined itself.
2011-09-20 17:06:17 +00:00
0169079bd1 Get rid of c++ in blenkernel and modifiers
Also use guarded allocations for navmesh stuff.
2011-09-20 16:24:50 +00:00
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
2222f536f8 use replace 0 with NULL for pointers, set some functions static
also fixed own errors in recent static check commit.
2011-09-16 08:20:21 +00:00
84966d864b WeightVG: Made Edit and Proximity also use the new weightvg_update_vg MDeformWeight** parameter (to avoid another vgroup searching).
Also added to Proximity a check in case vgroup would have no vertices in it.
Plus a few minor edits...
2011-09-15 17:28:18 +00:00
2f50579d9a WeightVG utils, weightvg_update_vg func updates.
* Added an optional array of MDeformModifier pointers, to avoid another search based on defgrp_idx.
* Split out "add/remove verts from vgroup" functions, preparing their move to deform.c (if their current form is validated!).
2011-09-15 16:06:00 +00:00
f8af915b51 WeightVG Mix modifier: updated code to use defgrp_find_index, and make MDeformWeights be searched only once.
Also fixed a bug: when another set mode than "All Vertices" was used and resulting set of verts was empty, all vertices was used, instead of just returning org, unmodified data!
2011-09-15 14:48:50 +00:00
761c44cbc1 Fix [#28654] Warp modifier does not support negative strength when Vertex Group is used.
The vg weight was multiplied by org strength (i.e. neg strength was always skiping all verts!), now multiplying it with abs value of strength.
2011-09-15 11:18:15 +00:00
4bd0a2ba2d replace VECCOPY -> copy_v3_v3, added copy_v*_v*_short too for typesafe copying, some parts of the code are copying float -> short normals without scaling. fix coming next. 2011-09-12 04:14:12 +00:00
b988a2abf8 Recast: fix bad level calls, Recast compiled out if BGE not enabled. SCons updated but not tested. 2011-09-11 14:13:04 +00:00
599cd56f53 minor edits / cleanup - no functional changes.
- use 'const float *' and array size in some function declarations.
- replace macros for BLI_math functions INPF, VECCOPY, VECADD etc.
- remove unused VertRen.clip struct member.
- remove static squared_dist() from 2 files, replace with BLI_math function len_squared_v3v3().
- use vertex arrays for drawing clipping background in the 3D viewport.
2011-09-11 02:50:01 +00:00
3a5f2272ad cmake edits to navmesh so includes are not added unless the game engines enabled. 2011-09-11 00:08:07 +00:00
01dca44a84 disable navmesh feature when building without the game engine. 2011-09-10 04:21:58 +00:00
a7f3e347b7 SVN maintenance. 2011-09-09 22:02:12 +00:00
c1c4743696 svn merge -r 39975:40061 https://svn.blender.org/svnroot/bf-blender/trunk/blender 2011-09-09 12:21:41 +00:00
ae7401751c SVN maintenance. 2011-09-09 00:46:00 +00:00
1f0bb0e035 Vertex Weight Proximity: minor updates and fixes.
*Updated UI code (replaced “row columns” by splits ;) ).
*Clamped global influence to [0.0, 1.0] range!
*Added/edited some tooltips for Proximity.
*Proximity distance mapping can now be reversed by entering Lowest Dist > Highest Dist.
*Moved mapping before masking in Proximity, much more sensible this way!
2011-09-08 07:36:59 +00:00
698b8930fa Vertex Weight Proximity: fixing bug #28560 (memory leak). 2011-09-07 20:06:04 +00:00
dbd6658d73 svn merge -r 37306:39975 https://svn.blender.org/svnroot/bf-blender/trunk/blender 2011-09-07 15:34:04 +00:00
520778163d interface + naming improvements to vertex wright modifier
- WeightVG -> Vertex Weight
- mapping_mode -> falloff_type
- nicer layout for VertexWeightModifiers add/remove options
2011-09-07 07:46:26 +00:00
f6a64f4d79 SVN maintenance. 2011-09-07 07:06:43 +00:00
5a3c6ccadb Merging r39847 through r39930 from trunk into vgroup_modifiers. 2011-09-05 16:27:25 +00:00
4393df9320 VGroup Modifiers: added mapping options to proximity and edit.
*Added Smooth/Sharp/Root/etc. mappings to WeightVGEdit modifier, in addition to custom curve one.
*Added Smooth/Sharp/Root/etc. mappings to WeightVGProximity modifier, without the custom curve one!
*Factorized the common mapping code into MOD_weightvg_util.
2011-09-05 16:16:00 +00:00
cc906e0e2a correct float -> double promotion warnings 2011-09-05 05:43:01 +00:00
e5209c2059 - vertex group modifiers isDisabled functions were incorrect, need to check if the string is set: == NULL will never be true.
- was doing NULL checks on freeing memory in cases where the values were already accessed (blender would have crashed anyway), so remove the NULL checks.
- use deform.c api weight functions to replace inline weight lookups in some cases.
- change if checks in weightvg_do_mask() so its more obvious whats going on.
2011-09-05 05:28:32 +00:00
2c740a9b5e rename vertex group mix "vgroup, vgroup2" to "vgroup_a, vgroup_b"
also clamp more values between 0.0 and 1.0
2011-09-05 04:53:23 +00:00
e8346fa84c simplify get_vert2ob_distance, mat4_to_loc_rot_size isnt needed. 2011-09-05 04:00:08 +00:00
1ba71e2caf change proximity method since minimum distance of 0.0 wasnt working at all. 2011-09-05 03:53:26 +00:00
5fd8ffd242 - mask_tex_map_obj --> mask_tex_map_object
- dont allow negative min distances
2011-09-05 03:26:49 +00:00
57411d1c5f minor edits.
- init proximity to 1.0f
- min/max proximity dist were not being copied.
- minor edits to comments - use ascii chars in a few places.
2011-09-05 03:09:49 +00:00
317908a330 Fix #28423: Screw-modifier crash in cunjunction with subsurf modifier
Problems was caused by angle=2*pi and steps=2 in screw modifier.
Such configuration produced duplicated geometry to close object
and it was confusing for subsurf cache.

Restrict steps=2 for screw modifier now, so now 3<=steps<=512.
2011-09-04 11:13:41 +00:00
cd6f93bdc9 vgroup_modifiers: Definitively removed addtionnal mapping/clamping options in WeightVGEdit mod, including from DNA struct. 2011-08-23 12:33:45 +00:00
58af2c36ac vgroup_modifiers: Removed (commented out, for now) addtionnal mapping/clamping options in WeightVGEdit mod, leaving the only curve mapping stuff.
Also, updated all three modifiers with new foreachTexLink walking func.
2011-08-17 13:07:51 +00:00
236a94268e Merging r39199 through r39485 from trunk into vgroup_modifiers. 2011-08-17 11:11:43 +00:00
0b23d378fb fix [#28225] Solidify Modifier creates wrong results when vertex group is attached
infact this is not really a bug, irrespective zero vertex group weights gave overlapping geometry which isn't useful, add an option to set the thickness factor for zero weighted verts.
2011-08-14 06:43:58 +00:00
c265a686d8 Modifiers: add callback to loop over each texture assigned to a modifier. 2011-08-12 18:11:22 +00:00
97d4240911 Merging r38818 through r39198 from trunk into vgroup_modifiers. 2011-08-08 21:28:51 +00:00
e2c24bac6c vgroup_modifiers: Now clamping output values to [0.0, 1.0] range (and added min/max mapping values for Prowimity modif). 2011-08-08 21:12:51 +00:00
af39f26360 fix, uvproject modifier wasn't copying the uv layer name,
also edit var names from recent commit to better fit with other functions.
2011-08-01 05:25:30 +00:00
6c3bb8b903 EditMesh-based skin node drawing 2011-07-31 02:03:48 +00:00
cae05598b1 Added DNA and RNA for skin modifier, stubbed in skin modifier functions 2011-07-31 02:03:28 +00:00