Re: [Bf-committers] A practical proposal for the task of re-licensing Blender

2010-11-25 Thread Damir Prebeg

 I don't think *anyone* is suggesting that the Blender code end up in
 some closed source software. We're looking at making Blender capable
 (legally) of using third-party distributed closed-source plugins. This
 is about *extending* Blender, not taking parts of it and making them
 proprietary.


No, it's not a debate about how to legally use third-party closed source
plug-ins in Blender. If you go back you'll see that the main premise of this
debate was Big Silicon Valley companies are not using GPL software (eg.
Blender) because of fear that their own proprietary software would get
polluted with GPL so they would have to publish their code. And the
beginning conclusion was that if they could use Blender source without that
fear they would have more willingness to contribute to Blender source code.
I'm sorry but I don't believe in that. Have you seen any big commercial
company that has started to create commercial plug-ins for GIMP or to
contribute to GIMP source? And I must say that term polluting is quite
significant because it really shows how those companies are looking on free
software.

Regarding making plug-ins for blender, in GPL FAQ is stated this:
*Can I write free software that uses non-free libraries?* If you do this,
your program won't be fully usable in a free environment. If your program
depends on a non-free library to do a certain job, it cannot do that job in
the Free World. If it depends on a non-free library to run at all, it cannot
be part of a free operating system such as GNU; it is entirely off limits to
the Free World.I'm not an C or C++ programmer but as I understand this, If
someone creates commercial plug-in for blender (eg. raytracer) in DLL form,
Blender can call that dll on Windows system. Only thing that creator of that
dll would have to disclose are dll calls, am I right?
And since Blender doesn't really need that dll to work, it can be used on
Linux or any other system as well.
___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers


Re: [Bf-committers] A practical proposal for the task of re-licensing Blender

2010-11-25 Thread Alex Combas
On Thu, Nov 25, 2010 at 12:42 AM, Damir Prebeg blend.fact...@gmail.com wrote:

 I don't think *anyone* is suggesting that the Blender code end up in
 some closed source software. We're looking at making Blender capable
 (legally) of using third-party distributed closed-source plugins. This
 is about *extending* Blender, not taking parts of it and making them
 proprietary.


 No, it's not a debate about how to legally use third-party closed source
 plug-ins in Blender.

Uh, that is exactly the reason I've joined this discussion.

And I think that is the reason most people here are discussing this
topic as well.

I've got nothing against big Silicon Valley companies, but the main
issue is that third-party closed plugins simply can't coincide with
the GPL unless
you somehow break the GPL, and that is something I would like to see changed.

If I somehow gave you some other impression please excuse me.
___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers


Re: [Bf-committers] A practical proposal for the task of re-licensing Blender

2010-11-25 Thread Knapp
 @Knapp

 There are a billion closed source applications in this world, and yet
 you are not starving.
 Neither will you be starving if there is one more closed source
 application in the world.

I should know by now not to joke in internationally read emails. :-)

Before I, grew up, and moved from windows to Linux my computer was
completely full of stolen software including the OS. As a young high
school student with a poor family, it was the only way to have all the
software that I wanted to make art and to program. I felt a little bad
about that but not very.  I have even read reports about how Gates
like this because it locks users into the MS system because they
invest so much time in the system.

I have met VERY few MS users that have no stolen software on their
computers. For the last 28 years I have had a completely legal
computer and have done my best to give back to all the projects that
let this happen. If all the users do as I do (and a lot do) we will
have the very best computer systems in the world. Letting people take
that community effort and use it for their own personal benefit
without giving back to that same community is a bit wrong IMOHO.

 An artist uses Blender to create some art work, and they decide to sell it.
 Nobody complains. It took the artist years of training and weeks of effort to
 make their product. Nobody says You used Blender to make your product,
 Blender is free, you must make your product free or we will sue you.

True, but hopefully that same artist gives back to the community by
helping others, writing code, or just by saying Blender is cool and I
made this art with blender thus bring in more users and developers or
perhaps giving back money to the project.

The problem with firms is that they have a mandate to make profit and
nothing strong making them give back to the people they take that
profit from. I don't want to argue this and I know there is a lot of
room to do so but that is the fundamental issue here. Should they be
allowed to do so? Or should we just trust them to do right by blender.

 A programmer comes along, the programmer does not modify Blender but instead
 writes a separate program which uses Blender to do something special, 
 something
 which Blender can not do right now. It took the programmer years of
 training and
 weeks of effort to make their product. Just as much skill and effort
 as the artist.

Yes, true.

 But now everyone screams at them You used Blender to make your product,
 Blender is free, you must make your product free or we will sue you.

 I can understand people would be upset if the programmer had modified Blender
 but he did NOT modify Blender at all, he simply used Blender in a similar way
 that an artist would use Blender to create artwork.

Except that art work is not something that you can easily take and add
to to make a better work, programming is. Programs take a HUGE amount
of work to make, they take a huge number of people to make. We with
GPL are saying that we want to make this product in a community
setting where everyone contributes to the project and no one can come
along and take that work for themselves without helping to make it
better. In many ways GPL is saying that if you want to play with our
cool toys then help us to make it.


Art projects can also take this approach if they would like to.

 LGPL would allow this programmer to earn a living just like an artist, but
 GPL would put this programmer in jail for not making their product free.

It is simple, play by our rules or else. This group of blender people
picked rules to play by. I think it is great to debate that decision
and to look for better ways but it is not great to open up GPL and let
others play with our toys without helping to make them.

 If you are still confused please re-read the beginning of this email.

I was never confused about this and find that statement a bit
insulting but I will drop it.

-- 
Douglas E Knapp

Creative Commons Film Group, Helping people make open source movies
with open source software!
http://douglas.bespin.org/CommonsFilmGroup/phpBB3/index.php

Massage in Gelsenkirchen-Buer:
http://douglas.bespin.org/tcm/ztab1.htm
Please link to me and trade links with me!

Open Source Sci-Fi mmoRPG Game project.
http://sf-journey-creations.wikispot.org/Front_Page
http://code.google.com/p/perspectiveproject/
___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers


Re: [Bf-committers] Nameable group node sockets and other improvements

2010-11-25 Thread Brecht Van Lommel
Hi Lukas,

From the video, this looks very nicely done, I'll go over the patch later.

Brecht.

