OK, after that failure of committing a bunch of old junk, hopefully
this is what I actually meant to commit :)
* Added big comments to some of the fields in struct PBVHNode. I
always forget the details of these, so finally wrote it down
properly.
* Changed types of PBVHNode.face_vert_indices and PBVHNode.flag to
better reflect their contents.
* There should be no functional changes here.
===========================
Commiting patch #24427: Editable camera sensor size (meaningful focal length units)
Thanks to:
Matt Ebb (author of original patch)
Ejner Fergo (porting patch through versions)
Brecht Van Lommel, Dalai Felinto, Campbell Barton (patch review)
Cant't commit changes to addons (they aren't branched, so some of them
could be broken now)
lambda_cp_line --> line_point_factor_v3
lambda_cp_line2 --> line_point_factor_v2
correction to previous commit function name
isect_seg_sphere_v3 --> isect_line_sphere_v3
... since its not clipped.
added a clip argument to the python version of the function.
Python:
* adds bpy.app.handlers which contains lists, each for an event type:
render_pre, render_post, load_pre, load_post, save_pre, save_post
* each list item needs to be a callable object which takes 1 argument (the ID).
* callbacks are cleared on file load.
Example:
def MyFunc(scene): print("Callback:", data)
bpy.app.handlers.render_post.append(MyFunc)
C:
* This patch adds a generic C callback api which is currently only used by python.
* Unlike python callbacks these are not cleared on file load.
===========================
- Disallow moving pattern/search area in way when marker position is
outside of pattern area.
- MoiveClip could be set as background for 3D view.
Added background source property to BGPic to switch between image
and movie. Movie is a bit more complicaated entity than clip (due to
displaying bundles, test objects and so) that's why i've sliptted
background into two sources.
- Added Layout.template_movieclip to display general clip settings.
Used in Footage panel of SpaceClip and background image properties
in 3d view.
- Display bundles in 3D view as spheres. Selection is synchronized to
markers associated with this bundle.
Bundle can't be selected in 3D view.
- Recoded internal DNA structures, RNA and operators to match libmv entities.
Tracking data now consists of Tracks, each tracks consists of markers
which are associated with frame number. Markers holds position only,
pattern and search areas settings are stored in track. Such settings should
be unified for all markers in track and marker should hold position and
frame number only.
This fix also allows for partial update of the image, speeding up painting.
The different code path implemented will be used to upload high resolution images to OpenGL when onion branch is merged.
Due to conversion of float textures to/from sRGB, corrections made to brush color sampling to take account of the image profile. This is not 100% correct yet as texture images used for projection painting strokes are not converted to/from sRGB yet(This has been decided due to loss of precision for 8-bit formats). It will have to do for now, though.
last-minute update, exr image loading is broken, will fix asap
=======================
Added option to baked named "Bake From Multires" which is avaliable for
normals baking and displacement baking.
If this option is enabled, then no additional hi-res meshes and render
structures would be created . This saves plenty of memory and meshes
with millions of faces could be successfully baked in few minutes.
Baking happens from highest level against viewport subdivision level,
so workflow is following:
- Set viewport level to level at which texture would be applied
during final rendering.
- Choose Displacement/Normals baking.
- Enable "Bake From Multires" option.
- You're ready to bake.
Displacement baker had aditional option named "Low Resolution Mesh".
This option is used to set if you want texture for realtime (games)
usage.
Internally it does the following:
- If it's disabled, displacement is calculated from subdivided
viewport level, so texture looks "smooth" (it's how default
baked works).
- If it's enabled, dispalcement is calculated against unsubdivided
viewport levels. This leads to "scales". This isn;t useful for
offline renders much, but very useful for creating game textures.
Special thanks to Morten Mikkelsen (aka sparky) for all mathematics
and other work he've done fr this patch!
===========================
Implemented basic structures and operators for markers manipulaiton.
Markers contains:
- Position of marker at frame in unified 0..1 coordinates
- Relative positions of left-bottom and right-top corners of pattern area
- Relative positions of left-bottom and right-top corners of search area
- Selection flags
New operators:
- Create new maerker. It's a modal operator which creates markers
at mouse position when LMB is clicking.
- Delete selected markers.
- Select marker using RMB. Some parts of marker (point, patter, search)
could be deselected.
- Select markers using rectangular selection.
- Select markers using circle selection.
- Marker translation (G-key).
- Marker scaling (S-key).
UI changes:
- Added mode to space clip. Currently supported modes are:
* View mode
* Tracking mode
This was intended to separate different categories of tools,
so interface shouldn't be overheaded with plenty of tools
which aren't actually using in the same time.
- Created new panel when actiev tool is 'MARKER' and there's
active marker where positions could be adjusted in pixel space.
Internal changes:
- Splitted DNA/RNA movieclip files to make separation of
tracking data and movie data more clear. This could be useful
in the future when we'll want to support multiplie moies
for single camera tracking (to make tracking more accurate).
- Added new file in blenkernel, where all tracking-related function
would be stored. Not very much function here at this moment,
but in the future all stuff related on converting DNA to external
tracking data would be stored here.
* Windows installer not working for non-admin users and multiple users
* Addon scripts not installing next to user configuration
* Portable install not being taken into account in all places
The main problem was the windows installer was installing system scripts in
AppData next to the user configuration directory, which is not shared between
users. Now these are installed in ProgramFiles, and only addon scripts added
by the users go to AppData.
On all platforms, addon scripts were sometimes getting installed between
system scripts, because the scripts folder in the executable directory was
given precedence over the user configuration folder, that is no longer done
now. So addons now behave like user configuration, they are preserved even
if you download a newer build of the same blender version.
If you have an installation of 2.57 on windows, the addon install location
will not change until we do the version bump to 2.58, to avoid conflicts with
the existing the installed 2.57 version.
The old behavior of giving precedence to the local folder was done to support
portable install, where all configuration is written to the local folder. This
is now implemented differently: if and only if a "config" folder exists in the
local folder, portable install will be assumed, and files will only be written
to that local folder.
In the case of this bug e.g. material.new became MATERiAL_OT_new, due to
different capitalization of "i" in Turkish. Fixed by not using the locale
dependent toupper/tolower functions.
- when saving blend file with 'Remap Relative' enabled, don't try make paths absolute if the internal filename is invalid.
- use case insensitive path comparison on windows when checking if path remapping is needed & for comparing next/prev dirs in the file selector.
mouse coords would with cont. grab would wrap at short.
use mouse coords as int rather then short.
this problem still happens on linux because of XTranslateCoordinates