Furniture-Configurator using Away3D

58 views
Skip to first unread message

banal

unread,
Oct 13, 2010, 7:36:49 AM10/13/10
to Away3D.dev
Hello Developers

I thought I'd share this project with you that I have been working on
the past months.
It's a tool where the user can customize his own furniture. Currently
it's only for closets but will be extended to other types of furniture
in the near future.

The 3D preview of the furniture was done using Away3D.
Currently the tool and the website are German only, but I guess you'll
get what it's about by simply playing around :)

Website: http://www.deinmoebel.ch/
Direct link to the furniture-configurator: http://shop.deinmoebel.ch/

Cheers - Roman

Michael Iv

unread,
Oct 13, 2010, 7:54:52 AM10/13/10
to away3...@googlegroups.com
The app look fine generally but you have got a lot of artifacts on your furniture. Do you Z sort it? may be you should revise the modeling approach ?

banal

unread,
Oct 13, 2010, 8:32:02 AM10/13/10
to Away3D.dev
Umm yes, you are right.
But I cannot revise the modeling approach, since most of the furniture
geometry is generated on the fly (the structure of the furniture is
actually defined in the backend, not in flash). Also: you can
configure and adjust so many things, you'll never be able to model/
generate the geometry in a way that will *never* cause z-sorting
issues.

I currently use the following workaround, since the correct z-renderer
is way to slow:
When you rotate the furniture, then it uses the basic renderer. As
soon as movement stops, the furniture gets rendered with the correct z-
order rendering....

I think it's an acceptable compromise and I don't see a better
solution until we get some sort of real z-buffer in flash.

Cheers - Roman
> explomas...@gmail.com
> t...@neurotech.co.il

Michael Iv

unread,
Oct 13, 2010, 8:39:32 AM10/13/10
to away3...@googlegroups.com
I thing you can play around with layering .It can solve those problems.To tell you the truth as for an occasional visitor these artifacts are too noticable and pretty screw up the overall visual perception.Those artifacts are really big. I once wrote an Away3D app where there were complex nested models with hollow walls ,close adjacent planes ,etc.I could not afford to use Z-Sorting filter because of the same reason as you said.But I solved the problems with putting all the content into a container and then layering the children using pushback/front , ownCanvas and Sprite sessions. It takes some time to tweak the configs but eventually it delivers the desired result.

banal

unread,
Oct 13, 2010, 9:12:39 AM10/13/10
to Away3D.dev
You have a point but I think it's still not doable in our case. I gave
layering (pushback/pushfront) a try at some point during the project
but it didn't work out.
This is why I think layering won't work in our case:
- The viewer has to be generic. We cannot implement a layering ruleset/
engine for every kind of furniture. I.e. a layering approach must work
the same for a table a closet or a bed...
- Parts of the furniture can grow quite big (eg. the backside of the
closet or the doors) and will always cause z-sorting issues with
smaller parts (eg. the doorknob).
- Geometry (like drawers, doorknobs, etc.) can be integrated into the
shop *without* adding any actionscript code or having to re-compile
the application (geometry is unknown). So it's not possible to create
special layering rules for some of the geometry since they are
basically all the same class.

I wonder: Was the app you're speaking of also that dynamic? Did object
sizes, distances and relations change? Did you have to deal with
"unknown" geometry? If yes, maybe you could outline your layering-
approach? It would be interesting to read about it.

Another option for the furniture rendering could be to switch into
"wireframe" mode during user-navigation... like in old 3D programs.
But IMHO the current approach is still better than that.

Cheers - Roman

Michael Iv

unread,
Oct 13, 2010, 9:31:20 AM10/13/10
to away3...@googlegroups.com
Some of the stuff in our project was dynamically attached to the existing geometry but I should admit we have not performed scaling etc.We also tried to use hollow wall geometry as little as possible because it is one of the major causes for such kind of artifacts.

Look ,your project is really impressive ,besides that drawback of Z sorting , I am sure you will find the way to fix it. :)

Cheers.

Fabrice3D

