1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-04-01 17:36:21 +03:00
occt/resources/Shaders/PBRPointLight.glsl
Pasukhin Dmitry df4b931988
Configuration - Resource structure reorganization #429
Reorganized resources to keep source part in src and real-time scripts in resource folder.
For the installation result no changes, still installed to src for windows.
2025-03-18 22:54:43 +00:00

28 lines
1.1 KiB
GLSL

//! Function computes contribution of isotropic point light source
//! into global variable DirectLighting (PBR shading).
//! @param theId light source index
//! @param theNormal surface normal
//! @param theView view direction
//! @param thePoint 3D position (world space)
//! @param theIsFront front/back face flag
void occPointLight (in int theId,
in vec3 theNormal,
in vec3 theView,
in vec3 thePoint,
in bool theIsFront)
{
vec3 aLight = occLight_Position (theId) - thePoint;
float aDist = length (aLight);
float aRange = occLight_Range (theId);
float anAtten = occPointLightAttenuation (aDist, aRange);
if (anAtten <= 0.0) return;
aLight /= aDist;
theNormal = theIsFront ? theNormal : -theNormal;
DirectLighting += occPBRIllumination (theView, aLight, theNormal,
BaseColor, Metallic, Roughness, IOR,
occLight_Specular (theId),
occLight_Intensity(theId) * anAtten);
}