Re: slight OT: they want what we got!

Date : Wed, 02 May 2007 14:04:27 +0200
To : XSI(at)Softimage.COM
From : Andy Jones <andy(at)thefront.com>
Subject : Re: slight OT: they want what we got!
Yeah, it's kind of a subtle difference. I guess for the moment, I'm thinking my preference would still be to keep clusters as the lightweight implementation, improve them as much as possible (while leaving them fundamentally in line with the sort of "indexed behaviors" for polygons as they are implemented in MR), and have the option to make the cluster automatically extract as a derivative object in special cases where you actually do need the section of the mesh to be its own object. I guess it would be a subset of what you can do with Clones. Instead of copying the whole mesh, it would just copy the part you cared about. Really, it's just cluster-driven cloning... You could make it something else that'd be a little lighter, but at that point, why not go all the way and actually make it a new object? I mean, if you made what looked like a new object and didn't let users transform and deform it, people would just get mad.

Maybe this cluster-cloning is already possible? Or possible with a new custom operator?

- Andy

Andy Nicholas wrote:

Sounds good.

Actually, if they implemented it like that, they could just place the meta
objects in the same place as the clusters currently are... and call them
clusters ;-D No need to tell anyone anything - except the improvement in
cluster functionality!






Hi Andy,

Well I was thinking with the metaobject (object fixed underneath the
original mesh) that it would be pretty consistent with current XSI
behaviour beyond being fixed.

So by default it would inherit visibility etc from the parent object
(that would be a difference between a real object - it could inherit
local properties from it's parent as well as branch ones). Though you
could still make local versions of them etc.

I'd probably see implementing it as being done by keeping the existing
cluster system in place, but having the ability to create a
meta-object from clusters (possibly only polygon clusters as they
relate directly to renderable items whereas edges etc don't).

Limit materials to only being appliable to objects (and meta-objects)
- i.e. remove that from clusters to ensure consistency. Backwards
compatibility would just convert clusters with materials to
meta-objects and apply the material.

Meta-objects should only behave like objects for the purposes of
properties (like visibility) and materials. They should have no
construction history etc as the stack already has operators which can
only be applied to clusters.

This would give you a robust framework for handling properties on
clusters while maintaining consistency with the rest of the
architecture. It also doesn't require the overhead of a real object
(such as a transform state etc).

Cheers,

Alan.

On 5/2/07, Andy Jones <andy(at)thefront.com> wrote:


That's a nice idea.  There are a couple of potential problems I can
think of, but they might all be solvable.  One is that objects are
really heavy in XSI.  One of the big reasons we use clusters is to make
our scenes lighter.  Another problem is that a lot of properties of the
cluster (most notably visibility) are effectively overridden by the
properties of the object in some sense.  So, you'd have to find a way to
make the interface and implementation consistent.  I think ultimately,
it doesn't really make much difference whether the clusters look like
objects or not, because they fundamentally can't work like objects.
Unless they can...  But to me, the concept of a polygon cluster makes a
lot of sense.  We just need the ability to control them a little better.

On the other hand, something similar that I think could be useful is a
nice, integrated way to make "blown apart" objects, where you have
several objects that are essentially extracted polygons from one single
mesh.  For example, this could be a way to get a lot of control over
different parts of character meshes, where for the purpose of enveloping
you want a single mesh, but for materialization and passes, separate
objects are beneficial.  So, if you've got a character where the clothes
are sort of attached to the skin, you can still deal with the skin and
clothes like they're totally different objects.  You can of course do
this sort of thing in the software in several ways already, but it's
ugly.  Of course, if clusters are improved a little, the need to do this
sort of thing decreases.  But there are still probably cases where you
want smooth, continuous surfaces that behave like multiple objects.

- Andy

Alan Jones wrote:



Why not just have clusters appear as objects instead? Or at least a
metaobject which has an unfreezable history linked to the cluster
under the original object? Disable applying materials onto the
original cluster and only have them apply to the metacluster object. I
can't see any disadvantage to having the metaobject fixed underneath
the original object.

Cheers,

Alan.

On 5/2/07, Guillaume Laforge <guillaume(at)alamaison.fr> wrote:



...If I'm not misunderstanding the
setup you're describing, I think it also has the problem that you


can't


override the same material on two different clusters two different
ways. So, for example, if you want to make a set of objects blue


and


another set of objects green, you can't really gaurantee that it's
possible if you're using cluster materials.


I completely agree Andy. For this scenario, it is not really an
"override cluster material" problem but just the actual design of
cluster object in xsi.

To be able to drag and drop clusters in partitions could be handy but
it could be really messy too. A such re-design work doesn't look


simple.


Maybe a "Partition Material Manager" showing only objects, clusters
and materials like this :

partition A :
____Material A used by "objects A" and "object Z.cluster 1".
____Material B used by "objects Z" and "object A.cluster 1".

partition B :
____Material A used by "objects C" and "object Z.cluster 2".
____Material B used by "objects D" and "object A.cluster 2".


The UI will have to be extremely user friendly to avoid headache ;-).



I think we need a) a much improved implementation of the "texture


