提交 3b54f69c 编写于 作者: M Mr.doob

Refactored light structs in shaders. Fixed StandardMaterial breakage.

上级 945a88ec
......@@ -31,6 +31,77 @@ struct GeometricContext {
};
#if NUM_DIR_LIGHTS > 0
struct DirectionalLight {
vec3 direction;
vec3 color;
bool shadowEnabled;
float shadowBias;
float shadowRadius;
vec2 shadowMapSize;
mat4 shadowMatrix;
};
uniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];
#endif
#if NUM_SPOT_LIGHTS > 0
struct SpotLight {
vec3 position;
vec3 direction;
vec3 color;
float distance;
float decay;
float angleCos;
float exponent;
bool shadowEnabled;
float shadowBias;
float shadowRadius;
vec2 shadowMapSize;
mat4 shadowMatrix;
};
uniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];
#endif
#if NUM_POINT_LIGHTS > 0
struct PointLight {
vec3 position;
vec3 color;
float distance;
float decay;
bool shadowEnabled;
float shadowBias;
float shadowRadius;
vec2 shadowMapSize;
mat4 shadowMatrix;
};
uniform PointLight pointLights[ NUM_POINT_LIGHTS ];
#endif
#if NUM_HEMI_LIGHTS > 0
struct HemisphereLight {
vec3 direction;
vec3 skyColor;
vec3 groundColor;
};
uniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];
#endif
vec3 transformDirection( in vec3 dir, in mat4 matrix ) {
return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );
......
#if NUM_DIR_LIGHTS > 0
struct DirectionalLight {
vec3 direction;
vec3 color;
bool shadowEnabled;
float shadowBias;
float shadowRadius;
vec2 shadowMapSize;
mat4 shadowMatrix;
};
uniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];
IncidentLight getDirectionalDirectLight( const in DirectionalLight directionalLight, const in GeometricContext geometry ) {
IncidentLight directLight;
......@@ -29,21 +16,6 @@
#if NUM_POINT_LIGHTS > 0
struct PointLight {
vec3 position;
vec3 color;
float distance;
float decay;
bool shadowEnabled;
float shadowBias;
float shadowRadius;
vec2 shadowMapSize;
mat4 shadowMatrix;
};
uniform PointLight pointLights[ NUM_POINT_LIGHTS ];
IncidentLight getPointDirectLight( const in PointLight pointLight, const in GeometricContext geometry ) {
IncidentLight directLight;
......@@ -63,24 +35,6 @@
#if NUM_SPOT_LIGHTS > 0
struct SpotLight {
vec3 position;
vec3 direction;
vec3 color;
float distance;
float decay;
float angleCos;
float exponent;
bool shadowEnabled;
float shadowBias;
float shadowRadius;
vec2 shadowMapSize;
mat4 shadowMatrix;
};
uniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];
IncidentLight getSpotDirectLight( const in SpotLight spotLight, const in GeometricContext geometry ) {
IncidentLight directLight;
......@@ -113,14 +67,6 @@
#if NUM_HEMI_LIGHTS > 0
struct HemisphereLight {
vec3 direction;
vec3 skyColor;
vec3 groundColor;
};
uniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];
vec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in GeometricContext geometry ) {
float dotNL = dot( geometry.normal, hemiLight.direction );
......
......@@ -25,8 +25,6 @@ THREE.ShaderLib = {
THREE.ShaderChunk[ "uv_pars_vertex" ],
THREE.ShaderChunk[ "uv2_pars_vertex" ],
THREE.ShaderChunk[ "envmap_pars_vertex" ],
THREE.ShaderChunk[ "bsdfs" ],
THREE.ShaderChunk[ "lights_pars" ],
THREE.ShaderChunk[ "color_pars_vertex" ],
THREE.ShaderChunk[ "morphtarget_pars_vertex" ],
THREE.ShaderChunk[ "skinning_pars_vertex" ],
......@@ -312,8 +310,6 @@ THREE.ShaderLib = {
THREE.ShaderChunk[ "uv2_pars_vertex" ],
THREE.ShaderChunk[ "displacementmap_pars_vertex" ],
THREE.ShaderChunk[ "envmap_pars_vertex" ],
THREE.ShaderChunk[ "bsdfs" ],
THREE.ShaderChunk[ "lights_pars" ],
THREE.ShaderChunk[ "lights_phong_pars_vertex" ],
THREE.ShaderChunk[ "color_pars_vertex" ],
THREE.ShaderChunk[ "morphtarget_pars_vertex" ],
......@@ -468,8 +464,6 @@ THREE.ShaderLib = {
THREE.ShaderChunk[ "uv2_pars_vertex" ],
THREE.ShaderChunk[ "displacementmap_pars_vertex" ],
THREE.ShaderChunk[ "envmap_pars_vertex" ],
THREE.ShaderChunk[ "bsdfs" ],
THREE.ShaderChunk[ "lights_pars" ],
THREE.ShaderChunk[ "color_pars_vertex" ],
THREE.ShaderChunk[ "morphtarget_pars_vertex" ],
THREE.ShaderChunk[ "skinning_pars_vertex" ],
......@@ -607,8 +601,6 @@ THREE.ShaderLib = {
"uniform float scale;",
THREE.ShaderChunk[ "common" ],
THREE.ShaderChunk[ "bsdfs" ],
THREE.ShaderChunk[ "lights_pars" ],
THREE.ShaderChunk[ "color_pars_vertex" ],
THREE.ShaderChunk[ "shadowmap_pars_vertex" ],
THREE.ShaderChunk[ "logdepthbuf_pars_vertex" ],
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册