On Thu, Nov 25, 2010 at 8:22 AM, Lukas Tönne
lukas.toe...@googlemail.com wrote:
 Here's a small video demoing the feature:

 http://www.youtube.com/watch?v=OUidTgzy8zo

 On Wed, Nov 24, 2010 at 1:28 PM, Lukas Tönne
 lukas.toe...@googlemail.com wrote:
 As part of the ongoing work on the particles-2010 branch i decided to
 address some of the nagging issues of group nodes. While nice in
 theory, the usability of node groups suffers from bad behavior and
 missing features to reveal its true power. Three things in particular
 i would like to fix:

 * External sockets should be renameable to give some meaning to the
 parameters and outputs of a complex group.
 * The order of external socket should be changeable (e.g. to stress
 different importance of sockets).
 * The internal sockets that get an external counterpart should be
 selectable explicitly, instead of having to use ugly workarounds to
 hide some of them.

 The first of these has now been implemented as a patch for trunk
 (which i will port to the particles branch too of course). It seems to
 work very well, but since i had to change some of the inner workings
 of group nodes, it could use some more testers. See the patch
 description for details.

 https://projects.blender.org/tracker/index.php?func=detailaid=24883group_id=9atid=127

 There are certainly more features that would be nice to have for nodes
 (nested groups, more ui improvements), but these three can be
 implemented quickly.

 Cheers,
 Lukas Tönne

 ___
 Bf-committers mailing list
 Bf-committers@blender.org
 http://lists.blender.org/mailman/listinfo/bf-committers

___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers


[Bf-committers] S-DNA and Changes

2010-11-25 Thread Leo Sutic
Hi all,

I've now started to dig into the codebase - and the VSE in particular.
The workings seem fairly straightforward, but as far as changing things
I must ask your advice.

The problem is the S-DNA representation of the VSE data. The
structures used in the VSE, and also written to the blend file, are
strongly coupled to the current workings of the VSE. Not an
unsurmountable obstacle, but something which requires extra care when
changing things.

So, my question is this: How has this been handled historically? I can't
be the first one to run into this. For the sake of argument: Suppose I
want to make really big changes to the VSE - should I...

  1. Write a VSE 2 and create all-new structures?

  2. Create some kind of compatibility loader or data import filter
that converts the old data to the new, as far as possible? That is, we
read old and new formats, but only write new format.

  3. Convert the old structs to the new in-memory? That is, we read and
write the old format, maybe with some back-compatible changes, but use a
new format internally?

/LS
___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers


Re: [Bf-committers] Status of C++

2010-11-25 Thread Leo Sutic
All,

thanks for the advice. I have no problem following those recommendations.

/LS

___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers


[Bf-committers] Documenting the VSE

2010-11-25 Thread Leo Sutic
Hello,

after digging into the VSE, I couldn't help bu notice that the
documentation is a bit terse. I was thinking about submitting some
patches consisting of doxygen docs for parts of it - mostly concerning
its external interface and connection to the pipeline.c code. Is now a
good time to do so, or is that module up for serious reworking? Or is it
your experience that code comments end up obsolete and wrong really fast
in Blender?

/LS
___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers


Re: [Bf-committers] A practical proposal for the task of re-licensing Blender

2010-11-25 Thread Prashant Sohani
Developing/improving on any code which some other company may be using for
making money doesn't make sense, because then you are probably helping
improve their program, for which they get more users and more money, which
in turn reduces our users  money, thus hampering even our speed of
development.. That is a negative-feedback loop.
___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers


Re: [Bf-committers] Documenting the VSE

2010-11-25 Thread Campbell Barton
On Thu, Nov 25, 2010 at 4:13 PM, Leo Sutic leo.su...@gmail.com wrote:
 Hello,

 after digging into the VSE, I couldn't help bu notice that the
 documentation is a bit terse. I was thinking about submitting some
 patches consisting of doxygen docs for parts of it - mostly concerning
 its external interface and connection to the pipeline.c code. Is now a
 good time to do so, or is that module up for serious reworking? Or is it
 your experience that code comments end up obsolete and wrong really fast
 in Blender?

 /LS

Sounds fine to me, Peter Schlaile is the module owner though so best
check with him too.

Though best to leave anything in the render/ directory since it could
make merging the durian render branch more trouble.
Comments in DNA_sequence_types.h  seq*.c are safe.

Just make sure a developer who understands the code is able to review,
a problem with having newer devs add comments is some important aspect
may be misinterpreted/overlooked.

-- 
- Campbell
___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers


Re: [Bf-committers] A practical proposal for the task of re-licensing Blender

2010-11-25 Thread Campbell Barton
Hi, All things considered I'm apathetic towards LGPL switch.

Its still quite restrictive, and I'm not aware of any commercial
extensions for blender so far, even though its possible to write them
without changing to LGPL.


May I point out that existing blender developers are not pushing for
this, one might consider if they had trouble feeding their families
that this would be of interest to them.

So with a less restrictive license I would write a commercial plugin
for blender, sit back and earn an income, right?

The thing is, I don't want to make money this way, even if I could
earn more then GPL dev. Its just not a fun way to do development, so
it would make me less interested to be a blender developer if this is
the kind of people we have to interact with on the mailing list, irc,
etc.

I think we can better focus on services and support model for income,
it may earn less short term but we will have more satisfied users.
___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers


[Bf-committers] Planet texture patch

2010-11-25 Thread raulf
Hi all :)

  well, I was expecting the GPU gems procedural parts before releasing the
patch in order to add others if needed but it didn't arrived.

 some use advice:

  at small scales (i.e the default textures values) it is a curl like
texture but at larger scales (size 1.0) and with 6 octaves in hard/soft
mode then it show the true planet procedural texture goodness :)


  Anyway, here's the patch, is very easy and don't disrup any existent
Blender code so is pretty safe:

http://www.pasteall.org/17124/diff

//-

Index: release/scripts/ui/properties_texture.py
===
--- release/scripts/ui/properties_texture.py(revision 32153)
+++ release/scripts/ui/properties_texture.py(working copy)
@@ -444,8 +444,33 @@

 col = split.column()
 col.prop(tex, nabla, text=Nabla)
+
+class TEXTURE_PT_planet(TextureTypePanel, bpy.types.Panel):
+bl_label = Planet
+tex_type = 'PLANET'
+COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}

+def draw(self, context):
+layout = self.layout

+tex = context.texture
+
+layout.prop(tex, planet_type, expand=True)
+layout.label(text=Noise:)
+layout.prop(tex, noise_type, text=Type, expand=True)
+layout.prop(tex, noise_basis, text=Basis)
+
+split = layout.split()
+
+col = split.column()
+col.prop(tex, noise_scale, text=Size)
+col.prop(tex, noise_depth, text=Depth)
+
+col = split.column()
+col.prop(tex, nabla, text=Nabla)
+
+
+
 class TEXTURE_PT_wood(TextureTypePanel, bpy.types.Panel):
 bl_label = Wood
 tex_type = 'WOOD'
