Commit Graph

18208 Commits

Author SHA1 Message Date
Chingiz Dyussenov
464735402e Small fix to lights export. 2009-08-01 17:08:18 +00:00
Chingiz Dyussenov
f081b184f9 * Commented out converter of polygons to triangles - it's not working yet.
* Fixed textures export. 
TODO:
* Fix lights export
2009-08-01 12:49:39 +00:00
Chingiz Dyussenov
2b6e98b0b8 Importer now creates skin vertex groups and reads vertex weights. 2009-08-01 06:44:18 +00:00
Chingiz Dyussenov
c7beb4eba2 Disabled light and material exporting to make it compile with the latest OpenCollada. 2009-07-31 20:35:14 +00:00
Arystanbek Dyussenov
8a5b054c51 COLLADA importer is reading armature from DAE. "Leaf" bones, bones having more than one child and zero-length bones get the size of
a minimum bone length in skeleton and are assigned a sphere shape.

Also fixed rotation reading by re-ordering items in matrix multiplication.

Images:
http://img339.imageshack.us/img339/8778/flufty.png
http://img117.imageshack.us/img117/4641/astroboy.png
2009-07-30 17:05:16 +00:00
Arystanbek Dyussenov
0d8816cc6f Added COLLADA import/export items to "File" menu. Thanks Campbell! 2009-07-30 08:29:03 +00:00
Arystanbek Dyussenov
7725687455 Merge with 2.5 -r 21788:22040. 2009-07-30 08:22:51 +00:00
Arystanbek Dyussenov
1d6a92deed - setting leaf bone size to minimum bone size in bone branch
- trying to determine bone orientation from joint matrix

Looks like DAE joint matrix orientation cannot be relied upon as a source for bone direction. It can be axis-aligned or pointing in 
totally different direction:

http://img75.imageshack.us/img75/8778/flufty.png

It seems to me the best solution is to add a bone with custom draw type that has no pointing direction, sphere for example. Will code 
this after merge!
2009-07-30 06:35:27 +00:00
Chingiz Dyussenov
7d2cfc0516 Some small changes to textures import/export. 2009-07-29 11:32:42 +00:00
Joseph Eagar
94e06c9859 changed some sprintfs to strcats, thanks to Fredrik Axelsson for the patch 2009-07-28 17:23:45 +00:00
Arystanbek Dyussenov
7846956df3 Added armature export in COLLADA exporter (not complete yet).
For each object in scene linked with armature writing the following information:
- bone names
- vertex weights
- bone inverse bind matrices (fake values for now)

