[Bf-python] RenderEngine API - fractional frame

Matt Ebb matt at mke3.net
Sat Aug 6 01:37:57 CEST 2011


Yes it works, and no there isn't another accurate way because there can be
dependencies within objects that need to be calculated to get the right
values (drivers etc).

In my exporter I don't continually scrub through frames, rather I
precalculate it all in one go beforehand, to limit the number of times it
needs to set the subframe. I store all these animated values in a dictionary
- this comes at the expense of memory, especially if you've got lots of
high-poly deforming objects, but it's not too bad so far. At least with
renderman you can export an object to an archive once individually to avoid
doing the entire scene in one go.

See here:
http://www.pasteall.org/23730/python

matt


On Sat, Aug 6, 2011 at 9:20 AM, Doug Hammond <doug.hammond at luxrender.net>wrote:

> I'm also having issues supporting motion blur for external render engines.
>
> Does frame_set(integer_frame,fractional frame) actually work from a
> RenderEngine.render() context?
> (all RNA write and operator calls are disabled).
>
> Is there any other way to get object transforms for arbitrary time values
> instead of continually scrubbing through frames on export?
> (which is a really slow and tedious method to use; feels really dirty).
>
> Regards,
> Doug Hammond
>
>
>
> On Wed, Jul 27, 2011 at 3:27 AM, Matt Ebb <matt at mke3.net> wrote:
>
>> Hi, what you've written below is looking at the geometry data itself. If
>> you've animated a Plane object moving you'll probably need to print the
>> plane's object level transformation - should be something like
>> bpy.data.objects["Plane"].location[0]
>>
>> bpy.data.meshes is looking at the mesh datablocks (geometry level data).
>>
>> cheers
>>
>> Matt
>>
>>
>>
>> On Wed, Jul 27, 2011 at 12:07 PM, Nicholas Yue <yue.nicholas at gmail.com>wrote:
>>
>>> On 26 July 2011 22:00, Nicholas Yue <yue.nicholas at gmail.com> wrote:
>>> > I ran a test query vert.co[] data of a simple plane with 4 points at
>>> > fractional frame, the returned value is the same as on the integer
>>> frame.
>>> >
>>> > Looks like either I may have missed calling some required update-status
>>> > function as even basic geometry (non-sim) is not quiet right.
>>> >
>>>
>>> Here is the printout from the Blender Python console
>>>
>>> >>> scene.frame_set(2,0.2)
>>> >>> print(bpy.data.meshes["Plane"].vertices[0].co)
>>> Vector((0.9999999403953552, 0.9999999403953552, 0.0))
>>>
>>> >>> scene.frame_set(3)
>>> >>> print(bpy.data.meshes["Plane"].vertices[0].co)
>>> Vector((0.9999999403953552, 0.9999999403953552, 0.0))
>>> _______________________________________________
>>> Bf-python mailing list
>>> Bf-python at blender.org
>>> http://lists.blender.org/mailman/listinfo/bf-python
>>>
>>
>>
>> _______________________________________________
>> Bf-python mailing list
>> Bf-python at blender.org
>> http://lists.blender.org/mailman/listinfo/bf-python
>>
>>
>
> _______________________________________________
> Bf-python mailing list
> Bf-python at blender.org
> http://lists.blender.org/mailman/listinfo/bf-python
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.blender.org/pipermail/bf-python/attachments/20110806/27efa469/attachment.html>


More information about the Bf-python mailing list