Index: source/blender/blenkernel/intern/node.c
===
--- source/blender/blenkernel/intern/node.c (revision 32153)
+++ source/blender/blenkernel/intern/node.c (working copy)
@@ -3185,6 +3185,7 @@
nodeRegisterType(ntypelist, tex_node_proc_noise);
nodeRegisterType(ntypelist, tex_node_proc_stucci);
nodeRegisterType(ntypelist, tex_node_proc_distnoise);
+   nodeRegisterType(ntypelist, tex_node_proc_planet);
 }

 static void remove_dynamic_typeinfos(ListBase *list)
Index: source/blender/editors/space_node/drawnode.c
===
--- source/blender/editors/space_node/drawnode.c(revision 32153)
+++ source/blender/editors/space_node/drawnode.c(working copy)
@@ -1202,6 +1202,15 @@
uiItemR(row, tex_ptr, noise_type, UI_ITEM_R_EXPAND, 
NULL, 0);
uiItemR(col, tex_ptr, noise_depth, UI_ITEM_R_EXPAND, 
Depth, 0);
break;
+
+   case TEX_PLANET:
+   uiItemR(col, tex_ptr, noise_basis, 0, , 0);
+   row= uiLayoutRow(col, 0);
+   uiItemR(row, tex_ptr, stype, UI_ITEM_R_EXPAND, NULL, 
0);
+   row= uiLayoutRow(col, 0);
+   uiItemR(row, tex_ptr, noise_type, UI_ITEM_R_EXPAND, 
NULL, 0);
+   uiItemR(col, tex_ptr, noise_depth, UI_ITEM_R_EXPAND, 
Depth, 0);
+   break;

case TEX_DISTNOISE:
uiItemR(col, tex_ptr, noise_basis, 0, , 0);
Index: source/blender/makesdna/DNA_texture_types.h
===
--- source/blender/makesdna/DNA_texture_types.h (revision 32153)
+++ source/blender/makesdna/DNA_texture_types.h (working copy)
@@ -294,6 +294,7 @@
 #define TEX_DISTNOISE  13
 #define TEX_POINTDENSITY   14
 #define TEX_VOXELDATA  15
+#define TEX_PLANET 16

 /* musgrave stype */
 #define TEX_MFRACTAL   0
Index: source/blender/makesrna/intern/rna_texture.c
===
--- source/blender/makesrna/intern/rna_texture.c(revision 32153)
+++ source/blender/makesrna/intern/rna_texture.c(working copy)
@@ -66,6 +66,7 @@
{TEX_VORONOI, VORONOI, ICON_TEXTURE, Voronoi, },
{TEX_VOXELDATA, VOXEL_DATA, ICON_TEXTURE, Voxel Data, },
{TEX_WOOD, WOOD, ICON_TEXTURE, Wood, },
+   {TEX_PLANET, PLANET, ICON_TEXTURE, Planet, },
{0, NULL, 0, NULL, NULL}};

 #ifdef RNA_RUNTIME
@@ -119,6 +120,8 @@
return RNA_VoxelDataTexture;
case TEX_WOOD:
return RNA_WoodTexture;
+   case TEX_PLANET:
+   return RNA_PlanetTexture;
default:
return RNA_Texture;
}
@@ -706,6 +709,60 @@
RNA_def_property_update(prop, 0, rna_Texture_update);
 }

