fix double emission
This commit is contained in:
@@ -301,7 +301,9 @@ void main(void) {
|
|||||||
vec3 diffuse = v0.rgb;
|
vec3 diffuse = v0.rgb;
|
||||||
normal = v1.xyz;
|
normal = v1.xyz;
|
||||||
geom_normal = v5.xyz;
|
geom_normal = v5.xyz;
|
||||||
|
#ifndef SPOT
|
||||||
vec3 emission = v3.rgb;
|
vec3 emission = v3.rgb;
|
||||||
|
#endif
|
||||||
float alpha = v0.a;
|
float alpha = v0.a;
|
||||||
float metalness = v2.r;
|
float metalness = v2.r;
|
||||||
float roughness = v2.g;
|
float roughness = v2.g;
|
||||||
@@ -336,7 +338,10 @@ void main(void) {
|
|||||||
vec3 env_dir = view_mat * reflect(-v, normal);
|
vec3 env_dir = view_mat * reflect(-v, normal);
|
||||||
vec3 env_col = textureLod(tex_env, env_dir, sqrt(roughness) * max_lod).rgb * spec_col;
|
vec3 env_col = textureLod(tex_env, env_dir, sqrt(roughness) * max_lod).rgb * spec_col;
|
||||||
|
|
||||||
vec3 res_col = max(vec3(0.), li * diffuse + si * spec_col + emission);
|
vec3 res_col = max(vec3(0.), li * diffuse + si * spec_col);
|
||||||
|
#ifndef SPOT
|
||||||
|
res_col += emission;
|
||||||
|
#endif
|
||||||
res_col = mix(res_col, env_col, env_spec * reflectivity);
|
res_col = mix(res_col, env_col, env_spec * reflectivity);
|
||||||
|
|
||||||
if (bitfieldExtract(flags, 1, 1) == 1) {
|
if (bitfieldExtract(flags, 1, 1) == 1) {
|
||||||
|
|||||||
Reference in New Issue
Block a user