Skip to main content

<pc-light>

The <pc-light> tag is used to define a light component.

Usage

Attributes

AttributeTypeDefaultDescription
cast-shadowsBoolean"false"Whether the light casts shadows
colorColor"1 1 1"Light color as space-separated RGB values, hex code, or named color
enabledBoolean"true"Enabled state of the component
inner-cone-angleNumber"40"Inner cone angle in degrees (for spot lights)
intensityNumber"1"Light intensity multiplier
normal-offset-biasNumber"0.05"Normal offset bias for shadow rendering
outer-cone-angleNumber"45"Outer cone angle in degrees (for spot lights)
penumbra-falloffNumber"1"PCSS shadow penumbra falloff rate
penumbra-sizeNumber"1"PCSS shadow penumbra size
rangeNumber"10"Light range distance
shadow-biasNumber"0.2"Shadow depth bias
shadow-blocker-samplesNumber"16"Number of PCSS shadow blocker samples
shadow-distanceNumber"16"Maximum shadow rendering distance
shadow-intensityNumber"1"Shadow intensity multiplier
shadow-resolutionNumber"1024"Shadow map resolution
shadow-samplesNumber"16"Number of PCSS shadow samples
shadow-typeEnum"pcf3-32f"Shadow filtering: "pcf1-16f" | "pcf1-32f" | "pcf3-16f" | "pcf3-32f" | "pcf5-16f" | "pcf5-32f" | "vsm-16f" | "vsm-32f" | "pcss-32f"
typeEnum"directional"Light type: "directional" | "omni" | "spot"
vsm-biasNumber"0.01"Variance shadow map bias
vsm-blur-sizeNumber"11"Variance shadow map blur size (1-25)

Example

Try editing the light color, intensity or type values and watch the scene update:

Live Example
<pc-app>
<pc-scene>
<pc-entity name="camera" position="0 2.5 5" rotation="-15 0 0">
<pc-camera clear-color="#1d1f2b"></pc-camera>
</pc-entity>
<!-- A warm spot light shining down (spot lights point down the negative Y axis) -->
<pc-entity name="spot-light" position="-2 4 0">
<pc-light type="spot" color="#ffb47a" intensity="5" outer-cone-angle="35" cast-shadows></pc-light>
</pc-entity>
<!-- A cool omni light between the shapes -->
<pc-entity name="omni-light" position="2 2 1">
<pc-light type="omni" color="#7ab8ff" intensity="2.5" range="10"></pc-light>
</pc-entity>
<!-- Shapes to light -->
<pc-entity name="ground" position="0 -0.5 0" scale="10 1 10">
<pc-render type="box"></pc-render>
</pc-entity>
<pc-entity name="sphere" position="-2 0.5 0">
<pc-render type="sphere"></pc-render>
</pc-entity>
<pc-entity name="box" position="2 0.5 0" rotation="0 30 0">
<pc-render type="box"></pc-render>
</pc-entity>
</pc-scene>
</pc-app>

JavaScript Interface

You can programmatically create and manipulate <pc-light> elements using the LightComponentElement API.