+static void rna_def_texture_planet(BlenderRNA *brna)
+{
+   StructRNA *srna;
+   PropertyRNA *prop;
+
+   static EnumPropertyItem prop_planet_stype[] = {
+   {TEX_DEFAULT, GREYSCALE, 0, Greyscale, },
+   

Re: [Bf-committers] S-DNA and Changes

2010-11-25 Thread Peter Schlaile
Hi Leo,

  1. Write a VSE 2 and create all-new structures?

this will break compatibility with older versions of blender. Should only 
be done as a last resort and if you *really* know, what you are doing.

  2. Create some kind of compatibility loader or data import filter
 that converts the old data to the new, as far as possible? That is, we
 read old and new formats, but only write new format.

that is *always* necessary, otherwise, you can't open old files or make 
sure, that on load of an old file, your new structure elements are 
initialized properly. This is done in doversions() in readfile.c .

  3. Convert the old structs to the new in-memory? That is, we read and
 write the old format, maybe with some back-compatible changes, but use a
 new format internally?

nope. After each editing operation, DNA data has to be in sync, since DNA 
load/save is also used on undo operations(!).

I'd also suggest, that you first try to make sure, that you *have* to 
change something, and why. Since, you guessed it, you will most likely 
make some people unhappy, that want to open their new .blend file with an 
old version and see things broken all over the place.

So I'm a bit wondering, what you want to change?

I tried to understand the blog post you linked some days ago.

To quote your blog: (disadvantages of the current system)

 1.1. Disadvantages

 The disadvantages come when we wish to perform any kind of processing 
 that requires access to more than just the current frame. The frames in the 
 sequencer aren't just random jumbles of image data, but sequences of 
 images that have a lot of inter-frame information: Object motion, for 
 example, is something that is impossible to compute given a single frame, 
 but possible with two or more frames.

 Another use case that is very difficult with frame-wise rendering is 
 adjusting the frame rate of a clip. When mixing video from different 
 sources one can't always assume that they were filmed at the same frame 
 rate. If we wish to re-sample a video clip along the time axis, we need 
 access to more than one frame in order to handle the output frames that 
 fall in-between input frames - which usually is most of them.

To be honest: you can't calculate the necessary optical flow data on the 
fly, and: most likely, people want to have some control over the 
generation process. (Maybe they just want to use externally generated 
OFLOW files from icarus?)

To make a long story short: we should really just add a seperate 
background rendering job, to add optical-flow tracks to video tracks, just 
like we did with proxies, only in the background with the new job system 
and everything should be fine. (For scene tracks or OpenEXR-sequences with 
a vector pass, there even is already optical flow information available 
for free(!) )

In between frames should be handled with float cfras (the code is already 
adapted at most places for that) and the new additional mblur parameters.

That has the additional advantage, that you can actually *calculate* real 
inbetween frames in scene tracks.

For other jobs, like image stabilisation, you should just add similar 
builder jobs. (Which most likely don't have to write out full frames, but 
just generate the necessary animation fcurves.)

The implications of your track rendering idea is - scary.
Either you end up with a non-realtime system (since you have to calculate 
optical flow information on the fly in some way, which is, to my 
knowledge, not possible with current hardware) or you have to render 
everything to disk - always.

I, as a user, want to have control over my diskspace (which is very 
valuable, since my timelines are 3 hours long, and rendering every 
intermediate result to disk is *impossible*!).

Or, to put it another way: please show a case to me, that *doesn't* work, 
with a simple background builder job system, where you can add arbitrary 
intermediate data to video, meta or effect tracks. Having to access 
multiple frames at once during playback *and* doing heavy 
calculation on them doesn't sound realtime to me by definition, and that 
is, what Ton told me, the sequencer should be: realtime. For everything 
else, the Compositor should be used.

You could still use RenderMode: (CHUNKED, SEQUENTIAL and FULL) to make 
that background render job run in the most efficient way. But it is still 
a background render job, which is seperated from the rest of the pipeline.

As always, feel free to proof me wrong. If I got it correctly, your 
interface idea looks like a good starting point for a background builder 
system interface. 
So probably, if you convince everyone, that this is the best thing to do for 
playback, too, we might end up promoting your builder interface to the 
preview renderer, who knows?

BTW:
I'm currently rewriting the sequencer render pipeline using a generic 
Imbuf-Render-Pipeline system, which will move some things around, 
especially all those little prefiltering structures will find 

Re: [Bf-committers] S-DNA and Changes

2010-11-25 Thread Leo Sutic
Hi Peter,

thank you for your feedback on the SDNA.

You bring up some very good points, let me try to address them quickly:

On 2010-11-25 19:45, Peter Schlaile wrote:
 Or, to put it another way: please show a case to me, that *doesn't*
 work, with a simple background builder job system,

I thought about that yesterday, actually, because it seemed such a
simple solution. But let's consider the background builder job itself.

In principle, there is nothing that can't be factored out as a
background builder job. I mean, I can do anything I want in an external
program and then just place the end result in Blender.

But then I have to build a UI for my stabilization program, and the
whole purpose of doing any work on Blender was to put my stabilization
algorithms there in order to have a nice UI. By nice I mean to be able
to combine video effects in the VSE much like I can combine nodes in the
compositor. I want to be able to apply stabilization, interpolation,
etc. by stacking effect strips. Combinatorial power, I think it is
called. This means that the background builder job ends up being more
or less a render in anything but name. It needs access to the same data
as a render - output from previous effect strips.

That's why I need to involve the main rendering pipeline. I wish I
didn't have to.

 The implications of your track rendering idea is - scary.
 Either you end up with a non-realtime system (since you have to
 calculate optical flow information on the fly in some way, which is,
 to my knowledge, not possible with current hardware) or you have to
 render everything to disk - always.

 I, as a user, want to have control over my diskspace (which is very
 valuable, since my timelines are 3 hours long, and rendering every
 intermediate result to disk is *impossible*!).

Correct, it is impossible.

You've asked this once before (way back), I replied in:
http://lists.blender.org/pipermail/bf-committers/2010-September/028825.html

and you thought:
that sounds indeed usefull
http://lists.blender.org/pipermail/bf-committers/2010-September/028826.html

Short-short summary: The system need not do it the naive way and write
out every frame. We can also optimize away a lot frames being held
concurrently in memory by using smart algorithms.

The current state of the prototype code is that *nothing* is being
written to disk, and it never renders more frames than absolutely
needed. Eventually I might need to include the option of writing out
some things to disk but I consider that a last resort, and only for
operations that the user *knows* will cost a lot of disk. This, however,
is not a consequence of the strip-wise rendering algorithm itself, but
of the processing we want to do.

/LS
___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers


Re: [Bf-committers] A practical proposal for the task of re-licensing Blender

2010-11-25 Thread Alex Combas
On Thu, Nov 25, 2010 at 8:55 AM, Campbell Barton ideasma...@gmail.com wrote:
 Hi, All things considered I'm apathetic towards LGPL switch.

 Its still quite restrictive, and I'm not aware of any commercial
 extensions for blender so far, even though its possible to write them
 without changing to LGPL.


 May I point out that existing blender developers are not pushing for
 this, one might consider if they had trouble feeding their families
 that this would be of interest to them.

 So with a less restrictive license I would write a commercial plugin
 for blender, sit back and earn an income, right?

 The thing is, I don't want to make money this way, even if I could
 earn more then GPL dev. Its just not a fun way to do development, so
 it would make me less interested to be a blender developer if this is
 the kind of people we have to interact with on the mailing list, irc,
 etc.

 I think we can better focus on services and support model for income,
 it may earn less short term but we will have more satisfied users.


Well for a thread which has been apparently dropped it certainly seems
to be an interesting an active topic.

And I must say that when the thread started I was rather unhappy with
the general tone of the responses but as things have progressed I
think the responses have gotten a lot better even though they are
still generally anti-LGPL.

So I would like to reply to this latest batch of responses, but I'm
not trying to reopen the debate, I consider the debate to be closed.

@Knapp. Thomas Prashant Campbell

I completely negative feeling towards the Windows system, that was my
experience as well, and it has also been my experience since switching
to linux years ago that I have felt better about my system not running
on stolen software.

But when you say this:

Letting people take that community effort and use it for their own
personal benefit without giving back to that same community is a bit
wrong IMOHO

Artists take it and use it and generally do not give back.
Writers take it and use it and generally do not give it back.
Web users take it and use it and generally do not give back.
Office users take it and use it and generally do not give back.

You are making one exception, programmers, they must not use it unless
they give back 100%.

But what I am saying is that there is likely a group of programmers
who will simply not _ever_ use it if they are forced to play by those
rules.

Now ask yourself, why do we release free software for closed
environments like Windows, and Macs?

Is it not because although we do not agree with those closed
environments we know that a good way to get people to switch to an
open model is to allow them use it and test it and slowly make the
change to a free platform?

What I am saying is that there would be two similar benefits to closed
extensions.

First, programmers who right now would not consider developing an
extension for blender because of the GPL might consider it since they
might view it as an opportunity to make money. Don't be upset with
that view, artists look at Blender with just as greedy eyes, and
similarly office users look at Libreoffice (openoffice) the same way,
it is an opportunity for them to make or save money. There is nothing
wrong with a programmer who wants to make/save money.

Second, if these programmers do develop an extension for Blender they
may become invested in Blenders future, if Blender becomes more
popular then they have more opportunity to sell their extension, so
they suddenly want Blender to become more popular. They see that
Blender has a bug, so they contribute some code to Blender to fix it.
Remember, Blender itself will always be open source, any change to
Blender itself must be made public if any of the code is distributed.

This is what has happened with Linux, do you think IBM really cares
about open source? I don't. I think they care about money. They make
money with Linux and so they are invested in Linux's future, they want
Linux to be as good as it possibly could be because then they make
more money so they have been actively contributing open source code to
Linux for years, and they see their profits go up.

I doubt there is an IBM out there for Blender just waiting to
contribute, but what if there is a single programmer and one or two of
his friends who want to make a small company and they are interested
in the 3D modeling/animation/design industry. Right now they would
look at Blender and say wow wouldn't that be great, too bad it is GPL,
and so then they would go and start working on a 3DMax extension, or a
Maya extension.

It is no problem for them, they can just pick another platform, it is
a problem for us because they didn't pick ours.

The existing Blender developers (see Campbells most recent email) have
said that they would not want to write closed extensions anyway so
people who are worried that allowing closed extensions would somehow
lessen Blender developers are wrong, it would only increase 

Re: [Bf-committers] S-DNA and Changes

2010-11-25 Thread Peter Schlaile
Hi Leo,

 On 2010-11-25 19:45, Peter Schlaile wrote:
 Or, to put it another way: please show a case to me, that *doesn't*
 work, with a simple background builder job system,

 That's why I need to involve the main rendering pipeline. I wish I
 didn't have to.

hmm, that's maybe a misunderstanding. I was talking about using the job 
system of blender 2.5 (which just forks another job within blender - not 
an external system/program!). So: still complete access to UI.

 You've asked this once before (way back), I replied in:
 http://lists.blender.org/pipermail/bf-committers/2010-September/028825.html

 and you thought:
 that sounds indeed usefull
 http://lists.blender.org/pipermail/bf-committers/2010-September/028826.html

again, maybe a misunderstanding here. In that old post, I was more 
thinking of rendering seperate tracks in advance for prefetch rendering.
Not: making CPU heavy stuff run in the previews.
(But I didn't make that point really clear, that's true.)

 Short-short summary: The system need not do it the naive way and write
 out every frame. We can also optimize away a lot frames being held
 concurrently in memory by using smart algorithms.

 The current state of the prototype code is that *nothing* is being
 written to disk, and it never renders more frames than absolutely
 needed. Eventually I might need to include the option of writing out
 some things to disk but I consider that a last resort, and only for
 operations that the user *knows* will cost a lot of disk. This, however,
 is not a consequence of the strip-wise rendering algorithm itself, but
 of the processing we want to do.

ok, point taken. I'm still a bit unsure about the CPU-heavy stuff, but I 
have to admit, that you could always add a proxy, if things start to get 
slow.

Regarding your interface prototype: your interators should take a float 
increment parameter. (There isn't really a well defined next frame in 
float precision scene-rendering...)

Otherwise: this could really work.

Cheers,
Peter


Peter Schlaile
___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers


Re: [Bf-committers] S-DNA and Changes

2010-11-25 Thread Leo Sutic
On 2010-11-25 21:54, Peter Schlaile wrote:
 Regarding your interface prototype: your interators should take a float 
 increment parameter. (There isn't really a well defined next frame in 
 float precision scene-rendering...)

I decided against that due to the complications it resulted in - mostly
because it became very difficult to get all frames to align in time when
round-off errors may affect the float cfra parameter depending on how it
was calculated. (It was also difficult for movie clip sources, again due
to rounding errors, where you could end up on the wrong frame.) It was
easier to just pretend, in the VSE, that each sequence was continuous,
but sampled at a fixed rate. (So the frame rate should really be a
field rate.) That way, the only time we risk that the frames don't
line up is when we do framerate conversion - and everyone kinda expects
them to not line up then.

So what I have instead is that each sequence (strip) has an individual
rate. That way I could slow down or speed up a sequence by altering the
frame rate. An effect strip can then do motion interpolation or
timelapse to convert the base sequence to the desired output framerate.
So the renderer might have a float frame number, but the VSE only ever
sees integer frame numbers.

I'm just guessing regarding the float cfra parameter: Is it for motion blur?

Then, for example, with output frame rate at 24fps:

Strip 1: Movie clip, 60fps. Must be converted to output frame rate.
Strip 2: Converts strip 1 to the output frame rate, 24 fps, by combining
frames in strip 1.
Strip 3: Movie clip 24 fps. Can be used as-is.
Strip 4: Gamma cross 13
Strip 5: Blender scene, motion blur, 24fps with simulated shutter at
60fps. As far as the VSE is concerned, the output of this strip is 24fps.
Strip 6: Combine 5 and 4 using alpha in 5.

/LS
___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers


[Bf-committers] Armatures Bones Poses

2010-11-25 Thread Emiliano Gambaretto
Dear all,

as Stefano already told you I'm writing a collada 1.4.1 importing plug-in.
I'm now focusing on importing animations.
For that I need to figure out how armature, and motion channels are
defined in Blender.

I'm using this documentation as reference:
http://www.blender.org/development/release-logs/blender-240/how-armatures-work/
Please let me know in case you are aware of others documentation resources.

I believe I understood how armature works, but, I still have some
problems so I want to double check with you:

1)in POSE SPACE is the global position matrix of a bone given by:
node global position matrix=global position of the parent *
armature_bone_matrix * bone_action
where:
- armature_bone_matrix is the matrix that describes the local bone
coordinates system with respect to its parent when the bone is in rest
pose?
- bone_action is the matrix whose rotational portion can be accessed
in python in this way pose.bones[].pbone.quat?

2)In the ARMATURE SPACE (edit mode).
- global bone matrices can be accessed in python in this way
Armature.bones[].matrix[ARMATURESPACE]
- referring to the above formula bone_action matrices are Identities
therefore armature_bone_matrix can be computed in this way:
armature_bone_matrix=global position of the parent^-1 * node global
position matrix

