Step 1: Preparations
First and foremost to make projectors even work you have to make sure several options are enabled as follows:
Deferred Rendering - to allow shadows and projectors to work, at all.
Render World Lights - to allow lights not attached to anyone to work, at all.
Render Spotlight Light Refraction - to allow the light cast by projectors to be seen, this includes shadows that are inside the light radius, remember no light, no shadows.
Shadows: Projectors - to allow projectors to cast shadows.
Additionally you should make sure the shadow resolution for both projectors are set to at least 512 (1024 is better and still lower than default but looks more than fine).
If any of these options are not enabled or not working for some reason (unsupported hardware such as Intel GPU's) you'll not be able to see them.
Step 2: Setting up the projector
Right click the ground or any object and select Build to open up the build tools floater, you can do the same by hitting Ctrl + B or Ctrl + 1/2/3/4 for any of the tools directly. Now rez any prim and set it's "Light" property to true, the prim will now emit light, nothing new so far. The magic happens when you select the empty texture select rectangle at the bottom of the same tab you just enabled the "Light" property in (Features tab) and select a texture, if you don't have one handy you can simply use "Blank" at the top, that works too. Accept with "OK" and the light should have vanished like this:
Fear not, you didn't do anything wrong, the reason the light vanished is because the light is now a projector, a projector is a directional light only casting its light into one direction, which by default is below this cube, stupid that. Lifting up the cube will immediately reveal the light being projected below it:
Given everything mentioned above is working and you haven't done anything wrong you should probably already see the projector casting a shadow depending on if something is in it's light such as my Avatar is on the picture.
Step 3: Finetuning
Now that the projector is set up and working you'll have to finetune it. Change the light intensity, radius, falloff and so on. New for projectors are FOV, Focus and Ambiance. FOV simply controls the field of view (how wide the light is), focus sets the amount of blur or sharpness the corners and the projected texture has (if any) and ambiance sets the amount of light in all shadowed areas, essentially setting this up will raise the ambient lighting up to the point of completely eliminating any cast shadows, they will however continue to cast them, taking up resources and a precious shadow spot.
Additional Info
If your projector still does not cast a shadow this might be due to the limitation of a maximum projector shadow amount of 2. You can never have more than 2 projectors that cast shadows at any given time and the Viewer will try to give those shadow spots to the closest 2, this can essentially make a perfectly set up projector not cast a shadow because 2 other projectors are closer and taking up the 2 available shadow spots, keep this in mind.
Two shadow projectors are fine.
A third one cancels the right one out. Try to prevent this at all cost, don't use more than 2.
Sadly we don't have any means of controlling which projectors can cast shadows or not beyond the local option i added labeled as "Shadow" besides the checkbox for the "Light" property. You can use this to prevent a projector from casting a shadow to make room for a more important one doing so but this option is not saved as it is not synchronized to the server. I've written a Jira to get this feature implemented with not much progress so far.
Note that additional projectors will reduce your framerate fast as they take up a lot resources even when not casting shadows, use them carefully.
Thank you, very helpful reminder
ReplyDelete