|
|
Le_Forgeron <jgr### [at] freefr> wrote:
> the "same material=same piece" approach was a first though. Which proved to be bad.
> (and it was only "same SSLT=same piece", not big as same material)
> My latest idea (a post or two up) is to have an explicit ID for the SSLT part. Thus,
if
You know what? My penultimate dream for CSG is a generic thing like this (using
a fairly "fantasy" syntax here:
csg {
component A { MyObj1 }
component B { MyObj2 }
component C { MyObj3 }
...
interior {
case inside A and B and C -> interior { ... }
case inside A and B -> interior { ... }
case inside A and C -> interior { ... }
case inside A -> interior { ... }
case inside B and C -> interior { ... }
case else -> interior { ... }
}
texture {
case A->B inside C -> texture { ... }
case B->A inside C -> texture { ... }
case A->B -> texture { ... }
case B->A -> texture { ... }
case A->C inside B -> texture { ... }
case B->outside -> texture { ... }
case outside->B -> hide
...
}
}
This will be a hell of a monster to code for complex cases, but it'll make the
most versatile CSG you can ever dream of, encompassing all the functionality of
union, merge, difference, intersection, and even your own specialized flavors of
csg.
In that respect, SSLT would be just an additional parameter to the interior
(yes, not the finish; it'll move out of there anyway), and "the same piece of
material" would simply be "anywhere I can go without hitting a non-hidden
surface". (Or, if even more versatility should ever be required, a special
"hide_for_sslt" parameter could be added to the finish.)
Post a reply to this message
|
|