3)In POSE SPACE:
- Given the global position matrix of a bone G and of its parent P,
can you confirm the bone action matrix is given by:
 bone_action = armature_bone_matrix^-1*(P^-1*G)

Thanks for your help,
Best regards,

Emiliano
___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers


Re: [Bf-committers] A practical proposal for the task of re-licensing Blender

2010-11-25 Thread José Romero
El Thu, 25 Nov 2010 12:39:17 -0800
Alex Combas blenderw...@gmail.com escribió:
 On Thu, Nov 25, 2010 at 8:55 AM, Campbell Barton
 ideasma...@gmail.com wrote:
  Hi, All things considered I'm apathetic towards LGPL switch.
 
  Its still quite restrictive, and I'm not aware of any commercial
  extensions for blender so far, even though its possible to write
  them without changing to LGPL.
 
 
  May I point out that existing blender developers are not pushing for
  this, one might consider if they had trouble feeding their families
  that this would be of interest to them.
 
  So with a less restrictive license I would write a commercial plugin
  for blender, sit back and earn an income, right?
 
  The thing is, I don't want to make money this way, even if I could
  earn more then GPL dev. Its just not a fun way to do development, so
  it would make me less interested to be a blender developer if this
  is the kind of people we have to interact with on the mailing list,
  irc, etc.
 
  I think we can better focus on services and support model for
  income, it may earn less short term but we will have more satisfied
  users.
 
 
 Well for a thread which has been apparently dropped it certainly seems
 to be an interesting an active topic.
 
 And I must say that when the thread started I was rather unhappy with
 the general tone of the responses but as things have progressed I
 think the responses have gotten a lot better even though they are
 still generally anti-LGPL.
 
 So I would like to reply to this latest batch of responses, but I'm
 not trying to reopen the debate, I consider the debate to be closed.
 
 @Knapp. Thomas Prashant Campbell
 
 I completely negative feeling towards the Windows system, that was my
 experience as well, and it has also been my experience since switching
 to linux years ago that I have felt better about my system not running
 on stolen software.
 
 But when you say this:
 
 Letting people take that community effort and use it for their own
 personal benefit without giving back to that same community is a bit
 wrong IMOHO
 
 Artists take it and use it and generally do not give back.
 Writers take it and use it and generally do not give it back.
 Web users take it and use it and generally do not give back.
 Office users take it and use it and generally do not give back.
 
 You are making one exception, programmers, they must not use it unless
 they give back 100%.
 
 But what I am saying is that there is likely a group of programmers
 who will simply not _ever_ use it if they are forced to play by those
 rules.
 
 Now ask yourself, why do we release free software for closed
 environments like Windows, and Macs?
 
 Is it not because although we do not agree with those closed
 environments we know that a good way to get people to switch to an
 open model is to allow them use it and test it and slowly make the
 change to a free platform?
 
 What I am saying is that there would be two similar benefits to closed
 extensions.
 
 First, programmers who right now would not consider developing an
 extension for blender because of the GPL might consider it since they
 might view it as an opportunity to make money. Don't be upset with
 that view, artists look at Blender with just as greedy eyes, and
 similarly office users look at Libreoffice (openoffice) the same way,
 it is an opportunity for them to make or save money. There is nothing
 wrong with a programmer who wants to make/save money.
 
 Second, if these programmers do develop an extension for Blender they
 may become invested in Blenders future, if Blender becomes more
 popular then they have more opportunity to sell their extension, so
 they suddenly want Blender to become more popular. They see that
 Blender has a bug, so they contribute some code to Blender to fix it.
 Remember, Blender itself will always be open source, any change to
 Blender itself must be made public if any of the code is distributed.
 
 This is what has happened with Linux, do you think IBM really cares
 about open source? I don't. I think they care about money. They make
 money with Linux and so they are invested in Linux's future, they want
 Linux to be as good as it possibly could be because then they make
 more money so they have been actively contributing open source code to
 Linux for years, and they see their profits go up.
 
 I doubt there is an IBM out there for Blender just waiting to
 contribute, but what if there is a single programmer and one or two of
 his friends who want to make a small company and they are interested
 in the 3D modeling/animation/design industry. Right now they would
 look at Blender and say wow wouldn't that be great, too bad it is GPL,
 and so then they would go and start working on a 3DMax extension, or a
 Maya extension.
 
 It is no problem for them, they can just pick another platform, it is
 a problem for us because they didn't pick ours.
 
 The existing Blender developers (see Campbells most recent email) have
 said 

