Uploaded image for project: 'Snowstorm'
  1. Snowstorm
  2. STORM-2147

Allow toggling every single projector's ability to cast a shadow separately.

    Details

    • Type: Story
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Labels:

      Description

      Since projectors were added years ago, shortly after Deferred Rendering was implemented, we were limited by the maximum amount of shadows for projectors the Viewer can simultaneously render at any given time to 2. When more than 2 projectors are present the Viewer orders them by priority to decide which one should get one of the 2 available projector shadow slots. This priority is almost exclusively dependent on the distance to your camera, this can create a lot of problems.

      The Problem

      List:

      • We can't control the priority in any way, making the shadows appear and fade out solely depending on distance which is not always optimal.
      • In a room with 2 roof lights to light the room and another 2 lights on the walls to the left and/or right only the closest roof light and a light on the wall will cast a shadow, this creates the problem of the other main roof light that is suppose to cast shadows not actually casting shadows. The shadow spot is basically wasted on a wall light that is closer than the second main light.
      • (OPTIONAL) There's no way to control the shadows of projectors via scripts either, which would allow dynamic control based on certain criteria or even some horror game scenarios for example.

      The Solution

      Adding a checkbox to the Build - Features tab besides the projector spinners similar to the base light checkbox that disables the projector shadow and sets its priority to the minimum, this will allow us to control which projectors we want to have shadows and which shouldn't. It would solve the more-than-2-projectors-room issue. It allows us to set the main roof lights to cast shadows while all others are set to not cast shadows.

      (OPTIONAL) It would also be nice to use the now deprecated PRIM_CAST_SHADOWS prim parameter in scripts to control this new behavior via a script allowing for even more dynamic control and some very special cases. Horror Games for example.
      http://wiki.secondlife.com/wiki/PRIM_CAST_SHADOWS
      We can also always just make a new parameter if the PRIM_CAST_SHADOW isn't descriptive enough.

      Why is it so important?

      As advanced content creator i find the lack of control over projectors and their ability to cast shadows (if enabled) a deal breaker as it makes working with more than 2 projectors impossible unless you are willing to accept the visually "randomness" that the priority system appears to be, giving the free shadow spots seemingly always to the wrong 2 projectors making the scene not appear as intended.

      I added a picture to show this feature in action.

      Testing

      The feature is currently available in the Black Dragon Viewer from 2.6.2 and onward.
      The actual code change for this feature can be found here:
      https://bitbucket.org/NiranV/black-dragon-viewer/commits/709366ab889ee481b4a15c9d20f8ed0a8cfe91d8

        Attachments

          Activity

            People

            • Assignee:
              euclid.linden Euclid Linden
              Reporter:
              niranv.dean NiranV Dean
              Contributor:
              NiranV Dean
            • Watchers:
              8 Start watching this issue

              Dates

              • Created:
                Updated: