Added basic shading and support for up to 100 lights of any color; By default now, states with no lights are dark

This commit is contained in:
grayson committed 2021-09-04 15:51:03 -05:00
1 parent dff0d86558
commit 5c10fdc1a4
35 files changed
+4037 -2664

No files matched your search

@@ -9,32 +9,38 @@ v -1.000000 -1.000000 1.000000
v -1.000000 1.000000 1.000000
v 1.000000 -1.000000 1.000000
v 1.000000 1.000000 1.000000
vt 0.375961 -0.006421
vt 0.625961 0.243579
vt 0.375961 0.243579
vt 0.880422 0.750500
vt 0.630422 0.500500
vt 0.880422 0.500500
vt 0.630422 0.750500
vt 0.380422 0.500500
vt 0.380422 0.750500
vt 0.130422 0.500500
vt 0.380422 0.250500
vt 0.630422 0.250500
vt 0.630422 1.000500
vt 0.625961 -0.006421
vt 0.130422 0.750500
vt 0.380422 1.000500
vt 0.380883 0.000961
vt 0.630883 0.250961
vt 0.380883 0.250961
vt 0.875500 0.748039
vt 0.625500 0.498039
vt 0.875500 0.498039
vt 0.625500 0.748039
vt 0.375500 0.498039
vt 0.375500 0.748039
vt 0.125500 0.498039
vt 0.375500 0.248039
vt 0.625500 0.248039
vt 0.625500 0.998039
vt 0.630883 0.000961
vt 0.125500 0.748039
vt 0.375500 0.998039
vn 0.0000 0.0000 -1.0000
vn 1.0000 0.0000 0.0000
vn 0.0000 0.0000 1.0000
vn -1.0000 0.0000 0.0000
vn 0.0000 -1.0000 0.0000
vn 0.0000 1.0000 0.0000
s off
f 2/1 3/2 1/3
f 4/4 7/5 3/6
f 8/7 5/8 7/5
f 6/9 1/10 5/8
f 7/5 1/11 3/12
f 4/13 6/9 8/7
f 2/1 4/14 3/2
f 4/4 8/7 7/5
f 8/7 6/9 5/8
f 6/9 2/15 1/10
f 7/5 5/8 1/11
f 4/13 2/16 6/9
f 2/1/1 3/2/1 1/3/1
f 4/4/2 7/5/2 3/6/2
f 8/7/3 5/8/3 7/5/3
f 6/9/4 1/10/4 5/8/4
f 7/5/5 1/11/5 3/12/5
f 4/13/6 6/9/6 8/7/6
f 2/1/1 4/14/1 3/2/1
f 4/4/2 8/7/2 7/5/2
f 8/7/3 6/9/3 5/8/3
f 6/9/4 2/15/4 1/10/4
f 7/5/5 5/8/5 1/11/5
f 4/13/6 2/16/6 6/9/6
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