Re: [Bf-committers] S-DNA and Changes

2010-11-25 Thread Peter Schlaile
Hi Leo,

 Regarding your interface prototype: your interators should take a float
 increment parameter. (There isn't really a well defined next frame in
 float precision scene-rendering...)

I decided against that due to the complications it resulted in - mostly
because it became very difficult to get all frames to align in time when
round-off errors may affect the float cfra parameter depending on how it
was calculated. (It was also difficult for movie clip sources, again due
to rounding errors, where you could end up on the wrong frame.) It was
easier to just pretend, in the VSE, that each sequence was continuous,
but sampled at a fixed rate. (So the frame rate should really be a
field rate.) That way, the only time we risk that the frames don't
line up is when we do framerate conversion - and everyone kinda expects
them to not line up then.

uhm, ouch. OK, do it differently, tell the next()-iterator the 
absolute next-cfra not the increment, but please make it a float, because...

 I'm just guessing regarding the float cfra parameter: Is it for motion blur?
... it's not about motion blur, it's about retiming.

If CFRA is float, you can retime a scene strip afterwards and have it 
render subframe precision frames (read: extrem slowdowns), which are 
done the real way, not using fake interpolation.

Cheers,
Peter


Peter Schlaile
___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers


Re: [Bf-committers] S-DNA and Changes

2010-11-25 Thread Leo Sutic
On 2010-11-25 23:40, Peter Schlaile wrote:
 Hi Leo,
 
 Regarding your interface prototype: your interators should take a float
 increment parameter. (There isn't really a well defined next frame in
 float precision scene-rendering...)
 
 I decided against that due to the complications it resulted in - mostly
 because it became very difficult to get all frames to align in time when
 round-off errors may affect the float cfra parameter depending on how it
 was calculated. (It was also difficult for movie clip sources, again due
 to rounding errors, where you could end up on the wrong frame.) It was
 easier to just pretend, in the VSE, that each sequence was continuous,
 but sampled at a fixed rate. (So the frame rate should really be a
 field rate.) That way, the only time we risk that the frames don't
 line up is when we do framerate conversion - and everyone kinda expects
 them to not line up then.
 
 uhm, ouch. OK, do it differently, tell the next()-iterator the 
 absolute next-cfra not the increment, but please make it a float, because...

 I'm just guessing regarding the float cfra parameter: Is it for motion blur?
 ... it's not about motion blur, it's about retiming.
 
 If CFRA is float, you can retime a scene strip afterwards and have it 
 render subframe precision frames (read: extrem slowdowns), which are 
 done the real way, not using fake interpolation.

Ah, ok.

I'd still try to stick with integer frames and a parameterless next().
Allowing the client to specify the advance in the next() method makes it
too much of a random-access method (there is no guarantee that the
advance is to the next frame, which is the whole purpose of the
iterator interface).

I'd do it this way:

Suppose we have a scene where we want normal speed for frames 1-10, an
extreme slowdown for 11-12 and normal speed from 13-20.

Strip 1: Scene, frames 1-10. This strip covers frames 1-10 in the VSE.
Strip 2: Scene, frames 11-12, with a framerate of 1/100th of the output
framerate. This strip covers frames 11-211 in the VSE.
Strip 3: Scene, frames 13-20. This strip covers frames 212-219 in the VSE.

When the sequencer renders this, the next() for strip 1 and 3 will
advance one scene-frame. The next() for strip 2 will advance 0.01 frames.

That way, the VSE code only ever sees integer frames (although it does
see different frame rates), and we can guarantee machine precision in
the slowdown frame number calculation. The renderer, however, sees the
fractional frames - but this is hidden behind the scene strip's code.

(This also enables us to take a scene that was designed for 24p and
render it at 60p with everything lining up properly.)

Would this take care of the issue?

I realize that we suddenly have a VSE cfra and a Scene cfra, but if
you're going to have retiming through the VSE, then you already got that.

/LS
___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers


Re: [Bf-committers] RNA property updates vs anim sys

