Help with transfunc

I am confused about the use of the transfunc. Function files took
me a little while to understand anyways, but what I can't figure out
is how to specify only a change in transmittance in a material.

        mod transfunc id
        2+ brtd funcfile transform
        0
        6+ red green blue rspec trans tspec A7 ..

I'd like to render a mesh object in "x-ray" form, but visualizing
its surface and not its volume. I'd like a material that diffuses
and reflects no light, and transmits light based on the "thickness"
of the surface (assuming that the object is a thin shell of fixed
thickness). I'd like the transmittance to be something like
1.0-(const/Rdot), but when I try the following:

        void transfunc meshcolor
        2 1.0-A5/Rdot .
        0
        6 0.5 0.5 0.5 1 0.66667 1

I've tried several different values for the function, and everything
gives me a totally opaque object, or an "undefined function" error.
I'd like to get something like this:

http://mark.technolope.org/vort3d/bd10/run168_first_sphere/burn1/run05/save_0053.jpg

Mark

Hi Mark,

This is what you want:

void brightfunc trans_mod
2 1-.6667/Rdot .
0

trans_mod trans surf_dens
0
7 1 1 1 0 0 1 1

The modifier will alter the specular transmission, and the trans has no diffuse component or specular reflection. The reason transfunc didn't work for you was because the specularity you can modify is only used for light sources in that material. You could use BRDTfunc, but the above is simpler.

-Greg

···

From: Mark Stock <[email protected]>
Date: January 24, 2004 12:36:37 PM PST

I am confused about the use of the transfunc. Function files took
me a little while to understand anyways, but what I can't figure out
is how to specify only a change in transmittance in a material.

        mod transfunc id
        2+ brtd funcfile transform
        0
        6+ red green blue rspec trans tspec A7 ..

I'd like to render a mesh object in "x-ray" form, but visualizing
its surface and not its volume. I'd like a material that diffuses
and reflects no light, and transmits light based on the "thickness"
of the surface (assuming that the object is a thin shell of fixed
thickness). I'd like the transmittance to be something like
1.0-(const/Rdot), but when I try the following:

        void transfunc meshcolor
        2 1.0-A5/Rdot .
        0
        6 0.5 0.5 0.5 1 0.66667 1

I've tried several different values for the function, and everything
gives me a totally opaque object, or an "undefined function" error.
I'd like to get something like this:

http://mark.technolope.org/vort3d/bd10/run168_first_sphere/burn1/run05/save_0053.jpg

Mark

