How to generate surface with gensurf program?

Hi,

I'm trying to model one complex blinds' lamelas in Radiance.
I have lamela model in SketchUp but when exported to Radiance it gives 70
surfaces per one lamela - which is too much for simulations.

So I have an idea to try to model surface with gensurf, but no idea how
exactly.

Since I have SketchUP export I can extract data about sruface points so it
is some array of (x,y,z) coordinates:
(x1, y1,z1), (x2,y2,z2)...(xn,yn,zn).
Points in x and z aren't equidistant, while y={0,1}.

Problem is how to use these values in gensurf.
I want to have surface composed of multiple surfaces in x direction and 1
surface in y direction (length of a lamela)

I suppose appropriate command format would be:
*gensurf mat name dfile dfile dfile m n *

What is the format of dat files I need here? I tried to understand
something from manpage but no sucess.

Is this the right way to model complex blind lamela (it has few curvatures
and w shape etc.)?

Thanks in advance,
Marija

Hi Marija!

I'm trying to model one complex blinds' lamelas in Radiance.
I have lamela model in SketchUp but when exported to Radiance it gives
70 surfaces per one lamela - which is too much for simulations.

So I have an idea to try to model surface with gensurf, but no idea how
exactly.

Since I have SketchUP export I can extract data about sruface points so
it is some array of (x,y,z) coordinates:
(x1, y1,z1), (x2,y2,z2)...(xn,yn,zn).
Points in x and z aren't equidistant, while y={0,1}.

Problem is how to use these values in gensurf.
I want to have surface composed of multiple surfaces in x direction and
1 surface in y direction (length of a lamela)

I suppose appropriate command format would be:
/gensurf mat name dfile dfile dfile m n /

What is the format of dat files I need here? I tried to understand
something from manpage but no sucess.

Is this the right way to model complex blind lamela (it has few
curvatures and w shape etc.)?

My impression is that this will get quite complicated. gensurf would
still need the coordinates to come in the right ordering, and I do not
know how you could achieve that when exporting from Sketchup. Without
that, gensurf does not know which vertex locations to combine into one
surface. Also, you would again get lots of surfaces, as gensurf would
create flat surfaces between the vertex locations.

Two alternatives:

a) If you exactly know the profile of your lamellas, you could use a
functional description instead. This would still lead to quite a lot of
surfaces for each, but probably less. And (most important) you would
have great control on the resolution of the facetting. This would e.g.
make it possible to find out at what resolution you see no effect on
your results any more.

b) If you need to rely on your exported Sketchup model, I would advice
looking into instances or the mesh object. Create a "short" lamella,
something like one unit length, and export it. Make it a frozen instance
(using oconv -f) or a mesh object (using obj2mesh). Create a small scene
file containing only the mesh or instance primitive for this compiled
geometry. Than build your blinds from this element using an xform array
in your scene file. This will lead to very little memory consumption for
these objects.

If your shading systems consists of lots of blinds, I would even
consider using instances when creating geometry using gensurf (case a).
However in typical scenes, you do not reach critical polygon counts yet.
Radiance is very good in handling lots of surfaces, unless memory gets
used up.

Cheers, Lars.

Thanks for answers,

After detailed analysis of lamellas' SKetchUp geometry, I decided to
simplify it a little bit - so I replaced curved parts with really small
radius with 2 polygons.
When exported number of surfaces per lamella is much smaller, and I still
get correct reflectances and overall blind transmittance, so I think this
simplified lamella geometry will work.

Since I need in building lots of blinds, so I'll surely use instances and
xform to put it all in building.

CU,
Marija.

···

On Wed, Nov 9, 2011 at 4:11 PM, Lars O. Grobe <[email protected]> wrote:

Hi Marija!

> I'm trying to model one complex blinds' lamelas in Radiance.
> I have lamela model in SketchUp but when exported to Radiance it gives
> 70 surfaces per one lamela - which is too much for simulations.
>
> So I have an idea to try to model surface with gensurf, but no idea how
> exactly.
>
> Since I have SketchUP export I can extract data about sruface points so
> it is some array of (x,y,z) coordinates:
> (x1, y1,z1), (x2,y2,z2)...(xn,yn,zn).
> Points in x and z aren't equidistant, while y={0,1}.
>
> Problem is how to use these values in gensurf.
> I want to have surface composed of multiple surfaces in x direction and
> 1 surface in y direction (length of a lamela)
>
> I suppose appropriate command format would be:
> /gensurf mat name dfile dfile dfile m n /
>
> What is the format of dat files I need here? I tried to understand
> something from manpage but no sucess.
>
> Is this the right way to model complex blind lamela (it has few
> curvatures and w shape etc.)?

My impression is that this will get quite complicated. gensurf would
still need the coordinates to come in the right ordering, and I do not
know how you could achieve that when exporting from Sketchup. Without
that, gensurf does not know which vertex locations to combine into one
surface. Also, you would again get lots of surfaces, as gensurf would
create flat surfaces between the vertex locations.

Two alternatives:

a) If you exactly know the profile of your lamellas, you could use a
functional description instead. This would still lead to quite a lot of
surfaces for each, but probably less. And (most important) you would
have great control on the resolution of the facetting. This would e.g.
make it possible to find out at what resolution you see no effect on
your results any more.

b) If you need to rely on your exported Sketchup model, I would advice
looking into instances or the mesh object. Create a "short" lamella,
something like one unit length, and export it. Make it a frozen instance
(using oconv -f) or a mesh object (using obj2mesh). Create a small scene
file containing only the mesh or instance primitive for this compiled
geometry. Than build your blinds from this element using an xform array
in your scene file. This will lead to very little memory consumption for
these objects.

If your shading systems consists of lots of blinds, I would even
consider using instances when creating geometry using gensurf (case a).
However in typical scenes, you do not reach critical polygon counts yet.
Radiance is very good in handling lots of surfaces, unless memory gets
used up.

Cheers, Lars.

_______________________________________________
Radiance-general mailing list
[email protected]
http://www.radiance-online.org/mailman/listinfo/radiance-general

Hi Casper,

These blinds have complex geometry - each lamella has multiple curves (for
light redirection), so genblinds is not useful here.

Marija

···

On Fri, Nov 11, 2011 at 11:34 AM, Casper Esmeijer <[email protected]>wrote:

Marija,

Have you considered using genblinds? This may simplify things a bit and
give you more control over the number of surfaces. You could introduce an
object in Sketchup and substitute is afterwards manually or by using
instances.
good luck,
Casper