2010-11-25 Thread Matt Ebb
On Thu, Nov 25, 2010 at 4:10 AM, Campbell Barton ideasma...@gmail.com wrote:
 On Wed, Nov 24, 2010 at 5:08 AM, Matt Ebb m...@mke3.net wrote:

 One possible solution is to queue unique update functions for each
 update, per ID.
 A function pointer GHash  a check/w previous comparison should make
 collecting unique functions quite fast. Then these can run at the end,
 per ID.

Well if this is necessary, it would be great to see. I suspect the
reason this hasn't caused more problems elsewhere is that the depgraph
kind of overlaps with this behaviour and probably masks the effect for
a lot of blender data (i.e. scene objects automatically getting
updated via depgraph, regardless of update functions). Presumably this
doesn't extend fully to texture data.

Anyway, I can try to work around this for now by making a whole bunch
of abusive property set functions to do what should really be done by
update functions but it's something that really should be fixed.

If the purpose of RNA is to provide a unified, consistent interface to
UI, python, animation system, then it's quite a problem that changing
values via UI or python does the right thing, but via the animation
system it decides to just not run the code that it's been told to.

cheers,

Matt
___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers


Re: [Bf-committers] S-DNA and Changes

2010-11-25 Thread Peter Schlaile
Hi Leo,

 Ah, ok.

 I'd still try to stick with integer frames and a parameterless next().
 Allowing the client to specify the advance in the next() method makes it
 too much of a random-access method (there is no guarantee that the
 advance is to the next frame, which is the whole purpose of the
 iterator interface).

 I'd do it this way:

 Suppose we have a scene where we want normal speed for frames 1-10, an
 extreme slowdown for 11-12 and normal speed from 13-20.

 Strip 1: Scene, frames 1-10. This strip covers frames 1-10 in the VSE.
 Strip 2: Scene, frames 11-12, with a framerate of 1/100th of the output
 framerate. This strip covers frames 11-211 in the VSE.
 Strip 3: Scene, frames 13-20. This strip covers frames 212-219 in the VSE.

sorry, that won't work. One can retime using fcurves. Which brings me to 
the point: what was the sense in dropping the random access interface 
again?

The imbuf reader has also a random access interface, but internally keeps 
track of the last fetched frame and only reseeks on demand.

So you get: fast output, if you fetch the next frame and a slow reseek if 
you don't, which will work nicely in all relevant cases, since your code 
will be optimized to work on consecutive frames as much as it can.

Cheers,
Peter

Just do it internally like this on a movie strip which has a fixed 
framerate:

class movie_iterator : public iterator {
public:
Frame fetch(float cfra) {
if (cfra == last_cfra + 1) {
return next();
}

seek(cfra - preseek);

for (int i = 0; i  preseek; i++) {
next();
}

return next();
}
private:
Frame next() {
return next_frame using and updating last_frame_context;
}
void seek(float cfra) {
...
}

float last_cfra;
context last_frame_context;
}

where as a scene strip does:

class scene_iterator : public iterator {
public:
Frame fetch(float cfra) {
setup_render(cfra);
return render();
}
}



Peter Schlaile
___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers


Re: [Bf-committers] A practical proposal for the task of re-licensing Blender

2010-11-25 Thread Alex Combas
2010/11/25 José Romero jose.cyb...@gmail.com:

 Blender is a tool for artists, not programmers.



I hate to break the news to you.

It is because of programmers that Blender exists.
___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers


Re: [Bf-committers] A practical proposal for the task of re-licensing Blender

2010-11-25 Thread Lorenzo Pierfederici
looks like many of you, when talking about proprietary software, see this
scenario:

an evil super-big corporation (we'll use a fake name for it: Autodesk, or
Microsoft) steal or abuse Blender, and get away with it. They make lots of
money they don't deserve, our beloved developers get pissed, our users gain
nothing? No way!

well, I would hate that, too!
But in our computer graphics industry (games, animation, vfx) I don't really
see this THEM (evil moneymakers) vs. US (passionate community) thing...
let me try and give you another perspective on this, based on my
professional experience ;)

Who's THEM?
All over the world there are hundreds of CG studios, ranging from very big
(~2000 staff) to very small (~20 staff). It is my opinion that, however
strange it might seem, most of the people involved with CG actually _work_
in such a place. You may prove me wrong on this, but CG is so demanding that
most of us end up making a living of it to keep it going. :)
There are of course artists/developers doing graphics out of fun besides a
full-time job/school in an unrelated field, but not as many as full-timers
(and you know what? For the most part we love it so much that we work on
personal CG stuff in our spare time besides a full-time job in a studio!
Check forums where professionals hang out).

How is life in a studio?
Guys, it is AWESOMENESS!
Really, you should see it. A bunch of crazy, _highly_ skilled, _highly_
experienced people crunching ideas, building tools, experimenting on
everything, sometimes fighting, getting stressed and overworked, chilling
out with pizza and beer in the evening (usually late, late evening), and
generally having loads of fun! ;)
And all this to go to the theater, watching people watch your work and
laugh, cry, think, and then feeling so proud when your name comes up on the
screen for a microsecond in the credits and no one but you notice it!
Of course studios are companies, too, and so they try to make money. But in
the end, as my boss said just yesterday, making images is all we are about!

So, are they really THEM?
To me they definitely look like US, just maybe not using Blender, yet!

How is this related to this thread?
Typically in a studio we tend to develop many small or not so small things
around our base tools, based on the needs of each show (a game, a movie, a
commercial...), but usually there is not enough time to polish them,
document them, etc. Remember? We are about making images, not software. And
besides there will never be enough resources to develop everything you need,
so you go for the big target, what makes your studio unique, and integrate
third-party tools for what you don't have resources to develop yourself, or
is better done by someone else, or is somehow secondary to you.

And where do this third party tools come from?
From everywhere, really. Look at the Maya eco-system for example. Even if
proprietary, Maya is in a way a very open software: stable APIs for plugins,
lots of documentation and examples, good support. You can build amazing
stuff around it, I'm sure you've all seen interesting making-ofs and the
like. This means that MANY developers distribute their Maya plugins,
scripts, or just ideas as open source or public domain. And some software
companies (often spinoffs from some studio) develop bigger plugins as
proprietary code and sell them.
For studios this is very important: I have my base tool and I love it, but
if I get a show that needs photorealistic fur, or smoke, or a special
renderer, and I can't do it myself, can I get it from someone else? If I
have time I could pay developers to do it from scratch, but what if I don't
have time? The best option would be buying an already-made,
already-tested-in-production plugin.
And if at some point all of my shows will require smoke, then I'll develop
something myself...
This is really what commercial software means in our context.