unread,
Oct 13, 2010, 9:58:01 AM10/13/10
to away3...@googlegroups.com
The artefact reveals the back of the furniture are made of one straight piece
while a series of either Planes or SkinExtrudes could be defined in case of your 3 rows example
be as from left to right

var a = thickness;
var b = width column;

[ a, a+b] [a*2+b, a*2+b*2 ] [a*3+b*2, a*3+b*3 ]

The back builded this way, you get continuous modeling, probably fixing almost all your issues.
Means of course you need to subdivide on height as well to make all vertexes fit if required.

Fabrice

banal

unread,
Oct 13, 2010, 10:41:02 AM10/13/10
to Away3D.dev
Hi Fabrice

I thought about that too (in the beginning of the project the backside
was actually separated into different parts).

The reason why I didn't implemented it the way you mentioned:
- The backside of the closet doesn't actually know anything about the
number of subdivisions and their sizes (they're not always the same).
Actually, it doesn't even know that it's the backside :).
- Texture/UV mapping has to be adjusted whenever the size of the
furniture changes (you'll notice that the textures will keep the same
size, even when you resize the furniture). This is much easier with a
simple geometry such as it is now.
- Changing the furniture size, number of subdivisions etc. would
require a rebuild of the geometry which can be costly.

I guess the main cause for the z-sorting problems is the fact, that
all "wood-parts" or "planks" are the same class. These "planks" are
being laid out (positioned, transformed) using different layout-
algorithms. So the backside of the closet is the same class as the
door or a shelf. The parts are not aware of other parts and cannot
have additional geometry (vertices) added when another part was
added..
This could also become very very complicated if one column has 3
shelves and the one next to it has 7 shelves. Then the separating
piece would have to be adjusted accordingly as well.

The goal of the current system was to make its classes reusable for
other furniture-types. But it also has the drawbacks you noticed :)
It was also more important to create a generic system and not one that
is specialized to work around z-sorting issues.

Interestingly I also never had any feedback like yours where the z-
sorting seems to be a massive showstopper. Other people didn't seem to
bother that much (although somebody thought it was because he was
using the Linux-Version of the flash player which I thought was
funny).

Cheers and thanks for your replies so far!
Roman

On Oct 13, 3:58 pm, Fabrice3D <fabric...@gmail.com> wrote:
> The artefact reveals the back of the furniture are made of one straight piece
> while a series of either Planes or SkinExtrudes could be defined in case of your 3 rows example
> be as from left to right
>
> var a = thickness;
> var b = width column;
>
> [ a, a+b] [a*2+b, a*2+b*2 ] [a*3+b*2, a*3+b*3 ]
>
> The back builded this way, you get continuous modeling, probably fixing almost all your issues.
> Means of course you need to subdivide on height as well to make all vertexes fit if required.
>
> Fabrice
>
> On Oct 13, 2010, at 3:31 PM, Michael Iv wrote:
>
> > Some of the stuff in our project was dynamically attached to the existing geometry but I should admit we have not performed scaling etc.We also tried to use hollow wall geometry as little as possible because it is one of the major causes for such kind of artifacts.
>
> > Look ,your project is really impressive ,besides that drawback of Z sorting , I am sure you will find the way to fix it. :)
>
> > Cheers.
>
> > > Flex|Air |3D|Unity|www.neurotechresearch.comhttp://blog.alladvanced.nethttp://www.meetup...
> > > Tel:054-4962254
> > > explomas...@gmail.com
> > > t...@neurotech.co.il
>
> > --
> > Michael Ivanov ,Programmer
> > Neurotech Solutions Ltd.
> > Flex|Air |3D|Unity|
> >www.neurotechresearch.com
> >http://blog.alladvanced.net
> >http://www.meetup.com/GO3D-Games-Opensource-3D/
> > Tel:054-4962254
> > explomas...@gmail.com
> > t...@neurotech.co.il

Bob Warfield

unread,
Oct 13, 2010, 10:51:25 AM10/13/10
to away3...@googlegroups.com
It's cool, but I agree the artifacts are annoying.
 