+97 -63
View File
@@ -99,66 +99,100 @@ vt 0.550447 0.383337
vt 0.580294 0.419706
vt 0.616663 0.449553
vt 0.658156 0.471731
s off
f 1/1 33/2 2/3
f 2/3 33/2 3/4
f 3/4 33/2 4/5
f 4/5 33/2 5/6
f 5/6 33/2 6/7
f 6/7 33/2 7/8
f 7/8 33/2 8/9
f 8/9 33/2 9/10
f 9/10 33/2 10/11
f 10/11 33/2 11/12
f 11/12 33/2 12/13
f 12/13 33/2 13/14
f 13/14 33/2 14/15
f 14/15 33/2 15/16
f 15/16 33/2 16/17
f 16/17 33/2 17/18
f 17/18 33/2 18/19
f 18/19 33/2 19/20
f 19/20 33/2 20/21
f 20/21 33/2 21/22
f 21/22 33/2 22/23
f 22/23 33/2 23/24
f 23/24 33/2 24/25
f 24/25 33/2 25/26
f 25/26 33/2 26/27
f 26/27 33/2 27/28
f 27/28 33/2 28/29
f 28/29 33/2 29/30
f 29/30 33/2 30/31
f 30/31 33/2 31/32
f 8/33 16/34 24/35
f 31/32 33/2 32/36
f 32/36 33/2 1/1
f 32/37 1/38 2/39
f 2/39 3/40 4/41
f 4/41 5/42 6/43
f 6/43 7/44 8/33
f 8/33 9/45 10/46
f 10/46 11/47 12/48
f 12/48 13/49 14/50
f 14/50 15/51 16/34
f 16/34 17/52 18/53
f 18/53 19/54 20/55
f 20/55 21/56 22/57
f 22/57 23/58 24/35
f 24/35 25/59 26/60
f 26/60 27/61 24/35
f 27/61 28/62 24/35
f 28/62 29/63 30/64
f 30/64 31/65 28/62
f 31/65 32/37 28/62
f 32/37 2/39 8/33
f 2/39 4/41 8/33
f 4/41 6/43 8/33
f 8/33 10/46 12/48
f 12/48 14/50 8/33
f 14/50 16/34 8/33
f 16/34 18/53 24/35
f 18/53 20/55 24/35
f 20/55 22/57 24/35
f 24/35 28/62 32/37
f 32/37 8/33 24/35
vn 0.0000 0.4472 -0.8944
vn 0.0000 1.0000 0.0000
vn 0.1745 0.4472 -0.8772
vn 0.3423 0.4472 -0.8263
vn 0.4969 0.4472 -0.7437
vn 0.6325 0.4472 -0.6325
vn 0.7437 0.4472 -0.4969
vn 0.8263 0.4472 -0.3423
vn 0.8772 0.4472 -0.1745
vn 0.8944 0.4472 0.0000
vn 0.8772 0.4472 0.1745
vn 0.8263 0.4472 0.3423
vn 0.7437 0.4472 0.4969
vn 0.6325 0.4472 0.6325
vn 0.4969 0.4472 0.7437
vn 0.3423 0.4472 0.8263
vn 0.1745 0.4472 0.8772
vn -0.0000 0.4472 0.8944
vn -0.1745 0.4472 0.8772
vn -0.3423 0.4472 0.8263
vn -0.4969 0.4472 0.7437
vn -0.6325 0.4472 0.6325
vn -0.7437 0.4472 0.4969
vn -0.8263 0.4472 0.3423
vn -0.8772 0.4472 0.1745
vn -0.8944 0.4472 0.0000
vn -0.8772 0.4472 -0.1745
vn -0.8263 0.4472 -0.3423
vn -0.7437 0.4472 -0.4969
vn -0.6325 0.4472 -0.6325
vn -0.4969 0.4472 -0.7437
vn -0.3423 0.4472 -0.8263
vn 0.0000 -1.0000 0.0000
vn -0.1745 0.4472 -0.8772
s 1
f 1/1/1 33/2/2 2/3/3
f 2/3/3 33/2/2 3/4/4
f 3/4/4 33/2/2 4/5/5
f 4/5/5 33/2/2 5/6/6
f 5/6/6 33/2/2 6/7/7
f 6/7/7 33/2/2 7/8/8
f 7/8/8 33/2/2 8/9/9
f 8/9/9 33/2/2 9/10/10
f 9/10/10 33/2/2 10/11/11
f 10/11/11 33/2/2 11/12/12
f 11/12/12 33/2/2 12/13/13
f 12/13/13 33/2/2 13/14/14
f 13/14/14 33/2/2 14/15/15
f 14/15/15 33/2/2 15/16/16
f 15/16/16 33/2/2 16/17/17
f 16/17/17 33/2/2 17/18/18
f 17/18/18 33/2/2 18/19/19
f 18/19/19 33/2/2 19/20/20
f 19/20/20 33/2/2 20/21/21
f 20/21/21 33/2/2 21/22/22
f 21/22/22 33/2/2 22/23/23
f 22/23/23 33/2/2 23/24/24
f 23/24/24 33/2/2 24/25/25
f 24/25/25 33/2/2 25/26/26
f 25/26/26 33/2/2 26/27/27
f 26/27/27 33/2/2 27/28/28
f 27/28/28 33/2/2 28/29/29
f 28/29/29 33/2/2 29/30/30
f 29/30/30 33/2/2 30/31/31
f 30/31/31 33/2/2 31/32/32
f 8/33/33 16/34/33 24/35/33
f 31/32/32 33/2/2 32/36/34
f 32/36/34 33/2/2 1/1/1
f 32/37/33 1/38/33 2/39/33
f 2/39/33 3/40/33 4/41/33
f 4/41/33 5/42/33 6/43/33
f 6/43/33 7/44/33 8/33/33
f 8/33/33 9/45/33 10/46/33
f 10/46/33 11/47/33 12/48/33
f 12/48/33 13/49/33 14/50/33
f 14/50/33 15/51/33 16/34/33
f 16/34/33 17/52/33 18/53/33
f 18/53/33 19/54/33 20/55/33
f 20/55/33 21/56/33 22/57/33
f 22/57/33 23/58/33 24/35/33
f 24/35/33 25/59/33 26/60/33
f 26/60/33 27/61/33 24/35/33
f 27/61/33 28/62/33 24/35/33
f 28/62/33 29/63/33 30/64/33
f 30/64/33 31/65/33 28/62/33
f 31/65/33 32/37/33 28/62/33
f 32/37/33 2/39/33 8/33/33
f 2/39/33 4/41/33 8/33/33
f 4/41/33 6/43/33 8/33/33
f 8/33/33 10/46/33 12/48/33
f 12/48/33 14/50/33 8/33/33
f 14/50/33 16/34/33 8/33/33
f 16/34/33 18/53/33 24/35/33
f 18/53/33 20/55/33 24/35/33
f 20/55/33 22/57/33 24/35/33
f 24/35/33 28/62/33 32/37/33
f 32/37/33 8/33/33 24/35/33
+19 -13
View File
@@ -1,6 +1,6 @@
# Blender v2.93.3 OBJ File: ''
# www.blender.org
o Cube_Cube.001
o Cube_Cube.002
v -1.000000 -1.000000 1.000000
v -1.000000 1.000000 1.000000
v -1.000000 -1.000000 -1.000000
@@ -23,16 +23,22 @@ vt 0.125000 0.500000
vt 0.875000 0.500000
vt 0.625000 1.000000
vt 0.875000 0.750000
vn -1.0000 0.0000 0.0000
vn 0.0000 0.0000 -1.0000
vn 1.0000 0.0000 0.0000
vn 0.0000 0.0000 1.0000
vn 0.0000 -1.0000 0.0000
vn 0.0000 1.0000 0.0000
s off
f 2/1 3/2 1/3
f 4/4 7/5 3/2
f 8/6 5/7 7/5
f 6/8 1/9 5/7
f 7/5 1/10 3/11
f 4/12 6/8 8/6
f 2/1 4/4 3/2
f 4/4 8/6 7/5
f 8/6 6/8 5/7
f 6/8 2/13 1/9
f 7/5 5/7 1/10
f 4/12 2/14 6/8
f 2/1/1 3/2/1 1/3/1
f 4/4/2 7/5/2 3/2/2
f 8/6/3 5/7/3 7/5/3
f 6/8/4 1/9/4 5/7/4
f 7/5/5 1/10/5 3/11/5
f 4/12/6 6/8/6 8/6/6
f 2/1/1 4/4/1 3/2/1
f 4/4/2 8/6/2 7/5/2
f 8/6/3 6/8/3 5/7/3
f 6/8/4 2/13/4 1/9/4
f 7/5/5 5/7/5 1/10/5
f 4/12/6 2/14/6 6/8/6
+159 -125
View File
@@ -195,128 +195,162 @@ vt 0.550447 0.383337
vt 0.580294 0.419706
vt 0.616663 0.449553
vt 0.658156 0.471731
s off
f 2/1 3/2 1/3
f 4/4 5/5 3/2
f 6/6 7/7 5/5
f 8/8 9/9 7/7
f 10/10 11/11 9/9
f 12/12 13/13 11/11
f 14/14 15/15 13/13
f 16/16 17/17 15/15
f 18/18 19/19 17/17
f 20/20 21/21 19/19
f 22/22 23/23 21/21
f 24/24 25/25 23/23
f 26/26 27/27 25/25
f 28/28 29/29 27/27
f 30/30 31/31 29/29
f 32/32 33/33 31/31
f 34/34 35/35 33/33
f 36/36 37/37 35/35
f 38/38 39/39 37/37
f 40/40 41/41 39/39
f 42/42 43/43 41/41
f 44/44 45/45 43/43
f 46/46 47/47 45/45
f 48/48 49/49 47/47
f 50/50 51/51 49/49
f 52/52 53/53 51/51
f 54/54 55/55 53/53
f 56/56 57/57 55/55
f 58/58 59/59 57/57
f 60/60 61/61 59/59
f 54/62 38/63 22/64
f 62/65 63/66 61/61
f 64/67 1/68 63/66
f 15/69 31/70 47/71
f 2/1 4/4 3/2
f 4/4 6/6 5/5
f 6/6 8/8 7/7
f 8/8 10/10 9/9
f 10/10 12/12 11/11
f 12/12 14/14 13/13
f 14/14 16/16 15/15
f 16/16 18/18 17/17
f 18/18 20/20 19/19
f 20/20 22/22 21/21
f 22/22 24/24 23/23
f 24/24 26/26 25/25
f 26/26 28/28 27/27
f 28/28 30/30 29/29
f 30/30 32/32 31/31
f 32/32 34/34 33/33
f 34/34 36/36 35/35
f 36/36 38/38 37/37
f 38/38 40/40 39/39
f 40/40 42/42 41/41
f 42/42 44/44 43/43
f 44/44 46/46 45/45
f 46/46 48/48 47/47
f 48/48 50/50 49/49
f 50/50 52/52 51/51
f 52/52 54/54 53/53
f 54/54 56/56 55/55
f 56/56 58/58 57/57
f 58/58 60/60 59/59
f 60/60 62/65 61/61
f 6/72 4/73 62/74
f 4/73 2/75 62/74
f 2/75 64/76 62/74
f 62/74 60/77 58/78
f 58/78 56/79 62/74
f 56/79 54/62 62/74
f 54/62 52/80 50/81
f 50/81 48/82 46/83
f 46/83 44/84 42/85
f 42/85 40/86 38/63
f 38/63 36/87 34/88
f 34/88 32/89 30/90
f 30/90 28/91 26/92
f 26/92 24/93 22/64
f 22/64 20/94 18/95
f 18/95 16/96 14/97
f 14/97 12/98 10/99
f 10/99 8/100 6/72
f 54/62 50/81 38/63
f 50/81 46/83 38/63
f 46/83 42/85 38/63
f 38/63 34/88 30/90
f 30/90 26/92 38/63
f 26/92 22/64 38/63
f 22/64 18/95 6/72
f 18/95 14/97 6/72
f 14/97 10/99 6/72
f 6/72 62/74 54/62
f 6/72 54/62 22/64
f 62/65 64/67 63/66
f 64/67 2/101 1/68
f 63/102 1/103 3/104
f 3/104 5/105 7/106
f 7/106 9/107 11/108
f 11/108 13/109 15/69
f 15/69 17/110 19/111
f 19/111 21/112 23/113
f 23/113 25/114 27/115
f 27/115 29/116 31/70
f 31/70 33/117 35/118
f 35/118 37/119 39/120
f 39/120 41/121 43/122
f 43/122 45/123 47/71
f 47/71 49/124 51/125
f 51/125 53/126 47/71
f 53/126 55/127 47/71
f 55/127 57/128 59/129
f 59/129 61/130 55/127
f 61/130 63/102 55/127
f 63/102 3/104 15/69
f 3/104 7/106 15/69
f 7/106 11/108 15/69
f 15/69 19/111 23/113
f 23/113 27/115 15/69
f 27/115 31/70 15/69
f 31/70 35/118 47/71
f 35/118 39/120 47/71
f 39/120 43/122 47/71
f 47/71 55/127 63/102
f 63/102 15/69 47/71
vn 0.0000 0.0000 -1.0000
vn 0.1951 0.0000 -0.9808
vn 0.3827 0.0000 -0.9239
vn 0.5556 0.0000 -0.8315
vn 0.7071 0.0000 -0.7071
vn 0.8315 0.0000 -0.5556
vn 0.9239 0.0000 -0.3827
vn 0.9808 0.0000 -0.1951
vn 1.0000 0.0000 0.0000
vn 0.9808 0.0000 0.1951
vn 0.9239 0.0000 0.3827
vn 0.8315 0.0000 0.5556
vn 0.7071 0.0000 0.7071
vn 0.5556 0.0000 0.8315
vn 0.3827 0.0000 0.9239
vn 0.1951 0.0000 0.9808
vn 0.0000 0.0000 1.0000
vn -0.1951 0.0000 0.9808
vn -0.3827 0.0000 0.9239
vn -0.5556 0.0000 0.8315
vn -0.7071 0.0000 0.7071
vn -0.8315 0.0000 0.5556
vn -0.9239 0.0000 0.3827
vn -0.9808 0.0000 0.1951
vn -1.0000 0.0000 0.0000
vn -0.9808 0.0000 -0.1951
vn -0.9239 0.0000 -0.3827
vn -0.8315 0.0000 -0.5556
vn -0.7071 0.0000 -0.7071
vn -0.5556 0.0000 -0.8315
vn -0.3827 0.0000 -0.9239
vn 0.0000 1.0000 -0.0000
vn -0.1951 0.0000 -0.9808
vn 0.0000 -1.0000 0.0000
s 1
f 2/1/1 3/2/2 1/3/1
f 4/4/2 5/5/3 3/2/2
f 6/6/3 7/7/4 5/5/3
f 8/8/4 9/9/5 7/7/4
f 10/10/5 11/11/6 9/9/5
f 12/12/6 13/13/7 11/11/6
f 14/14/7 15/15/8 13/13/7
f 16/16/8 17/17/9 15/15/8
f 18/18/9 19/19/10 17/17/9
f 20/20/10 21/21/11 19/19/10
f 22/22/11 23/23/12 21/21/11
f 24/24/12 25/25/13 23/23/12
f 26/26/13 27/27/14 25/25/13
f 28/28/14 29/29/15 27/27/14
f 30/30/15 31/31/16 29/29/15
f 32/32/16 33/33/17 31/31/16
f 34/34/17 35/35/18 33/33/17
f 36/36/18 37/37/19 35/35/18
f 38/38/19 39/39/20 37/37/19
f 40/40/20 41/41/21 39/39/20
f 42/42/21 43/43/22 41/41/21
f 44/44/22 45/45/23 43/43/22
f 46/46/23 47/47/24 45/45/23
f 48/48/24 49/49/25 47/47/24
f 50/50/25 51/51/26 49/49/25
f 52/52/26 53/53/27 51/51/26
f 54/54/27 55/55/28 53/53/27
f 56/56/28 57/57/29 55/55/28
f 58/58/29 59/59/30 57/57/29
f 60/60/30 61/61/31 59/59/30
f 54/62/32 38/63/32 22/64/32
f 62/65/31 63/66/33 61/61/31
f 64/67/33 1/68/1 63/66/33
f 15/69/34 31/70/34 47/71/34
f 2/1/1 4/4/2 3/2/2
f 4/4/2 6/6/3 5/5/3
f 6/6/3 8/8/4 7/7/4
f 8/8/4 10/10/5 9/9/5
f 10/10/5 12/12/6 11/11/6
f 12/12/6 14/14/7 13/13/7
f 14/14/7 16/16/8 15/15/8
f 16/16/8 18/18/9 17/17/9
f 18/18/9 20/20/10 19/19/10
f 20/20/10 22/22/11 21/21/11
f 22/22/11 24/24/12 23/23/12
f 24/24/12 26/26/13 25/25/13
f 26/26/13 28/28/14 27/27/14
f 28/28/14 30/30/15 29/29/15
f 30/30/15 32/32/16 31/31/16
f 32/32/16 34/34/17 33/33/17
f 34/34/17 36/36/18 35/35/18
f 36/36/18 38/38/19 37/37/19
f 38/38/19 40/40/20 39/39/20
f 40/40/20 42/42/21 41/41/21
f 42/42/21 44/44/22 43/43/22
f 44/44/22 46/46/23 45/45/23
f 46/46/23 48/48/24 47/47/24
f 48/48/24 50/50/25 49/49/25
f 50/50/25 52/52/26 51/51/26
f 52/52/26 54/54/27 53/53/27
f 54/54/27 56/56/28 55/55/28
f 56/56/28 58/58/29 57/57/29
f 58/58/29 60/60/30 59/59/30
f 60/60/30 62/65/31 61/61/31
f 6/72/32 4/73/32 62/74/32
f 4/73/32 2/75/32 62/74/32
f 2/75/32 64/76/32 62/74/32
f 62/74/32 60/77/32 58/78/32
f 58/78/32 56/79/32 62/74/32
f 56/79/32 54/62/32 62/74/32
f 54/62/32 52/80/32 50/81/32
f 50/81/32 48/82/32 46/83/32
f 46/83/32 44/84/32 42/85/32
f 42/85/32 40/86/32 38/63/32
f 38/63/32 36/87/32 34/88/32
f 34/88/32 32/89/32 30/90/32
f 30/90/32 28/91/32 26/92/32
f 26/92/32 24/93/32 22/64/32
f 22/64/32 20/94/32 18/95/32
f 18/95/32 16/96/32 14/97/32
f 14/97/32 12/98/32 10/99/32
f 10/99/32 8/100/32 6/72/32
f 54/62/32 50/81/32 38/63/32
f 50/81/32 46/83/32 38/63/32
f 46/83/32 42/85/32 38/63/32
f 38/63/32 34/88/32 30/90/32
f 30/90/32 26/92/32 38/63/32
f 26/92/32 22/64/32 38/63/32
f 22/64/32 18/95/32 6/72/32
f 18/95/32 14/97/32 6/72/32
f 14/97/32 10/99/32 6/72/32
f 6/72/32 62/74/32 54/62/32
f 6/72/32 54/62/32 22/64/32
f 62/65/31 64/67/33 63/66/33
f 64/67/33 2/101/1 1/68/1
f 63/102/34 1/103/34 3/104/34
f 3/104/34 5/105/34 7/106/34
f 7/106/34 9/107/34 11/108/34
f 11/108/34 13/109/34 15/69/34
f 15/69/34 17/110/34 19/111/34
f 19/111/34 21/112/34 23/113/34
f 23/113/34 25/114/34 27/115/34
f 27/115/34 29/116/34 31/70/34
f 31/70/34 33/117/34 35/118/34
f 35/118/34 37/119/34 39/120/34
f 39/120/34 41/121/34 43/122/34
f 43/122/34 45/123/34 47/71/34
f 47/71/34 49/124/34 51/125/34
f 51/125/34 53/126/34 47/71/34
f 53/126/34 55/127/34 47/71/34
f 55/127/34 57/128/34 59/129/34
f 59/129/34 61/130/34 55/127/34
f 61/130/34 63/102/34 55/127/34
f 63/102/34 3/104/34 15/69/34
f 3/104/34 7/106/34 15/69/34
f 7/106/34 11/108/34 15/69/34
f 15/69/34 19/111/34 23/113/34
f 23/113/34 27/115/34 15/69/34
f 27/115/34 31/70/34 15/69/34
f 31/70/34 35/118/34 47/71/34
f 35/118/34 39/120/34 47/71/34
f 39/120/34 43/122/34 47/71/34
f 47/71/34 55/127/34 63/102/34
f 63/102/34 15/69/34 47/71/34
@@ -9,6 +9,7 @@ vt 1.000000 0.000000
vt 0.000000 1.000000
vt 0.000000 0.000000
vt 1.000000 1.000000
vn 0.0000 1.0000 0.0000
s off
f 2/1 3/2 1/3
f 2/1 4/4 3/2
f 2/1/1 3/2/1 1/3/1
f 2/1/1 4/4/1 3/2/1
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -1,11 +1,65 @@
#version 330 core
in vec2 texCoord;
in vec3 normals;
in vec3 fragPos;
uniform sampler2D tex;
struct Camera {
vec3 pos;
};
out vec4 color;
struct Material {
float shininess;
//Do I want a specular color here?
};
struct Light {
//Directional = 1, Point = 2, Spotlight = 3
int type;
vec3 pos;
vec3 direction;
vec3 color;
float falloffConstant;
float falloffLinear;
float falloffQuad;
float cutoff;
};
uniform sampler2D modelTexture;
uniform Camera camera;
uniform Material material;
uniform Light light[100];
uniform int numberOfLights;
out vec4 outColor;
void main() {
color = texture(tex, texCoord);
vec4 texColor = texture(modelTexture, texCoord);
vec3 color = vec3(0.0);
for (int i = 0; i < numberOfLights; i++) {
float ambientStrength = 0.2f;
vec3 ambient = ambientStrength * texColor.rgb;
if (i == numberOfLights - 1 && numberOfLights == 1) {
color += ambient;
break;
}
vec3 norm = normalize(normals);
vec3 lightDir = normalize(light[i].pos - fragPos);
float diff = max(dot(norm, lightDir), 0.0);
vec3 diffuse = light[i].color * (diff * texColor.rgb);
vec3 viewDir = normalize(camera.pos - fragPos);
vec3 reflectDir = reflect(-lightDir, norm);
float spec = pow(max(dot(viewDir, reflectDir), 0.0), material.shininess * 32.0f);
vec3 specular = light[i].color * spec;
color += (ambient + diffuse + specular);
}
outColor = vec4(color, texColor.a);
}
@@ -2,14 +2,20 @@
layout(location = 0) in vec3 pos;
layout(location = 1) in vec2 texCoords;
layout(location = 2) in vec3 normal;
uniform mat4 model;
uniform mat4 view;
uniform mat4 proj;
out vec2 texCoord;
out vec3 normals;
out vec3 fragPos;
void main() {
gl_Position = proj * view * model * vec4(pos, 1.0);
texCoord = texCoords;
normals = mat3(transpose(inverse(model))) * normal;
fragPos = vec3(model * vec4(pos, 1.0));
gl_Position = proj * view * model * vec4(pos, 1.0);
}