And we have a very bright example that having a tool that can be extended
means that a lot of people will extend it: Blender Add-ons!
With the add-on system, Blender development is skyrocketing with small and
useful things!
Couldn't all this things be done in the code before? Sure they could, but it
would have been more difficult for someone not knowing Blender internals,
would have required centralized management (stealing Ton's time), and would
have ended up as low priority projects in the tracker. Instead look at how
many add-ons we have now! And it's just the beginning.

Now if we just made some more steps in that direction...
- give people a chance to make proprietary add-ons and plugins, so if they
need to invest money they can.
- build a more powerful plugin system with stable APIs and good docs.
The license is just a part of it.

For the second point, think how cool it would be if things like Dynamic
Paint, the Ocean modifier, or all the awesome stuff from Raul could be done
as external plugins. No need to get core developers to review, approve and
integrate 

Re: [Bf-committers] S-DNA and Changes

2010-11-25 Thread Leo Sutic
On 2010-11-26 00:28, Peter Schlaile wrote:
 Hi Leo,
 
 Ah, ok.

 I'd still try to stick with integer frames and a parameterless next().
 Allowing the client to specify the advance in the next() method makes it
 too much of a random-access method (there is no guarantee that the
 advance is to the next frame, which is the whole purpose of the
 iterator interface).

 I'd do it this way:

 Suppose we have a scene where we want normal speed for frames 1-10, an
 extreme slowdown for 11-12 and normal speed from 13-20.

 Strip 1: Scene, frames 1-10. This strip covers frames 1-10 in the VSE.
 Strip 2: Scene, frames 11-12, with a framerate of 1/100th of the output
 framerate. This strip covers frames 11-211 in the VSE.
 Strip 3: Scene, frames 13-20. This strip covers frames 212-219 in the VSE.
 
 sorry, that won't work. One can retime using fcurves.

Then you can have one strip with an fcurve to map from VSE output frames
to scene frames:

Strip 1: Scene, frames 1-20, with an fcurve that maps from VSE frames
(iterated over using next()) to scene frames. It covers frames 1-219 in
the VSE.

If I may modify your code a little:

class scene_iterator : public iterator {
public:
Frame next () {
// fcurves go in map_vse_frame_to_cfra
float cfra = map_vse_frame_to_cfra (nextFrame);
setup_render(cfra);
++nextFrame;
return render();
}
int nextFrame;
}

VSE only sees a sequence of discrete frames - which is precisely what
its domain model should look like, because video editing is about
time-discrete sequences, not continuous. The Blender scene is a
continuous simulation - having a float cfra makes sense, because time is
continuous there. In the VSE the domain objects are discrete in time.
Having a float cfra makes no sense.

 Which brings me to the point: what was the sense in dropping the random 
 access interface again?
 
 The imbuf reader has also a random access interface, but internally keeps 
 track of the last fetched frame and only reseeks on demand.

It is always possible to wrap a sequential interface in a random-access
interface, or vice versa. The purpose of dropping the random access
interface was to be able to write code that didn't have to deal with two
cases - you'd know that you'll always be expected to produce the next
frame, and can code for that. Less to write, less to go wrong.

Clients of the code know that they can iterate over *every* frame in the
sequence just by calling next(). With a random access interface -
especially one that uses floats for indexing - you'll always worry if
you missed a frame, or got a duplicate, thanks to rounding errors.

/LS

___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers


Re: [Bf-committers] A practical proposal for the task of re-licensing Blender

2010-11-25 Thread Leo Sutic
On 2010-11-26 00:40, Lorenzo Pierfederici wrote:
 Maya is in a way a very open software: stable APIs for plugins,
 lots of documentation and examples, good support. You can build amazing
 stuff around it

Seems like you got your solution right there.

Why aren't you just going with Maya?

/LS
___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers


Re: [Bf-committers] A practical proposal for the task of re-licensing Blender

2010-11-25 Thread Diego B
Hi,

Please stop the fight on this thread, there is no point to talk about
LGPL, Maya, the good support or whatever.

Ton already say that the possibility to re-licensing with LGPL is near
zero, so we need focus on ways to get end-user level useful
extensions possible.
and this mean no more talk about change the license from GPL to LGPL!

So please, focus on that topic and if you don't have any other
solution that change the GPL to LGPL wait until somebody come back
with an alternative!

On Thu, Nov 25, 2010 at 9:17 PM, Leo Sutic leo.su...@gmail.com wrote:
 On 2010-11-26 00:40, Lorenzo Pierfederici wrote:
 Maya is in a way a very open software: stable APIs for plugins,
 lots of documentation and examples, good support. You can build amazing
 stuff around it

 Seems like you got your solution right there.

 Why aren't you just going with Maya?

 /LS
 ___
 Bf-committers mailing list
 Bf-committers@blender.org
 http://lists.blender.org/mailman/listinfo/bf-committers


- Diego
___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers


Re: [Bf-committers] A practical proposal for the task of re-licensing Blender

2010-11-25 Thread Alex Combas
On Thu, Nov 25, 2010 at 4:38 PM, Diego B bdi...@gmail.com wrote:
 Hi,

 Please stop the fight on this thread, there is no point to talk about
 LGPL, Maya, the good support or whatever.

 Ton already say that the possibility to re-licensing with LGPL is near
 zero, so we need focus on ways to get end-user level useful
 extensions possible.
 and this mean no more talk about change the license from GPL to LGPL!

 So please, focus on that topic and if you don't have any other
 solution that change the GPL to LGPL wait until somebody come back
 with an alternative!


Well actually if you read the discussion you'd see we're not talking about that.

Right now we're talking about the value of non-open plugins.

This is something Ton has said he does see the value of.

Perhaps we should start a new thread just to be clear.
___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers


[Bf-committers] Check out my photos on Facebook

2010-11-25 Thread Roland Douglas Walet
Hi Blen,

I set up a Facebook profile where I can post my pictures, videos and events and 
I want to add you as a friend so you can see it. First, you need to join 
Facebook! Once you join, you can also create your own profile.

Thanks,
Roland

To sign up for Facebook, follow the link below:
http://www.facebook.com/p.php?i=1421273854k=Z2G42YTSPZTF6BD1PK6YWVPRVWIB4T6CQQ1WKr

Already have an account? Add this email address to your account:
http://www.facebook.com/n/?merge_accounts.phpe=bf-committers%40blender.orgc=85d5d63ee2fc1c4543bb54ccab5afa28

===
bf-committers@blender.org was invited to join Facebook by Roland Douglas Walet. 
If you do not wish to receive this type of email from Facebook in the future, 
please follow the link below to unsubscribe.
http://www.facebook.com/o.php?k=6ea9d2u=11905621152mid=359554bG5af3820fb8a0G0G8
Facebook, Inc. P.O. Box 10005, Palo Alto, CA 94303

___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers