Blender 3.0

General discussion about the development of the open source Blender

Moderators: jesterKing, stiv

nuance9
Posts: 0
Joined: Thu Jul 17, 2003 3:17 pm

Post by nuance9 » Sun Jul 25, 2004 5:53 am

This seems kind of silly. What's the big deal about 3.0? We seem to get real excited about "major releases".

2.34 is a major release as far as I'm concerned. Most of the releases have been fairly significant recently feature-wise.

So you want a roadmap to 3.0, your on the road baby! Your living it. Chill out, and enjoy the ride. 2.34 is the next stop on the roadmap to 3.0.

I'm not trying to be a pain, but more and more I see the effects of commercial propoganda in all aspects of life. You know: "Once you get the bigger, better ______ it will all be good".

I'm sure 3.0 WILL be great. But in the interim 2.34 is already more app than I know what to do with. Maybe others are way ahead of me, but looking at the galleries, I don't think most users have even begun to tap Blender's potential. But even still they are clamoring for more, though they may not have even learned how to use the features they already have.

Sorry for the rant... Just for all the "we need this" and "we need it soon", I think the user base should be pushing the envelope of what Blender can do a little bit harder. Of course, I'm not pushing any envelopes - so I don't have much room to talk.

Money_YaY!
Posts: 442
Joined: Wed Oct 23, 2002 2:47 pm

Post by Money_YaY! » Sun Jul 25, 2004 3:26 pm

nuance9 wrote:This seems kind of silly. What's the big deal about 3.0? We seem to get real excited about "major releases".

2.34 is a major release as far as I'm concerned. Most of the releases have been fairly significant recently feature-wise.

So you want a roadmap to 3.0, your on the road baby! Your living it. Chill out, and enjoy the ride. 2.34 is the next stop on the roadmap to 3.0.

I'm not trying to be a pain, but more and more I see the effects of commercial propoganda in all aspects of life. You know: "Once you get the bigger, better ______ it will all be good".

I'm sure 3.0 WILL be great. But in the interim 2.34 is already more app than I know what to do with. Maybe others are way ahead of me, but looking at the galleries, I don't think most users have even begun to tap Blender's potential. But even still they are clamoring for more, though they may not have even learned how to use the features they already have.

Sorry for the rant... Just for all the "we need this" and "we need it soon", I think the user base should be pushing the envelope of what Blender can do a little bit harder. Of course, I'm not pushing any envelopes - so I don't have much room to talk.
it's not about features it's about the long re-write so plug-ins are a standard add in and the code is clean enough for others to add in code really fast.

citizenX
Posts: 0
Joined: Wed Jun 16, 2004 9:48 pm

Post by citizenX » Sun Jul 25, 2004 10:22 pm

The point being made here by the coders is that they ARE doing everything you're asking....they just dont have the numbering scheme you want. If we push for a blender 3, blender 2.3x will DEFINATELY suffer, and the result will be a poorly planned upgrade that most serious users wont use. Most of what you're wanting in blender 3.0 will mostly likely be in 2.6x or 2.7x. The coders are working their fingers off on a lot of this. Some features wont be happening for a while, but thats because they take a long time to implement. I'd rather be sitting here in 2005/6 working on a blender 2.4 or 2.5 that is well thought out and designed well than be staring at blender 3.0 that has potential, but lacks stability, documentation, consistent design, or even a good interface. How many commercial packages have we seen come out with a substandard release just to meet deadlines? Most commercial endeavours have that drawback because the companies are trying to upgrade with a new release and make more money. Let Blender develop in its own time...its certainly not showing any signs of slowing down. :D

bobthevirus
Posts: 0
Joined: Wed Jun 25, 2003 7:11 am

Post by bobthevirus » Mon Jul 26, 2004 2:39 am

The point being made here by the coders is that they ARE doing everything you're asking....they just dont have the numbering scheme you want. If we push for a blender 3, blender 2.3x will DEFINATELY suffer, and the result will be a poorly planned upgrade that most serious users wont use. Most of what you're wanting in blender 3.0 will mostly likely be in 2.6x or 2.7x. The coders are working their fingers off on a lot of this. Some features wont be happening for a while, but thats because they take a long time to implement. I'd rather be sitting here in 2005/6 working on a blender 2.4 or 2.5 that is well thought out and designed well than be staring at blender 3.0 that has potential, but lacks stability, documentation, consistent design, or even a good interface. How many commercial packages have we seen come out with a substandard release just to meet deadlines? Most commercial endeavours have that drawback because the companies are trying to upgrade with a new release and make more money. Let Blender develop in its own time...its certainly not showing any signs of slowing down.
The point is, that we want to start work on the _design_ of 3.0 - coders that are working on 2.XX shouldn't even be involved for at least are year.