I tried what you suggest (and some minor variations of that with
rview from a 3.6a release in December. The window popped up and
I saw a handful of multicolored pixels (there's no color at all
in my scene), and then SegFaulted. I'm going to try it with the
new release, and with rpict, and see what's up with that.

Mark

···

On Tue, 27 Jan 2004, Greg Ward wrote:

Hi Mark,

This is what you want:

void brightfunc trans_mod
2 1-.6667/Rdot .
0
0

trans_mod trans surf_dens
0
0
7 1 1 1 0 0 1 1

The modifier will alter the specular transmission, and the trans has no
diffuse component or specular reflection. The reason transfunc didn't
work for you was because the specularity you can modify is only used
for light sources in that material. You could use BRDTfunc, but the
above is simpler.

-Greg

> From: Mark Stock <[email protected]>
> Date: January 24, 2004 12:36:37 PM PST
>
> I am confused about the use of the transfunc. Function files took
> me a little while to understand anyways, but what I can't figure out
> is how to specify only a change in transmittance in a material.
>
> mod transfunc id
> 2+ brtd funcfile transform
> 0
> 6+ red green blue rspec trans tspec A7 ..
>
> I'd like to render a mesh object in "x-ray" form, but visualizing
> its surface and not its volume. I'd like a material that diffuses
> and reflects no light, and transmits light based on the "thickness"
> of the surface (assuming that the object is a thin shell of fixed
> thickness). I'd like the transmittance to be something like
> 1.0-(const/Rdot), but when I try the following:
>
> void transfunc meshcolor
> 2 1.0-A5/Rdot .
> 0
> 6 0.5 0.5 0.5 1 0.66667 1
>
> I've tried several different values for the function, and everything
> gives me a totally opaque object, or an "undefined function" error.
> I'd like to get something like this:
>
> http://mark.technolope.org/vort3d/bd10/run168_first_sphere/burn1/
> run05/save_0053.jpg
>
> Mark

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

Obviously, I should have given this a little more thought. I just
copied the function you had straight into the formula, without
doing anything to keep it in a legal range. The following is better,
but since I don't know what you're trying to do with this formula,
you should probably think about fixing the range or the formula
yourself.

void brightfunc trans_mod
2 bound(0,1-.6667/Rdot,1) .
0
0

trans_mod trans surf_dens
0
0
7 1 1 1 0 0 1 1

Sorry.
-Greg

Quoting Mark Stock <[email protected]>:

···

I tried what you suggest (and some minor variations of that with
rview from a 3.6a release in December. The window popped up and
I saw a handful of multicolored pixels (there's no color at all
in my scene), and then SegFaulted. I'm going to try it with the
new release, and with rpict, and see what's up with that.

Mark

On Tue, 27 Jan 2004, Greg Ward wrote:

> Hi Mark,
>
> This is what you want:
>
> void brightfunc trans_mod
> 2 1-.6667/Rdot .
> 0
> 0
>
> trans_mod trans surf_dens
> 0
> 0
> 7 1 1 1 0 0 1 1
>
> The modifier will alter the specular transmission, and the trans has no
> diffuse component or specular reflection. The reason transfunc didn't
> work for you was because the specularity you can modify is only used
> for light sources in that material. You could use BRDTfunc, but the
> above is simpler.
>
> -Greg
>
> > From: Mark Stock <[email protected]>
> > Date: January 24, 2004 12:36:37 PM PST
> >
> > I am confused about the use of the transfunc. Function files took
> > me a little while to understand anyways, but what I can't figure out
> > is how to specify only a change in transmittance in a material.
> >
> > mod transfunc id
> > 2+ brtd funcfile transform
> > 0
> > 6+ red green blue rspec trans tspec A7 ..
> >
> > I'd like to render a mesh object in "x-ray" form, but visualizing
> > its surface and not its volume. I'd like a material that diffuses
> > and reflects no light, and transmits light based on the "thickness"
> > of the surface (assuming that the object is a thin shell of fixed
> > thickness). I'd like the transmittance to be something like
> > 1.0-(const/Rdot), but when I try the following:
> >
> > void transfunc meshcolor
> > 2 1.0-A5/Rdot .
> > 0
> > 6 0.5 0.5 0.5 1 0.66667 1
> >
> > I've tried several different values for the function, and everything
> > gives me a totally opaque object, or an "undefined function" error.
> > I'd like to get something like this:
> >
> > http://mark.technolope.org/vort3d/bd10/run168_first_sphere/burn1/
> > run05/save_0053.jpg
> >
> > Mark
>
> _______________________________________________
> Radiance-general mailing list
> [email protected]
> http://www.radiance-online.org/mailman/listinfo/radiance-general
>
_______________________________________________
Radiance-general mailing list
[email protected]
http://www.radiance-online.org/mailman/listinfo/radiance-general

Obviously, *I* should have given this more thought. What I
wanted wasn't represented by the formula that I originally
wrote. I mistook the Rdot for 1/Rdot, and I didn't realize
that I needed to flip the normal if I was looking at the
back of the object.

Anyways, I present, then, a Radiance method for rendering
an x-ray of an object:

···

------
# include some background light source
void light bc
0 0 3 1 1 1
bc source back
0 0 4 0 1 0 180

# then, the surface modifiers for every "x-rayed" object
void brightfunc trans_mod
2 0.6+0.35*abs(Rdot) .
0
0

trans_mod trans mc
0
0
7 1 1 1 0 0 1 1
------

And the results:
http://mark.technolope.org/image/p51_droplet_no_6/img02_750.jpg

Mark

On Sat, 31 Jan 2004 [email protected] wrote:

Obviously, I should have given this a little more thought. I just
copied the function you had straight into the formula, without
doing anything to keep it in a legal range. The following is better,
but since I don't know what you're trying to do with this formula,
you should probably think about fixing the range or the formula
yourself.

void brightfunc trans_mod
2 bound(0,1-.6667/Rdot,1) .
0
0

trans_mod trans surf_dens
0
0
7 1 1 1 0 0 1 1

Sorry.
-Greg

Quoting Mark Stock <[email protected]>:

> I tried what you suggest (and some minor variations of that with
> rview from a 3.6a release in December. The window popped up and
> I saw a handful of multicolored pixels (there's no color at all
> in my scene), and then SegFaulted. I'm going to try it with the
> new release, and with rpict, and see what's up with that.
>
> Mark
>
> On Tue, 27 Jan 2004, Greg Ward wrote:
>
> > Hi Mark,
> >
> > This is what you want:
> >
> > void brightfunc trans_mod
> > 2 1-.6667/Rdot .
> > 0
> > 0
> >
> > trans_mod trans surf_dens
> > 0
> > 0
> > 7 1 1 1 0 0 1 1
> >
> > The modifier will alter the specular transmission, and the trans has no
> > diffuse component or specular reflection. The reason transfunc didn't
> > work for you was because the specularity you can modify is only used
> > for light sources in that material. You could use BRDTfunc, but the
> > above is simpler.
> >
> > -Greg
> >
> > > From: Mark Stock <[email protected]>
> > > Date: January 24, 2004 12:36:37 PM PST
> > >
> > > I am confused about the use of the transfunc. Function files took
> > > me a little while to understand anyways, but what I can't figure out
> > > is how to specify only a change in transmittance in a material.
> > >
> > > mod transfunc id
> > > 2+ brtd funcfile transform
> > > 0
> > > 6+ red green blue rspec trans tspec A7 ..
> > >
> > > I'd like to render a mesh object in "x-ray" form, but visualizing
> > > its surface and not its volume. I'd like a material that diffuses
> > > and reflects no light, and transmits light based on the "thickness"
> > > of the surface (assuming that the object is a thin shell of fixed
> > > thickness). I'd like the transmittance to be something like
> > > 1.0-(const/Rdot), but when I try the following:
> > >
> > > void transfunc meshcolor
> > > 2 1.0-A5/Rdot .
> > > 0
> > > 6 0.5 0.5 0.5 1 0.66667 1
> > >
> > > I've tried several different values for the function, and everything
> > > gives me a totally opaque object, or an "undefined function" error.
> > > I'd like to get something like this:
> > >
> > > http://mark.technolope.org/vort3d/bd10/run168_first_sphere/burn1/
> > > run05/save_0053.jpg
> > >
> > > Mark
> >
> > _______________________________________________
> > Radiance-general mailing list
> > [email protected]
> > http://www.radiance-online.org/mailman/listinfo/radiance-general
> >
> _______________________________________________
> Radiance-general mailing list
> [email protected]
> http://www.radiance-online.org/mailman/listinfo/radiance-general
>
>

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