[Bf-extensions-cvs] [01af4af] master: FBX: Mostly add Camera template data, plus a few other minor fixes.
Bastien Montagne
noreply at git.blender.org
Sat Mar 29 18:11:53 CET 2014
Commit: 01af4afaf20a32322c47f054326783bcdb2f8587
Author: Bastien Montagne
Date: Sat Mar 29 16:23:15 2014 +0100
https://developer.blender.org/rBA01af4afaf20a32322c47f054326783bcdb2f8587
FBX: Mostly add Camera template data, plus a few other minor fixes.
===================================================================
M io_scene_fbx/export_fbx_bin.py
===================================================================
diff --git a/io_scene_fbx/export_fbx_bin.py b/io_scene_fbx/export_fbx_bin.py
index c122d0c..8516c5b 100644
--- a/io_scene_fbx/export_fbx_bin.py
+++ b/io_scene_fbx/export_fbx_bin.py
@@ -360,29 +360,38 @@ def elem_data_vec_float64(elem, name, value):
# Also, those "custom" types like 'FieldOfView' or 'Lcl Translation' are pure nonsense,
# these are just Vector3D ultimately... *sigh* (again).
FBX_PROPERTIES_DEFINITIONS = {
+ # Generic types.
"p_bool": (b"bool", b"", "add_int32"), # Yes, int32 for a bool (and they do have a core bool type)!!!
"p_integer": (b"int", b"Integer", "add_int32"),
"p_ulonglong": (b"ULongLong", b"", "add_int64"),
"p_double": (b"double", b"Number", "add_float64"), # Non-animatable?
"p_number": (b"Number", b"", "add_float64"), # Animatable-only?
"p_enum": (b"enum", b"", "add_int32"),
- "p_visibility": (b"Visibility", b"", "add_float64"),
- "p_fov": (b"FieldOfView", b"", "add_float64"),
- "p_fov_x": (b"FieldOfViewX", b"", "add_float64"),
- "p_fov_y": (b"FieldOfViewY", b"", "add_float64"),
"p_vector_3d": (b"Vector3D", b"Vector", "add_float64", "add_float64", "add_float64"), # Non-animatable?
"p_vector": (b"Vector", b"", "add_float64", "add_float64", "add_float64"), # Animatable-only?
- "p_lcl_translation": (b"Lcl Translation", b"", "add_float64", "add_float64", "add_float64"),
- "p_lcl_rotation": (b"Lcl Rotation", b"", "add_float64", "add_float64", "add_float64"),
- "p_lcl_scaling": (b"Lcl Scaling", b"", "add_float64", "add_float64", "add_float64"),
"p_color_rgb": (b"ColorRGB", b"Color", "add_float64", "add_float64", "add_float64"), # Non-animatable?
"p_color": (b"Color", b"", "add_float64", "add_float64", "add_float64"), # Animatable-only?
"p_string": (b"KString", b"", "add_string_unicode"),
"p_string_url": (b"KString", b"Url", "add_string_unicode"),
"p_timestamp": (b"KTime", b"Time", "add_int64"),
"p_datetime": (b"DateTime", b"", "add_string_unicode"),
- "p_object": (b"object", b""), # XXX Check this! No value for this prop???
+ # Special types.
+ "p_object": (b"object", b""), # XXX Check this! No value for this prop??? Would really like to know how it works!
"p_compound": (b"Compound", b""),
+ # Specific types (sic).
+ ## Objects (Models).
+ "p_lcl_translation": (b"Lcl Translation", b"", "add_float64", "add_float64", "add_float64"),
+ "p_lcl_rotation": (b"Lcl Rotation", b"", "add_float64", "add_float64", "add_float64"),
+ "p_lcl_scaling": (b"Lcl Scaling", b"", "add_float64", "add_float64", "add_float64"),
+ "p_visibility": (b"Visibility", b"", "add_float64"),
+ "p_visibility_inheritance": (b"Visibility Inheritance", b"", "add_int32"),
+ ## Cameras!!!
+ "p_roll": (b"Roll", b"", "add_float64"),
+ "p_opticalcenterx": (b"OpticalCenterX", b"", "add_float64"),
+ "p_opticalcentery": (b"OpticalCenterY", b"", "add_float64"),
+ "p_fov": (b"FieldOfView", b"", "add_float64"),
+ "p_fov_x": (b"FieldOfViewX", b"", "add_float64"),
+ "p_fov_y": (b"FieldOfViewY", b"", "add_float64"),
}
@@ -489,8 +498,8 @@ def fbx_template_def_globalsettings(scene, settings, override_defaults=None, nbr
def fbx_template_def_model(scene, settings, override_defaults=None, nbr_users=0):
gscale = settings.global_scale
props = OrderedDict((
- # Name, Value, Type, Animatable
- (b"QuaternionInterpolate", (False, "p_bool", False)),
+ # Name, Value, Type, Animatable
+ (b"QuaternionInterpolate", (0, "p_enum", False)), # 0 = no quat interpolation.
(b"RotationOffset", ((0.0, 0.0, 0.0), "p_vector_3d", False)),
(b"RotationPivot", ((0.0, 0.0, 0.0), "p_vector_3d", False)),
(b"ScalingOffset", ((0.0, 0.0, 0.0), "p_vector_3d", False)),
@@ -560,6 +569,7 @@ def fbx_template_def_model(scene, settings, override_defaults=None, nbr_users=0)
(b"Lcl Rotation", ((0.0, 0.0, 0.0), "p_lcl_rotation", True)),
(b"Lcl Scaling", (Vector((1.0, 1.0, 1.0)) * gscale, "p_lcl_scaling", True)),
(b"Visibility", (1.0, "p_visibility", True)),
+ (b"Visibility Inheritance", (1, "p_visibility_inheritance", False)),
))
if override_defaults is not None:
props.update(override_defaults)
@@ -571,12 +581,12 @@ def fbx_template_def_light(scene, settings, override_defaults=None, nbr_users=0)
props = OrderedDict((
(b"LightType", (0, "p_enum", False)), # Point light.
(b"CastLight", (True, "p_bool", False)),
- (b"Color", ((1.0, 1.0, 1.0), "p_color_rgb", True)),
+ (b"Color", ((1.0, 1.0, 1.0), "p_color", True)),
(b"Intensity", (100.0, "p_number", True)), # Times 100 compared to Blender values...
(b"DecayType", (2, "p_enum", False)), # Quadratic.
(b"DecayStart", (30.0 * gscale, "p_double", False)),
(b"CastShadows", (True, "p_bool", False)),
- (b"ShadowColor", ((0.0, 0.0, 0.0), "p_color_rgb", True)),
+ (b"ShadowColor", ((0.0, 0.0, 0.0), "p_color", True)),
(b"AreaLightShape", (0, "p_enum", False)), # Rectangle.
))
if override_defaults is not None:
@@ -585,7 +595,115 @@ def fbx_template_def_light(scene, settings, override_defaults=None, nbr_users=0)
def fbx_template_def_camera(scene, settings, override_defaults=None, nbr_users=0):
- props = OrderedDict() # TODO!!!
+ r = scene.render
+ props = OrderedDict((
+ (b"Color", ((0.8, 0.8, 0.8), "p_color_rgb", False)),
+ (b"Position", ((0.0, 0.0, -50.0), "p_vector", True)),
+ (b"UpVector", ((0.0, 1.0, 0.0), "p_vector", True)),
+ (b"InterestPosition", ((0.0, 0.0, 0.0), "p_vector", True)),
+ (b"Roll", (0.0, "p_roll", True)),
+ (b"OpticalCenterX", (0.0, "p_opticalcenterx", True)),
+ (b"OpticalCenterY", (0.0, "p_opticalcentery", True)),
+ (b"BackgroundColor", ((0.8, 0.8, 0.8), "p_color", True)),
+ (b"TurnTable", (0.0, "p_number", True)),
+ (b"DisplayTurnTableIcon", (False, "p_bool", False)),
+ (b"UseMotionBlur", (False, "p_bool", False)),
+ (b"UseRealTimeMotionBlur", (True, "p_bool", False)),
+ (b"Motion Blur Intensity", (1.0, "p_number", True)),
+ (b"AspectRatioMode", (2, "p_enum", False)), # Fixed ratio, height and width in pixels.
+ (b"AspectWidth", (float(r.resolution_x), "p_double", False)),
+ (b"AspectHeight", (float(r.resolution_y), "p_double", False)),
+ (b"PixelAspectRatio", (float(r.pixel_aspect_x / r.pixel_aspect_y), "p_double", False)),
+ (b"FilmOffsetX", (0.0, "p_number", True)),
+ (b"FilmOffsetY", (0.0, "p_number", True)),
+ (b"FilmWidth", (1.2598425196850394, "p_double", False)),
+ (b"FilmHeight", (0.7086614173228346, "p_double", False)),
+ (b"FilmAspectRatio", (1.777777777777778, "p_double", False)),
+ (b"FilmSqueezeRatio", (1.0, "p_double", False)),
+ (b"FilmFormatIndex", (0, "p_enum", False)), # Assuming this is ApertureFormat, 0 = custom.
+ (b"PreScale", (1.0, "p_number", True)),
+ (b"FilmTranslateX", (0.0, "p_number", True)),
+ (b"FilmTranslateY", (0.0, "p_number", True)),
+ (b"FilmRollPivotX", (0.0, "p_number", True)),
+ (b"FilmRollPivotY", (0.0, "p_number", True)),
+ (b"FilmRollValue", (0.0, "p_number", True)),
+ (b"FilmRollOrder", (0, "p_enum", False)), # 0 = rotate first (default).
+ (b"ApertureMode", (3, "p_enum", False)), # 3 = focal length.
+ (b"GateFit", (0, "p_enum", False)), # 0 = no resolution gate fit.
+ (b"FieldOfView", (49.13434207760448, "p_fov", True)),
+ (b"FieldOfViewX", (49.13434207760448, "p_fov_x", True)),
+ (b"FieldOfViewY", (28.841546110078532, "p_fov_y", True)),
+ (b"FocalLength", (35.0, "p_number", True)),
+ (b"CameraFormat", (0, "p_enum", False)), # Custom camera format.
+ (b"UseFrameColor", (False, "p_bool", False)),
+ (b"FrameColor", ((0.3, 0.3, 0.3), "p_color_rgb", False)),
+ (b"ShowName", (True, "p_bool", False)),
+ (b"ShowInfoOnMoving", (True, "p_bool", False)),
+ (b"ShowGrid", (True, "p_bool", False)),
+ (b"ShowOpticalCenter", (False, "p_bool", False)),
+ (b"ShowAzimut", (True, "p_bool", False)),
+ (b"ShowTimeCode", (True, "p_bool", False)),
+ (b"ShowAudio", (False, "p_bool", False)),
+ (b"AudioColor", ((0.0, 1.0, 0.0), "p_vector_3d", False)), # Yep, vector3d, not corlorgb… :cry:
+ (b"NearPlane", (1.0, "p_double", False)),
+ (b"FarPlane", (100.0, "p_double", False)),
+ (b"AutoComputeClipPanes", (False, "p_bool", False)),
+ (b"ViewCameraToLookAt", (True, "p_bool", False)),
+ (b"ViewFrustumNearFarPlane", (False, "p_bool", False)),
+ (b"ViewFrustumBackPlaneMode", (2, "p_enum", False)), # 2 = show back plane if texture added.
+ (b"BackPlaneDistance", (100.0, "p_number", True)),
+ (b"BackPlaneDistanceMode", (1, "p_enum", False)), # 1 = relative to camera.
+ (b"ViewFrustumFrontPlaneMode", (2, "p_enum", False)), # 2 = show front plane if texture added.
+ (b"FrontPlaneDistance", (1.0, "p_number", True)),
+ (b"FrontPlaneDistanceMode", (1, "p_enum", False)), # 1 = relative to camera.
+ (b"LockMode", (False, "p_bool", False)),
+ (b"LockInterestNavigation", (False, "p_bool", False)),
+ (b"BackPlateFitImage", (False, "p_bool", False)),
+ (b"BackPlateCrop", (False, "p_bool", False)),
+ (b"BackPlateCenter", (True, "p_bool", False)),
+ (b"BackPlateKeepRatio", (True, "p_bool", False)),
+ (b"BackgroundAlphaTreshold", (0.5, "p_double", False)),
+ (b"ShowBackplate", (True, "p_bool", False)),
+ (b"BackPlaneOffsetX", (0.0, "p_number", True)),
+ (b"BackPlaneOffsetY", (0.0, "p_number", True)),
+ (b"BackPlaneRotation", (0.0, "p_number", True)),
+ (b"BackPlaneScaleX", (1.0, "p_number", True)),
+ (b"BackPlaneScaleY", (1.0, "p_number", True)),
+ (b"Background Texture", (None, "p_object", False)),
+ (b"FrontPlateFitImage", (True, "p_bool", False)),
+ (b"FrontPlateCrop", (False, "p_bool
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-extensions-cvs
mailing list