Does it really get so slow if you try to user a better render?
 
Seems like your idea of doing one thing while animating and then upping the quality when the animation stops is a good one there.  I think it'd be okay if all the artifacts went away and render quality went up when you stop.

Cheers,
 
BW

banal

unread,
Oct 13, 2010, 10:56:10 AM10/13/10
to Away3D.dev
Hey Bob

This behavior is already implemented (low-quality during interactions
and high-quality when stopped).
Doesn't the z-sorting issues disappear when you stop interacting with
the 3D Model?

The high-quality renderer can only be used constantly with a very
basic model. As soon as you add drawers, lots of shelves etc. it can
even get slow with the normal renderer.

Cheers - Roman

On Oct 13, 4:51 pm, Bob Warfield <b...@thewarfields.com> wrote:
> It's cool, but I agree the artifacts are annoying.
>
> Does it really get so slow if you try to user a better render?
>
> Seems like your idea of doing one thing while animating and then upping the
> quality when the animation stops is a good one there.  I think it'd be okay
> if all the artifacts went away and render quality went up when you stop.
>
> Cheers,
>
> BW
>

Bob Warfield

unread,
Oct 13, 2010, 10:59:42 AM10/13/10
to away3...@googlegroups.com
I would say the artifacts disappear about 80% of the time.  They are mostly at the bottom of the default empty shelves.  You can see them if you just rotate left and right a little bit.
 
Cool app BTW!
 
Nice to see some non-games.  Thought I was the only one doing something boring, LOL.
 
Best,
 
BW

Fabrice3D

unread,
Oct 13, 2010, 11:06:33 AM10/13/10
to away3...@googlegroups.com
> Actually, it doesn't even know that it's the backside :).
yeah stoopid Linux planes! :)

> Texture/UV mapping has to be adjusted whenever the size of the
> furniture changes

Using the Projector class and a simple modulo would have allowed you define repeats the same way
yet using parts.

> Changing the furniture size, number of subdivisions etc. would
> require a rebuild of the geometry which can be costly.

I have no insight of the whole project, but sometimes dedicated primitives are the way to go

Not trying here by any mean to crack your work btw,
Was just pointing out that these artefacts could be wipped away doing this way.
but indeed requires more time/preparation. Which is also a factor money/time.

That having said, you can be proud of your work despite the sorting issues,
its a lot of work and the result speak for itself.
Well done!

Fabrice

banal

unread,
Oct 13, 2010, 11:06:38 AM10/13/10
to Away3D.dev
Thanks for the feedback and compliment.

I would also enjoy working on a game for a change now :)

BTW: Here's a direct link to a slightly more complex model which
surely won't perform well when using correct z-sorting all the time:
http://shop.deinmoebel.ch/products/501-1286982195

Cheers - Roman


On Oct 13, 4:59 pm, Bob Warfield <b...@thewarfields.com> wrote:
> I would say the artifacts disappear about 80% of the time.  They are mostly
> at the bottom of the default empty shelves.  You can see them if you just
> rotate left and right a little bit.
>
> Cool app BTW!
>
> Nice to see some non-games.  Thought I was the only one doing something
> boring, LOL.
>
> Best,
>
> BW
>

mika

unread,
Oct 13, 2010, 11:14:46 AM10/13/10
to away3...@googlegroups.com
Nice work banal !

heres a similar module that I thought was quite good (but too long to load and cpu intensive)

mika

Bob Warfield

unread,
Oct 13, 2010, 11:29:08 AM10/13/10
to away3...@googlegroups.com
Cool model.
 
I see now what was happening.  It does get rid of the artifacts when I stop rotating.  It just seems to take a little longer than I was waiting.
 
Sorry for the false alarm.
 
Cheers,
 
BW

Bibek

unread,
Oct 26, 2010, 2:02:58 PM10/26/10
to Away3D.dev
FYI - when I try to load this in Google Chrome, I get the UI, but not
the model.

In Firefox, it loads properly.

(Using Windows Vista, Flash 10)

- Bibek
Reply all
Reply to author
Forward
0 new messages