Now, the reasons for 3.0 - mainly we want to re-write the core functionality of blender - It will take _ages_ to get 3.X into a usable state.

My personal things that I want 3.X to have that _can't_ be added to 2.X -
1. Tidier code in general.
2. Nicely modulized/OO/pluginable/whatever core
3. New render engine that for a start off uses the old one, but can have modules chopped and changed inside it.
4. Entirely new matarials - something node-based
5. Objects meshes etc in an actual tree - I would say fully OO, but that could be too slow.
6. Etc etc etc
7. Ooo, good one - Being able to use wings as a plugin, before alt-cing o a native type - tho this could probably be impletmented into 2.X

The point is, these things can't easily be added to the 2.X series - the code is almost at maximum entropy as it is. These features need to be discussed - they probably aren't that likely to be used, but are he kinds of things that would be changed.

What I am calling for here is a year or so of design work, which should probably not envolve the coders until functionality is decided upon. (ie. decide what we want it to do, then, and only then, decide how we should do it.) The very last thing I want to do is to set a deadline for finishing coding - this would add FAR too many problems.

Again about loosing programmers to it (when we finally get around to starting coding): the bulk of the work in making 3.0 will be boring and repeditive turning the existing code into a format(modules/whatever) that fits into the new code. People already coding blender won't want to do this - they will be more than happy to work on 2.X - where you can make a change, and something HAPPENS. I however, who has been taught OOP right from the start, has a hard time working with the existing code - It's just too big - so if something was started from "scratch", I would be more than happy to do the boring stuff.