map"


100% agree. "texture map" are really useful and to be able to apply
them on a cluster would be nice. Again, it looks like a re-design of
the actual cluster object.

About the texture map property, it could be really useful if we could
use them for the bump too...


1/2

--
Guillaume Laforge | La Maison



On Wed, 02 May 2007 01:03:50 +0200, Andy Jones <andy(at)thefront.com>
wrote:


This is my experience as well. The hack of getting at cluster


materials


through proxy objects, while occasionally a useful hack, isn't


really a


scalable production-worthy strategy. If I'm not misunderstanding


the


setup you're describing, I think it also has the problem that you


can't


override the same material on two different clusters two different
ways. So, for example, if you want to make a set of objects blue


and


another set of objects green, you can't really gaurantee that it's
possible if you're using cluster materials. Also, this doesn't


give you


cluster visibility control, or overall material overrides. Just


shader


overrides.

I think we need a) a much improved implementation of the "texture


map"


property that works with clusters and allows mapping of values,


textures


and shader sub-trees, b) a way to put clusters in partitions (with


some


of the logical conundrums worked out. Like, is every cluster in


the


background objects partition?), and c) a thing I've never actually


heard


anyone ask for yet:

Multiple partition sets. Currently, in each pass, you get one set


of


partitions and they're mutually exclusive. So, you have to define
properties at the most granular level, with objects sorted into


lots of


highly specific categories. Instead, I'm proposing that it should


be


possible to have sets of partitions grouped together so that


they're


only exclusive within each group. That way, you could have, for
example, a dedicated partition set just for dealing with


visibility.


Then, you'd do all your shader stuff elsewhere. In the current
implementation, you end up with a horrible multiplicitive


relationship,


the more things you try to control, forcing you to need lots of
partitions with highly specific behaviors that are difficult to
understand. I think with objects, it's not so bad, but once you


start


partitioning at the cluster level, you really need something more
specific. Especially since overrides for clusters often work a


little


differently than overrides for objects.

- Andy

Graham D Clark wrote:



Hey Guillaume, yeah thats similar to the technique I setup on


Barnyard


for subassets, using dummy geo as a standin and presets to switch


to


various subassets so we didn't have to have tons of extra models


of


characters with only a few parameter differences.
Unfortunately things change in a story and we have to rebuild


assets


and then automate the cluster overrides and presets, and for some


damn


reason it didn't always work (not suprising being a kludge)


requiring


manual eval by a TD each time.
And you've touched on our tracking issue requiring attaching a


node to


the model.

Regarding passes SDK no its not impossible, we did it too, it just
wasnt as pleasant as the rest of XSIs areas via SDK (except for
fxtree), The partitions part still needs work.


-


---
Unsubscribe? Mail Majordomo(at)Softimage.COM with the following text in
body:
unsubscribe xsi



---
Unsubscribe? Mail Majordomo(at)Softimage.COM with the following text in
body:
unsubscribe xsi



---
Unsubscribe? Mail Majordomo(at)Softimage.COM with the following text in
body:
unsubscribe xsi



---
Unsubscribe? Mail Majordomo(at)Softimage.COM with the following text in body:
unsubscribe xsi





---
Unsubscribe? Mail Majordomo(at)Softimage.COM with the following text in body:
unsubscribe xsi




--- Unsubscribe? Mail Majordomo(at)Softimage.COM with the following text in body: unsubscribe xsi


Search the XSI List archives here or use the advanced search form to search across mailing lists. Searching help is available.
This site supposedly brought to you by Benjamin Grosser and the Imaging Technology Group.