Assuming objects don't share Armatures for now.
2009-07-28 12:08:54 +00:00
Campbell Barton
ddb09d3220 [#19036] blender should use 'static inline' in BKE_cloth.h to work with C99
Török Edwin (edwintorok)

this was the only thing stopping blender being compiled with clang
2009-07-28 01:48:10 +00:00
Chingiz Dyussenov
a5d8e6e5cd Changed textures import. Although code is still difficult to understand. 2009-07-27 17:43:13 +00:00
Arystanbek Dyussenov
6a4d9cae72 COLLADA importer:
- splitted code into separate classes: ArmatureImporter, MeshImporter
- commented out texture-to-mesh binding code which was difficult to comprehend, Chingiz will re-think/re-write
2009-07-26 09:29:25 +00:00
Chingiz Dyussenov
d8adc93cc8 Another small fix. 2009-07-26 07:45:11 +00:00
Campbell Barton
dd918da8de ReplaceMesh Actuator option to replace the physics mesh and display mesh + python api options.
When the mesh field is left blank and Physics option is enabled, it reinstances the physics mesh from the existing mesh.
like calling gameOb.reinstancePhysicsMesh() from python.
2009-07-26 01:32:37 +00:00
Campbell Barton
e9ca43521f BGE Physics
Add support back for reinstancePhysics mesh, a frequently requested feature in the BGE forums.
from what I can tell Sumo supported this but bullet never did.
Currently only accessible via python at the moment.

- rigid body, dynamic, static types work.
- instanced physics meshes are modified too.
- compound shapes are not supported.

Physics mesh can be re-instanced from...
* shape keys & armature deformations
* subsurf (any other modifiers too)
* RAS_TexVert's (can be modified from python)

Moved the reinstancePhysicsMesh functions from RAS_MeshObject into KX_GameObject since the physics data is stored here.

video and blend file demo.
http://www.graphicall.org/ftp/ideasman42/reinstance.ogv
http://www.graphicall.org/ftp/ideasman42/reinstance_demo.blend
2009-07-25 22:57:29 +00:00
Campbell Barton
1c00eacca2 fix memleak in BGE py api - action.channelNames 2009-07-25 20:51:45 +00:00
Campbell Barton
88097e9909 - BGE Python API converting a mesh from a python arg was broken but happened to work if the uninitialized pointer was not NULL.
- iris.c - looks like a copy/paste error, was using rect where it could not have been initialized.
2009-07-25 19:34:38 +00:00
Chingiz Dyussenov
8511208f22 Small fix to controllers import. 2009-07-25 18:45:22 +00:00
Chingiz Dyussenov
9b28872572 Small fixes to prevent crash if imported mesh is empty. 2009-07-25 18:21:51 +00:00
Arystanbek Dyussenov
d06eb49b2f COLLADA importer: basic armature import.
Since in DAE only a matrix is stored per bone, some tricks have to be applied to build an armature from it:
- direction for "leaf" bones is hard-coded to Y vector. This will be changed to bone matrix orientation, somehow code will need to 
  derive the bone "forward" axis
- for "leaf" bones length cannot be determined, currently it is hard-coded (second screenshot), but I think changing it to the average 
  length of all non-leaf bones is ok
- parent bones get their tail at last child's head, this is not good (first screenshot). For bones with more than one child Chingiz 
  suggested not to link it with any child, I think it's a good idea. Length will be the same as for leaf bones.

Screenshots: 
http://img232.imageshack.us/img232/8905/screenfhy.png
http://img406.imageshack.us/img406/3004/tobaggan.png
2009-07-25 16:10:17 +00:00
Chingiz Dyussenov
d6098931dd Another fix to textures import. 2009-07-25 15:12:56 +00:00
Chingiz Dyussenov
97837623a7 Fixed textures, images import/export. 2009-07-25 14:09:15 +00:00
Kent Mein
431a388ae7 This is patch# 19017 16bit SGI image loading
submitted by Albertas Vyšniauskas (thezbyg) 

Improves SGI image support.

Kent
2009-07-24 17:17:04 +00:00
Chingiz Dyussenov
9603fd2289 If <geometry> is instaciated through <controller>, it will be imported. 2009-07-23 11:48:31 +00:00
Arystanbek Dyussenov
3321a1fd4a Merge with 2.5 -r 21003:21788.
Run smoothly :)
2009-07-22 05:35:12 +00:00
Arystanbek Dyussenov
3b058378dd Importer: fix parenting. 2009-07-22 03:51:11 +00:00
Guillermo S. Romero
d44d7e220d SVN maintenance. 2009-07-21 21:31:13 +00:00
Brecht Van Lommel
c354ea0ef1 2.5: Render
This adds a RenderEngine type to RNA, which can be subclassed
in python (c++ will follow once we support subclassing there).
It's very basic, but plugs into the pipeline nicely. Two example
scripts:

http://www.pasteall.org/6635/python
http://www.pasteall.org/6636/python

Issues:
* Render runs in a separate thread, and there is unrestricted
  access, so it's possible to crash blender with unsafe access.
* Save buffers and full sample are not supported yet.
2009-07-21 20:28:32 +00:00
Brecht Van Lommel
6b8dae0874 RNA
* ID blocks can now get RNA properties defined from python, e.g.:
  bpy.types.Scene.BoolProperty(..)
* RNA structs/functions/properties can now get pointers duplicated
  (mostly strings), since we can't point to some static string then.
* Added ExtensionRNA struct to add into *Type structs for subclassing,
  is a bit more compact than defining the 4 variables each time.
  Only disadvantage is it requires including RNA in more places.
