---
title: "Mesh Lights in Solaris"
canonical: "https://rmanwiki-27.pixar.com/space/RFH27/544641499/Mesh%20Lights%20in%20Solaris"
format: markdown
---
> ℹ️ Note : For Houdini 21 onwards, please use the *geometrylight *LOP when creating mesh lights

![DemoSign_v01_h264.mov](media://6c72bb5f-e710-4cb1-b4d2-fb92acb74e20)

Rendering mesh lights with RenderMan XPU in other DCCs is straightword.  You simply select the geometry you wish to turn into a mesh light and 

In Solaris there is a little setup to converting geometry into mesh lights, but once completed, we have quite a bit of control over how the mesh light looks and emits light.

As an overview, in Solaris we need to have a material with a Glow parameter assigned to the geometry we wish to turn into a mesh light.


> ℹ️ <span style="color: #ffffff">**USD Asset Setup**</span>

So, in Solaris we have our Neon R sign which was created into a USD asset using the component builder.  

![Neon_Solaris_1.jpg](media://a7526c41-410f-457a-9193-52503a0ba37e)

We have a material with it’s textures that is applied to the sign, neon brackets, neon holes and the pole.

We then have four other shaders, each one is a PxrSurface with Glow enabled and a slight color variation in each one - we have three glowing orange materials and one glowing white material.

![Neon_Solaris_shaders.jpg](media://0c07c6b9-0e6c-494e-8487-bfb36e588de6)

![Neon_Solaris_GlowShader.jpg](media://597215f0-30f6-4a5a-bbd6-452730a4a7c7)

Once all the materials were assigned, the USD asset was written out to disc.


> ℹ️ <span style="color: #ffffff">**Solaris Geometry Lights**</span>

Moving on to our main Solaris setup, the first we do is read in the USD asset of the Neon Sign.

Now comes the mesh light magic and that’s courtest of Solaris’s Geometry Light node.

As you can see from the image below, we have four *geometrylight *nodes, each one creating a mesh light from the prims we define.

![Neon_Solaris_GeometryLights_1.jpg](media://12e106d8-35ce-4503-871d-f7129bcbbd6d)

Breaking this down into one neon tube, let’s take a closer look at the setip.

![Neon_Solaris_GeometryLights_2.jpg](media://75c6c5a2-1630-407f-a201-2145a38ea29f)

In the Primitives parameter, we are telling Solaris/RenderMan which prims we want to turn into a mesh light.  We need to set the API Schema to MeshLightAPI too


The Material Sync Mode has a number of different modes:

**Material Glow Tints Light**

![Neon_Solaris_GeometryLights_MaterialGlow.jpg](media://6f5c1227-caf5-497e-81a4-842b3b2e4aae)

This allows us to use the Glow parameter from the assigned PxrSurface as the initial mesh light intensity and color.  


**Independant**

![Neon_Solaris_GeometryLights_independant.jpg](media://54270d34-8696-4169-9ce6-548c1d110e82)

This enables us to alter the intensity, color and other values independantly from the Glow and demonstrated here with each neon tube emitting a different color from the original glow color.


**No Material Response.**

![Neon_Solaris_GeometryLights_noResponse.jpg](media://b9fdd5e4-f358-4efc-9f5d-93c9425543e2)

This in effect, makes the geometry invisble to camera, yet we can still emit light from the prim(s) and control it’s light values.  We still have our whacky colors, but we don’t see the mesh light prim.

Limitations

Houdini 20.5 and below

> ℹ️ If your scene consists only of mesh lights, Solaris will automatically add a default headlight. This is a known issue, and we are working with SideFX to resolve it. The current workaround is to add a zero-intensity light to your scene to trick Solaris into believing the default headlight isn't needed.

> ℹ️ Currently, you can only turn "Mesh" primitives into mesh lights. Other primitives, such as "Sphere," will not work. In order to get mesh lights working in older versions of USD, we turn the Mesh primitive into a PxrMesh primitive. Both these limitations should be resolved in a future version of Solaris.