newLight_Dir

From Valve Developer Community
Revision as of 06:36, 29 October 2023 by MyGamepedia (talk | contribs)
Jump to navigation Jump to search
NewLight Dir-Icon-Small.png

newLight_Dir is an e0 available in Black Mesa Black Mesa. It is one of the many new lighting entities available. Black Mesa incorporates new post processor that allowed to implement Godrays and lensflares with some other effets. This entity draw in skybox post processing effect called GodRays, also include disk to imitate sun.

NewLight_Dir in bm_c4a1b.
Black Mesa Level Creation

Keyvalues

Name (targetname) <string>
The name that other entities refer to this entity by.
Parent (parentname) <targetname>
The name of this entity's parent in the movement hierarchy. Entities with parents move with their parent.
Pitch Yaw Roll (Y Z X) (angles) <angle>
This entity's orientation in the world. Pitch is rotation around the Y axis, yaw is the rotation around the Z axis, roll is the rotation around the X axis.
LightEnvEnabled (LightEnvEnabled) <choices>
Grab direction and color values from light_env ?

Determines is the entity use Light_environment direction or its own (just like env_sun).

  • 0: Enabled : Fetch Angles from Light_Env
  • 1: Disabled : Use Manual Angles
PushbackDist (PushbackDist) <float>
PushbackDist.

Determines distance from GodRays to player in skybox.

Examples


EnableGodRays (EnableGodRays) <choices>
Enable GodRays.

Determines whether godrays are enabled or not.

  • 0: Disabled
  • 1: Enabled
Density (Density) <float>
Density Controls the length of rays/volumetric shadows. 1.0 should work in 99% cases. Good values to start from: 0.5 to 1.5.
Examples


Weight (Weight) <float>
Weight Controls the intensity of volumetric shadow. Blocking of rays by geometry. Good values to start from: 0.1 - 10.0.
Examples


Decay (Decay) <float>
Decay NOT being used.
Todo: Document what does it change.
Exposure (Exposure) <float>
Exposure Controls the intensity of Rays during blending pass with main scene. 2.0 is a good start. Good values are 1.0 - 10.0.
Examples


DistFactor (DistFactor) <float>
DistFactor Controls the falloff of rays / length. 1.0f is a good starting value increase or decrease in the increments of 0.1. 0.0 will make the rays dissappear only disk will be rendererd.
Examples


DiskRadius (DiskRadius) <float>
Radius of Disk/circle of sun in texturespace. 1.0 will be full screen 0.5 is half screen etc.
Examples


Note.pngNote:With 0 - will not render.
ColorInner (ColorInner) <color255>
This is the color of the inner circle.
Examples


Note.pngNote:Unlike lighting - brightness of inner depends on fourth number which can be written here.
ColorRays (ColorRays) <color255>
This is the color of the rays.
Examples


Note.pngNote:Unlike lighting - brightness of rays depends on fourth number which can be written here.
DiskInnerSizePercent (DiskInnerSizePercent) <float>
Used only in Fancy Gaphics Mode. Disk inner circle radius = DiskRadius * DiskInnerSizePercent.
Examples


Note.pngNote:With 0 - will not render.
ColorOuter (ColorOuter) <color255>
Used only in Fancy Mode. This is the color of the outer circle.
Examples


Note.pngNote:Unlike lighting - brightness of outer depends on fourth number which can be written here.
UseToneMapDisk (m_bUseToneMapDisk) <choices>
  • 0: Enabled
  • 1: Disabled

Inputs

TurnOnGodRays
Turn the Godrays on.
TurnOffGodRays
Turn the Godrays off.


Outputs

Issues

Engine limit

Level can't have more than one newLight_Dir, otherwise game will crash with this error message. However - you still can spawn new with point_template and kill old if you need to change Godrays position, change color, etc.

If you'll try to use more than one simultaneously.

Incorrect work with $translucent

Godrays (also disk) all time fully rendering through textures with material shader parameter $translucent, because of this you will see unexpected results like in the picture. Disable Godrays when you need or use $alphatest if it'll give resualts similar to $translucent. You also can try use some other tricks to escape this problem.

Bug example in bm_c1a3c.
Sign from other side.

Godrays incorrect work with point_viewcontrol

Godrays change position in sky when player move, this affects to what show point_viewcontrol when it's enabled. If you want to see in your background level Godrays - place player on needed position. If your point_viewcontrol moves - attach player to it.

File:PointViewControlFlareBug.gif
Showcase of problem in background level of Black Mesa: Black Ops - Restored

Godrays render through 3D Skybox objects

Unlike env_sun Godrays (also disk) render through any object pasted in 3D Skybox environment. Keep in mind this before you will create 3D Skybox.

Clear example (the missiles is 3D Skybox objects)
In bs_c3m2b level from Black Mesa: Blue Shift

Godrays incorrect work with cloak

Cloak is a material shader parameter for VertexLitGeneric shader, female assassins use it to make them transparent when they need it. Godrays all time fully render through them.

bm_c2a3c, the sun's rays are not cut off despite the fact that she is completely untransparent right now.

Godrays draw through water

Deferred lighting don't fully draw through water, unlike Godrays.

Black Mesa: Blue Shift - bs_c3m0c.

Godrays can't be displayed in monitors and reflections

Godrays is post process effect that depends on player screen. That means that they can't water reflections or monitors can't show it.

An example.
An example.

Godrays incorrect work with $alphatestreference and $allowalphatocoverage

$alphatestreference is a material shader parameter that specifies the threshold alpha channel value at which the surface should be transparent instead of opaque, default "0.5". $allowalphatocoverage creates translucent steps based on alpha values. For examples used this texture with this alpha channel.

Diffuse texture.
Alpha channel.

Godrays process invisable parts, you can't escape this problem, only minimize effect with $alphatestreference 0.1 or if paint alpha correct channel.

An example.

See Also

Todo: Fix some stuff.