File: customdiffusespecular.frag

package info (click to toggle)
qt6-quick3d 6.10.2-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 143,588 kB
  • sloc: cpp: 395,989; ansic: 41,469; xml: 288; sh: 242; makefile: 32
file content (27 lines) | stat: -rw-r--r-- 701 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
VARYING vec3 vNormal;
VARYING vec3 vViewVec;

void AMBIENT_LIGHT()
{
    DIFFUSE += TOTAL_AMBIENT_COLOR;
}

void DIRECTIONAL_LIGHT()
{
    DIFFUSE += uDiffuse.rgb * LIGHT_COLOR * SHADOW_CONTRIB * vec3(max(0.0, dot(normalize(vNormal), TO_LIGHT_DIR)));
}

void POINT_LIGHT()
{
    DIFFUSE += uDiffuse.rgb * LIGHT_COLOR * LIGHT_ATTENUATION * SHADOW_CONTRIB * vec3(max(0.0, dot(normalize(vNormal), TO_LIGHT_DIR)));
}

void SPECULAR_LIGHT()
{
    vec3 V = normalize(vViewVec);
    vec3 H = normalize(V + TO_LIGHT_DIR);
    float cosAlpha = max(0.0, dot(H, normalize(vNormal)));
    float shine = pow(cosAlpha, uShininess);
    const vec3 specularColor = vec3(1.0);
    SPECULAR += shine * specularColor;
}