Native Radiance geometry extrusion

Hello to the best community all around the world,

I would like to ask If there is a possibility to extrude a curve under some shape, see attached picture.
Or if it makes a big difference if I do it a mesh or some native radiance geometry.

I know there is a hermite curve which we can revolve, but that´s around the Z axis, I would like to really extrude a curve along e.g. X axis or a given vector

It´s for a lightshaft to a basement.

Thank you in advance
Peter Z


Hi Peter,

You can use the genprism program for this, I believe. If you are just trying to generate a single surface, you may want both the -c and -e options in your case. You need to give genprism 2-D coordinates in X and Y, and it extrudes these in (nominally) the Z-direction. You then use xform to rotate it to the desired orientation and position.

Hi @Greg_Ward,
thank you for your reply.
But when I will do it with “geprism” it will extrude a polygon, and it can´t have a curved side,just sraight line , right ? So in general it will be just like a mesh. What I´m looking for is really a smooth surface.

Thank you
Peter Z

There is no fundamental primitive in Radiance for a perfectly smooth surface, unless it’s a sphere or a cone. You can break your mesh up as finely as you like, but in the end it will be comprised of facets.

That said, if smoothness is paramount, you can use the gensurf command with the -s and -o options to output an OBJ file, then feed that into obj2mesh, creating a high-density triangle mesh with surface normal interpolation.

and what about Cylinder, is also not perfectly smooth ?
Thank you for the hint.

Just wondering what will be the difference if we have a perfectly smooth curved reflective surface, and a super small mesh surface with the same shape, did anyone made a study on it ?

A cylinder is technically a type of cone, so it’s also smooth.

There will be small errors between a perfectly modeled reflective surface and a mesh with interpolated surface normals as you might get from gensurf, but I don’t think anyone has studied it. The errors will of course get smaller as the mesh resolution is increased.

If you like, you can define your own surface normal correction in a .cal file to match the first derivative of your spline, so the reflected rays will be in the correct direction, even if the intersection with the mesh surface will still be in slightly the wrong place. (Such errors will become very small at any significant distance, whereas reflection errors due to the surface normal inaccuracy do not decrease with distance.)

Thank you @Greg_Ward, I will then try (hopefully in next 2 weeks) to make a cylinder and cut it into shape and the same meshed form, and see the difference .

Thank you again

Hi Peter,

if it is really that important for your application to have a perfect conical surface geometry, you can try to apply a mixfunc to a full cone/cylinder switching between a given reflection/transmission model and void. The geometry would still be a (perfect) cone or cylinder, but parts of it invisible. I did that to model lenses, an example is in my photon map presentation back from the 2010 workshop (www.radiance-online.org). Yet in most cases, obj or gensurf with normal interpolation will do and be much easier.

Cheers, Lars.

Hi @Lars_Grobe,

Thank you for your insight. But would it not be easier to make a Cone/cylinder and then “cut” the part not needed with antimatter ?
@Lars_Grobe, can you please explain me more how you did the application of the air material where you exactly need it

Thank you,
Peter Z