Maybe we just need to do a prelim-prelim paper, about whether to actually do a prelim paper in the first place (-:

SamAdam
Posts: 0
Joined: Thu Mar 04, 2004 1:28 pm
Contact:

Post by SamAdam » Mon Jul 26, 2004 4:15 am

i think it will get to a point where we are just modifying code and adding little quirky features.

i mean, once we get all the next series of interface items done, add face and edge select, the whole new set of things that go with those, render stuff, caustics, GI, maybe a revision of the GUI one more time...

If it catches up to the big 4 or 5 it will be forced to follow them, adding little add on things: fluid dynamics, exporters, physics, small speed-ups, bug fixes,
things like this:
Schematic View
Particle Flow
Vertex Paint
mental ray® 3.2
reactor® 2 dynamics
Dynamic Shader UI
Network Render to Texture
Network Region Render
Spline/Patch Modeling
Relax UV's
Mirror Skin Weights
Edit Vertex Normals
Shell Modifier
Load/Save Rendering Settings
(new in 3dstudio 6)

nuance9
Posts: 0
Joined: Thu Jul 17, 2003 3:17 pm

Post by nuance9 » Mon Jul 26, 2004 2:44 pm

bobthevirus wrote: The point is, that we want to start work on the _design_ of 3.0 - coders that are working on 2.XX shouldn't even be involved for at least are year.
So why don't those interested in doing so go ahead and just do it? Put together a very well thought out design proposal, and present it to the community.

bfvietnam
Posts: 0
Joined: Wed Apr 21, 2004 8:54 pm

To really start a fight..

Post by bfvietnam » Mon Jul 26, 2004 4:40 pm

Support for multiple monitors.. Literally just allowing multiple windows so you can work in one monitor and preview in the other. I tried to do this with the render window but blender's preset positioning just resets the positioning of the preview window. I have my windows desktop split between two 1280x1024 monitors.. I suppose it would be nice to have one of those nice highres apple monitors, but those don't come on the PC and its so much cheaper to buy 1280x1024 and 1600x1200 monitors than a wide-screen. Furthermore its possible to add more monitors with more cards. I work all the time now with two monitors, it makes great if you are coding or learning an application because you can surf the web or browse manuals in one and work in the other. Another good reason to get ATI cards over NVidia cards..


I read back over.. And saw the discussion about OO. The problem with OO is its tough to do it the first time around, you get it by refactoring the stuff that you can see is the same thing repeated everywhere.. Its tough to foresee reuse ahead of time. There are dangers with OO just as there are with Imperative languages like C. In OO its about knowing what to use and why to use it, and how to balance organization with utility. The primary use for OO is to standardize interfaces and hide the implementations while being able to easily scope functions to objects
rather than dealing with a global scope of variables which all share the same symbol tables. If you are coding with objects you can have many functions with the same name. However with C you have a choice, you can name your functions after the library (use of underscores) or you can make a single function that calls the others and pass structures in and out of the function calling parameters on the function, or you could have a set of functions managing a database of structures and offering up interfaces to that data to other pieces of code. There is a lot of flexibility, but in C you are not encouraged to design things for reuse or to be modular,
its something you do. C++ I would believe is easier to read and easier to be involved with and manage. Less glory for the wizard hacker though more gusto for the user of the package.

Monkeyboi
Posts: 251
Joined: Tue Nov 26, 2002 1:24 pm
Location: Copenhagen, Denmark
Contact:

Post by Monkeyboi » Mon Jul 26, 2004 6:17 pm

How about proper all-round UNDO? And standard hotkeys such as Ctrl/Cmd-Z = Undo, Ctrl/Cmd-O = Open, etc. These things, along with more logical and well thought out buttons, would sure help sell Blender to professional studios and amateurs alike.

fligh
Posts: 31
Joined: Mon Dec 30, 2002 11:28 pm
Location: US

Post by fligh » Mon Jul 26, 2004 7:54 pm

This discussion seems to be what may have happened way back when with linux evolving into its plethora of flavours. The v.3.00 you all are discussing seems to be a "redhat" or "fedora" relative (pun intended) of the BF core? And will therefor logically branch off and be supported by its own group of coders.

%<

lukep
Posts: 0
Joined: Sun Apr 04, 2004 1:39 pm

Re: To really start a fight..

Post by lukep » Mon Jul 26, 2004 8:40 pm

bfvietnam wrote:Support for multiple monitors.. Literally just allowing multiple windows so you can work in one monitor and preview in the other.
That's something which must be done in GHOST lib.
Not easy if you want to support properly the case of different cards with different capability.
I read back over.. And saw the discussion about OO. The problem with OO is its tough to do it the first time around, you get it by refactoring the stuff that you can see is the same thing repeated everywhere..
...
There is a lot of flexibility, but in C you are not encouraged to design things for reuse or to be modular,
its something you do. C++ I would believe is easier to read and easier to be involved with and manage. Less glory for the wizard hacker though more gusto for the user of the package.
I personnaly think that truly good design is harder to be done in C++ than strict C, due to the enforced strong typing. But in C++, you are at least forced to design a minima, which make things less problematics.

But if a C program is well designed, it is as easy to read than a C++ one.
IMHO, a good compromise is the objective-C langage which is standard C with weak typing object extensions. Truly a pleasure to code in this one.
Unfortunatly, this is an almost unknown langage outside Os X platform, C++ having been adopted as the standard.

bobthevirus
Posts: 0
Joined: Wed Jun 25, 2003 7:11 am

Post by bobthevirus » Tue Jul 27, 2004 12:22 am

nuance9 said:
So why don't those interested in doing so go ahead and just do it? Put together a very well thought out design proposal, and present it to the community.
Sounds like a challange.... At some stage we should get forums, but in the meantime....

Since this looks like its mainly going to be a code re-write, with a view of making it easier to do certain things, the first thing we need to do is to decide on a list of features that should be easier to implement in the new system. Some of the things from this thread so far, that won't nessercerily be done, but provide a checklist of things that are difficult at the moment:

1. Arbitary choice of bpp
2. Real colour managment
3. Multithreading - it wouldn't be extremly dificult to add support for different comps to do different parts of the render, but not true multithreading
4. Personally I find c++ much easier to understand. You design an object, then your other objects tell that object what to do, and it magically gets done. With well named objects and functions, it becomes self-evident whats going on. Of course, this is just a personal preference, and a lot of people have problems with them.
5. Plugins everywhere
6. Easy ability to add multiple code paths - for matarial/render/etc. In the renderer, it would be great if the yafray renderer, the internal render, the standard renderer, and plugin renderers all looked the same, and when one was selcted, options specific to that on popped up in a new panel (like in edit part when you press tab) It should be made easier to change the internal renderer so that we can output 64bit/only spec/whatever
7. Better pipeline from renderers to post-pro part of blender
8.
9. Ability to use node-based matarials - using abilitys in 6. above
10. Modules that are the basic mesh types - nurbs/subsurf/bezier/etc. If they were all accessed through a consistant interface (now this is somewhere where oop could provide overides to an abstract class) splines/patches/multilevel subsurf/wings/etc/etc could eaily be added. Even as plugins.
11. Ability to use all the things SamAdam wrote as plugins - some of these could be part of blender itself, but most are more suited to the plugin department. This means adding plugin handles _everywhere_.
12. With 10., the ability to add face and edge selct to a new mesh type would be simple.... well, not as difficult

I really like how blender is different than the other 3d apps, so this shouldn't be about turning it into a clone. Instead it should be about making it easier for the developers, and providing the ability to add even more exciting new features that the "big boys" haven't thought of yet. Its about expanding the expandibility of blender.

So, the next steps are... Make a design doc, and present it.
To get there we need to... Decide what parts of the code would benefit the most from oop, and what parts of blenders core will need to be changed to support all the other changes.

I'll try to write some stuff later about how to arrange the forking and porting new changes to 2.xx over. Maybe someone that has experience in this kind of thing?

kid_tripod
Posts: 35
Joined: Sun Dec 15, 2002 10:52 pm

Post by kid_tripod » Tue Jul 27, 2004 6:05 pm

I'll probably get laughed out the park for this, but I think there's a strong case for writing Blender 3.0 in Java, with one of the modern OpenGL bindings to do the UI.

If you keep the rendering component, be it Yafray, or an evolution of the current one, native C/C++ then I think the performance would be plenty good enough.

bfvietnam
Posts: 0
Joined: Wed Apr 21, 2004 8:54 pm

Post by bfvietnam » Tue Jul 27, 2004 8:31 pm

nuance9 wrote:This seems kind of silly. What's the big deal about 3.0? We seem to get real excited about "major releases".

2.34 is a major release as far as I'm concerned. Most of the releases have been fairly significant recently feature-wise.
What I want to know is why does Mozilla Firebird have 150 plugins and blender has hardly anything in the way of plugins.. That's because blender doesn't have a real plugin API, and yet this is supposed to be a feature.

Maybe we should offer a 2D version of blender for those who get sick from disorientation..

But really, its come a long way.. Its about where lightwave was ten years ago.

bfvietnam
Posts: 0
Joined: Wed Apr 21, 2004 8:54 pm

Post by bfvietnam » Tue Jul 27, 2004 8:35 pm

kid_tripod wrote:I'll probably get laughed out the park for this, but I think there's a strong case for writing Blender 3.0 in Java, with one of the modern OpenGL bindings to do the UI.

If you keep the rendering component, be it Yafray, or an evolution of the current one, native C/C++ then I think the performance would be plenty good enough.
All we need is a 10 ghz processor to make it seem like its blender running on a 2 gigahertz one.. Java is not as nice as its hype, although I'm learning it because that's where all the 70K per year jobs are.. Its the usual stuff that enterprise systems designers believe in, OOP, security, interoperability, platform independence, but forget interactivity that goes out the window.. Blender can do with C what Java and C++ do, its just not very easy to bring a lot of people into a C project.. BTW Java is not open source, though Sun is thinking about it..

kid_tripod
Posts: 35
Joined: Sun Dec 15, 2002 10:52 pm

Post by kid_tripod » Wed Jul 28, 2004 1:10 pm

Java is actually really quite fast, just memory hungry.

It's things like Swing that are why it has a bad reputation. If you use Eclipse it's hard to believe it's in Java. Also see http://www.getamped.org/en/ . I'm a Java developer and I find it hard to believe that's in Java.

The big thing is the speed of development would be much higher, and it would make things like multithreading a lot easier than writing a cross platform one on the current setup. Any really slow bits could simply be made native as required.

The "it's not Open Source" argument is probably the biggest thing against it at the mo. I just think it's a mistake to simply assume C/C++ is the way to go. Wings is in Erlang of all things, and that's really really good (and yes, I know it slows down quickly beyond a few tens of thousands of polys, but hey!)

Post Reply