2009-07-21 20:05:16 +00:00
Arystanbek Dyussenov
e62b675858 Basic object transform animation export:
- just writes all curves from action linked to an object
- linear interpolation
2009-07-21 19:08:36 +00:00
Brecht Van Lommel
b8445173c4 2.5:
* Fix armature drawing crash with materials.
* Mixed texture/material preview was doing wrong gamma correction.
* Use *f math functions for AAO.
2009-07-21 18:29:37 +00:00
Brecht Van Lommel
a1407ff342 2.5:
* Windows fixes for texture filter & bump patches, thanks
  Jean-Michel Soler for noting.

* Added sqrtf/sinf/fabsf/... fallback #ifdefs in BLI_arithb.h,
  those should be safe to use now. Replacing the double for the
  float version throughout the code can be done once, but would
  need proper testing.
2009-07-21 18:23:45 +00:00
Campbell Barton
e4b7997277 py console wasnt working since r21743 2009-07-21 15:52:15 +00:00
Brecht Van Lommel
0391b5ecef 2.5: fix crash on load when saving with a filebrowser open. 2009-07-21 14:28:41 +00:00
Brecht Van Lommel
b5457e8e70 RNA
* Wrapped RenderResult, RenderLayer, RenderPass.
* Update RNA_access.h with new structs.
2009-07-21 14:11:51 +00:00
Brecht Van Lommel
0b49dc77de 2.5: Bump Mapping
Patch by Alfredo de Greef. Considerably improves the quality of bump
mapping, and texture filtering for displacement and warp too. Mainly
this is achieved by getting the texture derivatives just right in
various cases, many thanks to Alfredo for figuring this one out, works
great.


This is enabled by default now, but disabled still for existing
textures to preserve backwards compatibility. Can be enabled with
the "New Bump" option in the material texture slot in the outliner.

Also, I made the range for the normal factor a bit smaller since this
gives stronger effects, but note that you can still type in larger
values than the slider allows.
2009-07-21 13:46:49 +00:00
Joshua Leung
d19bb6ffcf Silencing warnings (mingw + scons) about undefined stuff... 2009-07-21 13:20:39 +00:00
Brecht Van Lommel
e3c6ae9b89 2.5: Texture Filtering
Patch by Alfredo de Greef with high quality image texture filters.
This adds 3 new filters:

* SAT: Summed Area Tables. This is like mipmaps, but using somewhat
  more memory avoids some artifacts.
* EWA: Ellipitical Weighted Average, anisotropic filter.
* FELINE: Fast elliptical lines for anisotropic texture mapping.

The one change I made to this was to try to fix an alpha/premul
problem, hopefully I didn't break anything, it looks compatible
with the existing filter now for me.
2009-07-21 13:20:35 +00:00
Joshua Leung
ea0b015b0a 2.5 - Copy/Paste Operators for Armatures
* Buttons in header now use operators too. The paste-flipped button needs attention though, since the flipped argument isn't set yet

* Assigned Ctrl-C, Ctrl-V, and Ctrl-Shift-V to Copy/Paste/Paste-Flipped respectively for now.

* Auto-Keying for this doesn't work again yet. On todo for later...

---

* Also, new armatures now get the flag to show custom bone colours enabled by default.
2009-07-21 13:12:40 +00:00
Brecht Van Lommel
e56287bfc9 2.5: Texture Buttons
* World and Lamp previews now working here too.
* Experiment with list template, showing only icons. Unfortunately
  texture icon render crashes combined with preview render so it
  shows all icons the same.
* Influence panels updated, with slider for each option. The values
  are still linked though, will fix that later.
* Image texture controls a bit more complete, still WIP.
* Color ramp back.
2009-07-21 12:57:55 +00:00
Joshua Leung
7284eb6d91 2.5 - More work on Bone Groups
* Added a new UI Template for the 3-colour picker used to visualise + select the custom colours for a bone group.

* Finished wrapping the colour properties for Bone Groups in RNA. Although changing the colour-set used will change the displayed/cached colours, changing the colours via the colour wells will not change the colour set to 'custom' (as per 2.4x) yet. This needs a nice solution...

* Fixed context-related bugs with the Assign/Remove operators for bone groups. These were using context-iterators for selected posechannels, but that was only defined/valid for the 3d view (but not for the buttons window), hence a failure in that case.
2009-07-21 12:38:01 +00:00
Ton Roosendaal
e18164dbab 2.5
Overlooked WM event.val usage without checking proper #defines.
My previous commit made all input not work on any modifier key press.
2009-07-21 12:19:46 +00:00
Ton Roosendaal
ed92105857 2.5
Modal keymaps.

I've tried to make it as simple as possible, yet still using sufficient facilities to enable self-documenting UIs, saving/reading in files, and proper Python support.

The simplicity is: the 'modal keymap' just checks an event, uses event matching similarly to other keymap matching, and if there's a match it changes the event type, and sets the event value to what the modal keymap has defined. The event values are being defined using EnumPropertyItem structs, so the UI will be able to show all options in self-documenting way.
This system also allows to still handle hardcoded own events.

Tech doc:

1) define keymap
- Create map with unique name, WM_modalkeymap_add()
- Give map property definitions (EnumPropertyItem *)
  This only for UI, so user can get information on available options

2) items
- WM_modalkeymap_add_item(): give it an enum value for events

3) activate
- In keymap definition code, assign the modal keymap to operatortype
  WM_modalkeymap_assign()

4) event manager
- The event handler will check for modal keymap, if so:
  - If the modal map has a match:
    - Sets event->type to EVT_MODAL_MAP
    - Sets event->val to the enum value

5) modal handler
- If event type is EVT_MODAL_MAP:
  - Check event->val, handle it
- Other events can just be handled still

Two examples added in the code:

editors/transform/transform.c: transform_modal_keymap()
editors/screen/screen_ops.c: keymap_modal_set()

Also: to support 'key release' the define KM_RELEASE now is officially
used in event manager, this is not '0', so don't check key events with
the old convention if(event->val) but use if(event->val==KM_PRESS)
2009-07-21 11:03:07 +00:00
Brecht Van Lommel
0865bf2959 2.5: python module name for import had trailing "." 2009-07-21 10:40:13 +00:00
Joshua Leung
6d074526f2 2.5 - Restoring Bone Groups
* Added Bone Groups UI to 'Armature' context buttons for now. Later, it may be more convenient to have these with bones instead?

* Added operators for the operations that can be performed on these groups. Moved the core adding/removing functions to blenkernel so that they can be used elsewhere in future if need be.

* Properly wrapped bone groups in RNA. Copied the way that Vertex Groups are wrapped, since they share some similarities. Setting colours for bone groups still needs more work though.
2009-07-21 10:18:08 +00:00
Campbell Barton
8c9ade81e8 Make linux/scons default to python 3.1 rather then the version scons runs with.
for a while py2.x will work but eventually be dropped when most OS's support it, so Id recommend upgrading.

The following instructions are only needed if you don't use python3.1 installed in the default location.
For releases users wont have to worry about this.


# in python3.1 source dir, build and install into your own dir, /opt/py31 is just an example.
./configure --prefix="/opt/py31"; make; make install

# In the scons user-config.py...
BF_PYTHON = "/opt/py31"

# ... now build ... 
# 
# Blender now needs 2 things to run. ./lib/libpython3.1.so and the python modules.

# Symlink (or copy) python modules, blender sets this path for modules on startup if it is found.
ln -s /opt/py31/lib/python3.1 ~/.blender/python

# Currently static linking is not working without hacks because of limitations in scons.
# for releases we can workaround, but for now its easier to set an environment variable.
# To start blender so it can find libpython3.1.so make this into a shell script to save yourself typing it in all the time.
export LD_LIBRARY_PATH="/opt/py31/lib/"
./blender
2009-07-21 10:13:20 +00:00
William Reynish
5cd5e85143 Cleaned up logic buttons in logic space slightly.
Moved Shade Smooth/Flat from Mesh obdata panel to tools area. These kinds of operator tools aren't really allowed in the buttons window anymore - whole point of new tools area :)
The only operators that are allowed in buttons window are things that act on the RNA fields, like add/remove buttons for adding vertex groups etc.
2009-07-21 09:35:39 +00:00
Campbell Barton
0ebf23c0b8 BLI_setenv, use instead of copying ifdefs about for setting env vars.
set PYTHONHOME as well as PYTHONPATH, quiets some warnings.
2009-07-21 09:26:28 +00:00