1
0
Fork 0
mirror of https://git.coom.tech/drummyfish/small3dlib.git synced 2024-12-22 01:26:17 +01:00

Continue model viewer

This commit is contained in:
Miloslav Číž 2019-06-07 00:46:40 +02:00
parent 3cc7c20715
commit 2164c46fa1
5 changed files with 5645 additions and 2503 deletions

764
programs/chestModel.h Normal file
View file

@ -0,0 +1,764 @@
#ifndef CHEST_MODEL_H
#define CHEST_MODEL_H
#define CHEST_VERTEX_COUNT 118
const S3L_Unit chestVertices[CHEST_VERTEX_COUNT * 3] = {
1335, -1581, 959, // 0
1504, -822, 1122, // 3
1504, -822, -971, // 6
1335, -1581, -808, // 9
1656, -822, 1273, // 12
1656, -822, -1123, // 15
1451, 823, 707, // 18
1484, 549, 532, // 21
1539, 66, 860, // 24
1521, 214, 1160, // 27
331, -501, -969, // 30
1247, -501, -969, // 33
1163, 101, -875, // 36
287, 95, -875, // 39
223, 647, -479, // 42
250, 794, -562, // 45
313, 179, -1016, // 48
1100, 649, -479, // 51
223, 647, 629, // 54
287, 95, 1026, // 57
313, 179, 1158, // 60
250, 794, 705, // 63
1079, 835, 75, // 66
223, 833, 75, // 69
1100, 649, 629, // 72
1163, 101, 1026, // 75
1247, -501, 1120, // 78
331, -501, 1120, // 81
230, 986, 71, // 84
354, -822, -1123, // 87
357, -502, -1123, // 90
-357, -502, -1123, // 93
-354, -822, -1123, // 96
357, -502, 1265, // 99
1334, 531, 532, // 102
1389, 48, 860, // 105
1156, 172, -1009, // 108
1086, 781, -557, // 111
1389, 48, -709, // 114
1334, 531, -382, // 117
1484, 549, -382, // 120
1539, 66, -709, // 123
1466, -509, 937, // 126
1617, -509, 937, // 129
1451, 823, -557, // 132
1521, 214, -1009, // 135
1466, -509, -787, // 138
1617, -509, -787, // 141
1465, 712, 75, // 144
1428, 1028, 75, // 147
1621, -501, 1273, // 150
1621, -501, -1123, // 153
1315, 695, 75, // 156
1247, -501, -1123, // 159
1247, -501, 1271, // 162
1156, 172, 1160, // 165
1086, 781, 707, // 168
1062, 986, 75, // 171
300, -1121, -892, // 174
348, -822, -971, // 177
300, -1121, -1123, // 180
-1335, -1581, 959, // 183
-1335, -1581, -808, // 186
-1504, -822, -971, // 189
-1504, -822, 1122, // 192
-1656, -822, -1123, // 195
-1656, -822, 1273, // 198
-331, -501, -969, // 201
-287, 95, -875, // 204
-1163, 101, -875, // 207
-1247, -501, -969, // 210
-313, 179, -1016, // 213
-250, 794, -562, // 216
-223, 647, -479, // 219
-1100, 649, -479, // 222
-223, 647, 629, // 225
-250, 794, 705, // 228
-313, 179, 1158, // 231
-287, 95, 1026, // 234
-223, 833, 75, // 237
-1079, 835, 75, // 240
-1100, 649, 629, // 243
-1163, 101, 1026, // 246
-1247, -501, 1120, // 249
-331, -501, 1120, // 252
-230, 986, 71, // 255
-1247, -501, -1123, // 258
-1621, -501, -1123, // 261
-357, -502, 1265, // 264
-1334, 531, 532, // 267
-1484, 549, 532, // 270
-1539, 66, 860, // 273
-1389, 48, 860, // 276
-1086, 781, -557, // 279
-1156, 172, -1009, // 282
-1389, 48, -709, // 285
-1539, 66, -709, // 288
-1484, 549, -382, // 291
-1334, 531, -382, // 294
-1617, -509, 937, // 297
-1466, -509, 937, // 300
-1466, -509, -787, // 303
-1617, -509, -787, // 306
-1465, 712, 75, // 309
-1315, 695, 75, // 312
-1521, 214, -1009, // 315
-1451, 823, -557, // 318
-1247, -501, 1271, // 321
-1621, -501, 1273, // 324
-1521, 214, 1160, // 327
-1156, 172, 1160, // 330
-1451, 823, 707, // 333
-1086, 781, 707, // 336
-1062, 986, 75, // 339
-1428, 1028, 75, // 342
-300, -1121, -892, // 345
-300, -1121, -1123, // 348
-348, -822, -971 // 351
}; // chestVertices
#define CHEST_TRIANGLE_COUNT 232
const S3L_Index chestTriangleIndices[CHEST_TRIANGLE_COUNT * 3] = {
1, 3, 0, // 0
1, 5, 2, // 3
7, 9, 6, // 6
10, 12, 13, // 9
14, 16, 13, // 12
13, 17, 14, // 15
18, 20, 21, // 18
14, 22, 23, // 21
18, 22, 24, // 24
19, 24, 25, // 27
27, 25, 26, // 30
23, 15, 14, // 33
30, 32, 29, // 36
13, 30, 10, // 39
19, 33, 20, // 42
23, 21, 28, // 45
34, 8, 7, // 48
17, 36, 37, // 51
39, 41, 38, // 54
42, 8, 35, // 57
40, 45, 41, // 60
46, 41, 47, // 63
48, 44, 40, // 66
4, 50, 43, // 69
5, 47, 51, // 72
5, 43, 47, // 75
52, 40, 39, // 78
52, 7, 48, // 81
53, 45, 36, // 84
6, 48, 7, // 87
36, 44, 37, // 90
26, 33, 27, // 93
30, 11, 10, // 96
54, 9, 50, // 99
55, 6, 9, // 102
37, 49, 57, // 105
56, 49, 6, // 108
41, 51, 47, // 111
24, 55, 25, // 114
22, 37, 57, // 117
12, 53, 36, // 120
22, 56, 24, // 123
25, 54, 26, // 126
46, 43, 42, // 129
35, 39, 38, // 132
52, 39, 34, // 135
46, 35, 38, // 138
59, 60, 58, // 141
62, 64, 61, // 144
65, 64, 63, // 147
67, 69, 70, // 150
71, 73, 68, // 153
68, 74, 69, // 156
75, 77, 78, // 159
73, 80, 74, // 162
80, 75, 81, // 165
81, 78, 82, // 168
82, 84, 83, // 171
72, 79, 73, // 174
86, 87, 65, // 177
72, 16, 15, // 180
71, 30, 16, // 183
31, 68, 67, // 186
78, 88, 84, // 189
79, 76, 75, // 192
89, 91, 92, // 195
74, 94, 69, // 198
96, 98, 95, // 201
91, 100, 92, // 204
101, 96, 95, // 207
65, 99, 66, // 210
98, 103, 104, // 213
103, 89, 104, // 216
105, 86, 94, // 219
106, 94, 93, // 222
83, 88, 107, // 225
70, 31, 67, // 228
107, 109, 110, // 231
110, 111, 112, // 234
114, 93, 113, // 237
111, 113, 112, // 240
110, 81, 82, // 243
80, 93, 74, // 246
69, 86, 70, // 249
112, 80, 81, // 252
107, 82, 83, // 255
99, 101, 100, // 258
98, 92, 95, // 261
104, 89, 98, // 264
95, 100, 101, // 267
32, 86, 65, // 270
116, 117, 115, // 273
15, 85, 72, // 276
21, 85, 28, // 279
20, 76, 21, // 282
33, 77, 20, // 285
29, 116, 60, // 288
116, 58, 60, // 291
62, 58, 115, // 294
2, 58, 3, // 297
63, 115, 117, // 300
0, 64, 1, // 303
3, 61, 0, // 306
29, 53, 30, // 309
53, 5, 51, // 312
50, 4, 54, // 315
54, 4, 33, // 318
66, 107, 88, // 321
108, 107, 66, // 324
33, 66, 88, // 327
1, 66, 4, // 330
32, 63, 117, // 333
2, 29, 59, // 336
66, 99, 108, // 339
91, 108, 99, // 342
90, 109, 91, // 345
103, 111, 90, // 348
103, 106, 114, // 351
97, 105, 106, // 354
96, 87, 105, // 357
87, 102, 65, // 360
50, 8, 43, // 363
1, 2, 3, // 366
1, 4, 5, // 369
7, 8, 9, // 372
10, 11, 12, // 375
14, 15, 16, // 378
13, 12, 17, // 381
18, 19, 20, // 384
14, 17, 22, // 387
18, 23, 22, // 390
19, 18, 24, // 393
27, 19, 25, // 396
23, 28, 15, // 399
30, 31, 32, // 402
13, 16, 30, // 405
19, 27, 33, // 408
23, 18, 21, // 411
34, 35, 8, // 414
17, 12, 36, // 417
39, 40, 41, // 420
42, 43, 8, // 423
40, 44, 45, // 426
46, 38, 41, // 429
48, 49, 44, // 432
5, 4, 43, // 435
52, 48, 40, // 438
52, 34, 7, // 441
53, 51, 45, // 444
6, 49, 48, // 447
36, 45, 44, // 450
26, 54, 33, // 453
30, 53, 11, // 456
54, 55, 9, // 459
55, 56, 6, // 462
37, 44, 49, // 465
56, 57, 49, // 468
41, 45, 51, // 471
24, 56, 55, // 474
22, 17, 37, // 477
12, 11, 53, // 480
22, 57, 56, // 483
25, 55, 54, // 486
46, 47, 43, // 489
35, 34, 39, // 492
46, 42, 35, // 495
59, 29, 60, // 498
62, 63, 64, // 501
65, 66, 64, // 504
67, 68, 69, // 507
71, 72, 73, // 510
68, 73, 74, // 513
75, 76, 77, // 516
73, 79, 80, // 519
80, 79, 75, // 522
81, 75, 78, // 525
82, 78, 84, // 528
72, 85, 79, // 531
72, 71, 16, // 534
71, 31, 30, // 537
31, 71, 68, // 540
78, 77, 88, // 543
79, 85, 76, // 546
89, 90, 91, // 549
74, 93, 94, // 552
96, 97, 98, // 555
91, 99, 100, // 558
101, 102, 96, // 561
65, 102, 99, // 564
98, 97, 103, // 567
103, 90, 89, // 570
105, 87, 86, // 573
106, 105, 94, // 576
83, 84, 88, // 579
70, 86, 31, // 582
107, 108, 109, // 585
110, 109, 111, // 588
114, 106, 93, // 591
111, 114, 113, // 594
110, 112, 81, // 597
80, 113, 93, // 600
69, 94, 86, // 603
112, 113, 80, // 606
107, 110, 82, // 609
99, 102, 101, // 612
98, 89, 92, // 615
95, 92, 100, // 618
32, 31, 86, // 621
116, 32, 117, // 624
15, 28, 85, // 627
21, 76, 85, // 630
20, 77, 76, // 633
33, 88, 77, // 636
29, 32, 116, // 639
116, 115, 58, // 642
62, 3, 58, // 645
2, 59, 58, // 648
63, 62, 115, // 651
0, 61, 64, // 654
3, 62, 61, // 657
29, 5, 53, // 660
33, 4, 66, // 663
1, 64, 66, // 666
32, 65, 63, // 669
2, 5, 29, // 672
91, 109, 108, // 675
90, 111, 109, // 678
103, 114, 111, // 681
103, 97, 106, // 684
97, 96, 105, // 687
96, 102, 87, // 690
50, 9, 8 // 693
}; // chestTriangleIndices
#define CHEST_UV_COUNT 154
const S3L_Unit chestUVs[CHEST_UV_COUNT * 2] = {
23, 196, // 0
71, 313, // 2
71, 196, // 4
307, 495, // 6
495, 483, // 8
482, 495, // 10
343, 350, // 12
286, 392, // 14
322, 325, // 16
151, 185, // 18
198, 247, // 20
198, 185, // 22
250, 185, // 24
198, 172, // 26
250, 247, // 28
347, 185, // 30
397, 172, // 32
347, 172, // 34
298, 247, // 36
298, 185, // 38
347, 247, // 40
397, 185, // 42
397, 247, // 44
436, 185, // 46
436, 247, // 48
250, 172, // 50
143, 172, // 52
122, 124, // 54
122, 172, // 56
448, 172, // 58
298, 172, // 60
353, 360, // 62
316, 400, // 64
198, 260, // 66
250, 260, // 68
426, 358, // 70
469, 396, // 72
452, 400, // 74
332, 444, // 76
330, 402, // 78
435, 345, // 80
500, 385, // 82
454, 444, // 84
465, 456, // 86
387, 330, // 88
454, 317, // 90
294, 483, // 92
293, 460, // 94
322, 457, // 96
496, 459, // 98
389, 345, // 100
143, 260, // 102
198, 283, // 104
250, 283, // 106
151, 247, // 108
448, 260, // 110
397, 283, // 112
448, 283, // 114
397, 260, // 116
347, 283, // 118
298, 283, // 120
298, 260, // 122
347, 260, // 124
109, 178, // 126
105, 158, // 128
90, 162, // 130
270, 313, // 132
203, 495, // 134
270, 495, // 136
495, 483, // 138
307, 495, // 140
482, 495, // 142
151, 111, // 144
198, 51, // 146
151, 51, // 148
198, 124, // 150
250, 111, // 152
198, 111, // 154
250, 51, // 156
347, 111, // 158
397, 124, // 160
397, 111, // 162
298, 51, // 164
347, 51, // 166
397, 51, // 168
436, 111, // 170
436, 51, // 172
250, 124, // 174
298, 111, // 176
143, 40, // 178
143, 13, // 180
122, 13, // 182
143, 124, // 184
448, 124, // 186
347, 124, // 188
353, 360, // 190
317, 400, // 192
331, 402, // 194
198, 40, // 196
469, 396, // 198
427, 358, // 200
452, 400, // 202
333, 444, // 204
455, 444, // 206
322, 457, // 208
295, 483, // 210
388, 330, // 212
389, 345, // 214
198, 13, // 216
250, 13, // 218
250, 40, // 220
448, 40, // 222
397, 13, // 224
397, 40, // 226
347, 13, // 228
347, 40, // 230
298, 13, // 232
298, 40, // 234
105, 138, // 236
111, 119, // 238
90, 133, // 240
298, 124, // 242
71, 495, // 244
39, 385, // 246
39, 424, // 248
23, 313, // 250
23, 495, // 252
23, 427, // 254
23, 11, // 256
183, 495, // 258
183, 313, // 260
122, 283, // 262
143, 283, // 264
471, 283, // 266
470, 13, // 268
448, 13, // 270
482, 283, // 272
111, 26, // 274
109, 274, // 276
294, 460, // 278
343, 350, // 280
287, 392, // 282
323, 325, // 284
454, 317, // 286
386, 297, // 288
436, 345, // 290
500, 385, // 292
496, 459, // 294
465, 456, // 296
385, 297, // 298
203, 313, // 300
23, 382, // 302
71, 11, // 304
482, 13 // 306
}; // chestUVs
#define CHEST_UV_INDEX_COUNT 232
const S3L_Index chestUVIndices[CHEST_UV_INDEX_COUNT * 3] = {
0, 1, 2, // 0
3, 4, 5, // 3
6, 7, 8, // 6
9, 10, 11, // 9
12, 13, 11, // 12
11, 14, 12, // 15
15, 16, 17, // 18
12, 18, 19, // 21
15, 18, 20, // 24
21, 20, 22, // 27
23, 22, 24, // 30
19, 25, 12, // 33
26, 27, 28, // 36
11, 26, 9, // 39
21, 29, 16, // 42
19, 17, 30, // 45
31, 32, 6, // 48
14, 33, 34, // 51
35, 36, 37, // 54
38, 32, 39, // 57
40, 41, 36, // 60
42, 36, 43, // 63
44, 45, 40, // 66
46, 47, 48, // 69
4, 43, 49, // 72
4, 48, 43, // 75
50, 40, 35, // 78
50, 6, 44, // 81
51, 52, 33, // 84
8, 44, 6, // 87
33, 53, 34, // 90
24, 29, 23, // 93
26, 54, 9, // 96
55, 56, 57, // 99
58, 59, 56, // 102
34, 60, 61, // 105
62, 60, 59, // 108
36, 49, 43, // 111
20, 58, 22, // 114
18, 34, 61, // 117
10, 51, 33, // 120
18, 62, 20, // 123
22, 55, 24, // 126
42, 48, 38, // 129
39, 35, 37, // 132
50, 35, 31, // 135
42, 39, 37, // 138
63, 64, 65, // 141
66, 67, 68, // 144
69, 70, 71, // 147
72, 73, 74, // 150
75, 76, 77, // 153
77, 78, 73, // 156
79, 80, 81, // 159
76, 82, 78, // 162
82, 79, 83, // 165
83, 81, 84, // 168
84, 85, 86, // 171
87, 88, 76, // 174
89, 90, 91, // 177
87, 13, 25, // 180
75, 26, 13, // 183
92, 77, 72, // 186
81, 93, 85, // 189
88, 94, 79, // 192
95, 96, 97, // 195
78, 98, 73, // 198
99, 100, 101, // 201
96, 102, 97, // 204
103, 99, 101, // 207
69, 104, 105, // 210
100, 106, 107, // 213
106, 95, 107, // 216
108, 89, 98, // 219
109, 98, 110, // 222
86, 93, 111, // 225
74, 92, 72, // 228
111, 112, 113, // 231
113, 114, 115, // 234
116, 110, 117, // 237
114, 117, 115, // 240
113, 83, 84, // 243
82, 110, 78, // 246
73, 89, 74, // 249
115, 82, 83, // 252
111, 84, 86, // 255
104, 103, 102, // 258
100, 97, 101, // 261
107, 95, 100, // 264
101, 102, 103, // 267
27, 89, 91, // 270
118, 119, 120, // 273
25, 121, 87, // 276
17, 121, 30, // 279
16, 94, 17, // 282
29, 80, 16, // 285
28, 118, 64, // 288
118, 65, 64, // 291
122, 123, 124, // 294
125, 123, 1, // 297
126, 124, 127, // 300
2, 128, 0, // 303
1, 129, 130, // 306
28, 51, 26, // 309
51, 131, 132, // 312
57, 133, 55, // 315
55, 133, 29, // 318
134, 111, 93, // 321
135, 111, 134, // 324
29, 134, 93, // 327
136, 134, 133, // 330
27, 137, 119, // 333
138, 28, 63, // 336
105, 104, 139, // 339
96, 139, 104, // 342
140, 141, 96, // 345
106, 142, 140, // 348
106, 143, 144, // 351
145, 146, 143, // 354
99, 147, 146, // 357
147, 148, 69, // 360
47, 32, 48, // 363
0, 125, 1, // 366
3, 46, 4, // 369
6, 32, 7, // 372
9, 54, 10, // 375
12, 25, 13, // 378
11, 10, 14, // 381
15, 21, 16, // 384
12, 14, 18, // 387
15, 19, 18, // 390
21, 15, 20, // 393
23, 21, 22, // 396
19, 30, 25, // 399
26, 92, 27, // 402
11, 13, 26, // 405
21, 23, 29, // 408
19, 15, 17, // 411
31, 39, 32, // 414
14, 10, 33, // 417
35, 40, 36, // 420
38, 48, 32, // 423
40, 45, 41, // 426
42, 37, 36, // 429
44, 149, 45, // 432
4, 46, 48, // 435
50, 44, 40, // 438
50, 31, 6, // 441
51, 132, 52, // 444
8, 149, 44, // 447
33, 52, 53, // 450
24, 55, 29, // 453
26, 51, 54, // 456
55, 58, 56, // 459
58, 62, 59, // 462
34, 53, 60, // 465
62, 61, 60, // 468
36, 41, 49, // 471
20, 62, 58, // 474
18, 14, 34, // 477
10, 54, 51, // 480
18, 61, 62, // 483
22, 58, 55, // 486
42, 43, 48, // 489
39, 31, 35, // 492
42, 38, 39, // 495
63, 28, 64, // 498
66, 150, 67, // 501
69, 105, 70, // 504
72, 77, 73, // 507
75, 87, 76, // 510
77, 76, 78, // 513
79, 94, 80, // 516
76, 88, 82, // 519
82, 88, 79, // 522
83, 79, 81, // 525
84, 81, 85, // 528
87, 121, 88, // 531
87, 75, 13, // 534
75, 92, 26, // 537
92, 75, 77, // 540
81, 80, 93, // 543
88, 121, 94, // 546
95, 140, 96, // 549
78, 110, 98, // 552
99, 145, 100, // 555
96, 104, 102, // 558
103, 148, 99, // 561
69, 148, 104, // 564
100, 145, 106, // 567
106, 140, 95, // 570
108, 90, 89, // 573
109, 108, 98, // 576
86, 85, 93, // 579
74, 89, 92, // 582
111, 135, 112, // 585
113, 112, 114, // 588
116, 109, 110, // 591
114, 116, 117, // 594
113, 115, 83, // 597
82, 117, 110, // 600
73, 98, 89, // 603
115, 117, 82, // 606
111, 113, 84, // 609
104, 148, 103, // 612
100, 95, 97, // 615
101, 97, 102, // 618
27, 92, 89, // 621
118, 27, 119, // 624
25, 30, 121, // 627
17, 94, 121, // 630
16, 80, 94, // 633
29, 93, 80, // 636
28, 27, 118, // 639
118, 120, 65, // 642
122, 1, 123, // 645
125, 151, 123, // 648
126, 122, 124, // 651
2, 152, 128, // 654
1, 122, 129, // 657
28, 131, 51, // 660
29, 133, 134, // 663
136, 153, 134, // 666
27, 91, 137, // 669
138, 131, 28, // 672
96, 141, 139, // 675
140, 142, 141, // 678
106, 144, 142, // 681
106, 145, 143, // 684
145, 99, 146, // 687
99, 148, 147, // 690
47, 7, 32 // 693
}; // chestUVIndices
S3L_Model3D chestModel =
{
.vertices = chestVertices,
.vertexCount = CHEST_VERTEX_COUNT,
.triangles = chestTriangleIndices,
.triangleCount = CHEST_TRIANGLE_COUNT
};
#endif // guard

2352
programs/chestTexture.h Normal file

File diff suppressed because it is too large Load diff

View file

@ -1,340 +1,343 @@
#ifndef HOUSE_MODEL_H
#define HOUSE_MODEL_H
const S3L_Unit houseVertices[] = {
1809, 1724, 687, // 0
1809, 1724, 1113, // 3
1635, 775, 914, // 6
1635, 756, 632, // 9
1473, 1724, 1113, // 12
1354, 821, 914, // 15
2070, 1728, 1396, // 18
1489, 795, 632, // 21
1659, 1724, 687, // 24
1563, 1205, -582, // 27
1659, 1724, -1039, // 30
1563, 1208, 217, // 33
188, 1799, 1473, // 36
1473, 1724, 910, // 39
1354, 860, 729, // 42
1240, 3272, -176, // 45
68, 3174, -176, // 48
1644, -57, 636, // 51
1530, -57, 636, // 54
1313, -57, 765, // 57
1313, -57, 1005, // 60
1644, -57, 1005, // 63
602, 814, 728, // 66
539, -57, 768, // 69
637, 1441, 882, // 72
539, -52, 936, // 75
637, 1438, 1124, // 78
464, 1257, 1109, // 81
372, -52, 948, // 84
464, 1259, 845, // 87
372, -57, 748, // 90
1312, 1208, 217, // 93
1489, 817, 204, // 96
1312, 532, 171, // 99
1312, 533, -521, // 102
1312, 1205, -582, // 105
1508, 532, 171, // 108
1508, 533, -521, // 111
1530, -57, -988, // 114
-1672, 1724, 687, // 117
-1498, 751, 632, // 120
-1498, 751, 914, // 123
-1672, 1724, 1113, // 126
-1221, 760, 914, // 129
-1336, 1724, 1113, // 132
-1909, 1747, 1429, // 135
-1523, 1724, 687, // 138
-1352, 814, 632, // 141
-1426, 1213, -494, // 144
-1323, 718, -999, // 147
-1352, 818, -503, // 150
-1221, 782, 729, // 153
-1336, 1724, 910, // 156
-2446, 3393, -278, // 159
-1872, 1747, -1713, // 162
-1393, -57, 636, // 165
-1527, -57, 636, // 168
-1176, -57, 961, // 171
-1176, -57, 765, // 174
-1527, -57, 961, // 177
-402, -57, 768, // 180
-443, 814, 728, // 183
-477, 1410, 882, // 186
-402, -52, 936, // 189
-477, 1407, 1124, // 192
-235, -52, 948, // 195
-304, 1226, 1109, // 198
-235, -57, 748, // 201
-304, 1228, 845, // 204
-1672, 1724, -1039, // 207
-1175, 1213, 142, // 210
-1175, 420, 145, // 213
-1352, 818, 151, // 216
-1426, 1213, 142, // 219
-1371, 420, 145, // 222
-1523, 1724, -1039, // 225
1809, 1724, -1039, // 228
1635, 846, -984, // 231
1635, 814, -1266, // 234
1809, 1695, -1466, // 237
2450, 3634, -227, // 240
-1336, 1724, -1262, // 243
247, 1781, -1527, // 246
1473, 1724, -1262, // 249
1373, 852, -1266, // 252
1473, 1724, -1466, // 255
2042, 1658, -1653, // 258
1489, 846, -984, // 261
1373, 852, -1081, // 264
-1103, 3272, -176, // 267
-1286, 2959, 143, // 270
1644, -57, -988, // 273
1313, -57, -1313, // 276
1313, -57, -1117, // 279
1644, -57, -1313, // 282
1489, 818, -555, // 285
-1672, 1724, -1466, // 288
-1468, 718, -1266, // 291
-1468, 718, -999, // 294
-1336, 1724, -1466, // 297
-1222, 718, -1266, // 300
-1175, 1213, -494, // 303
-1175, 420, -497, // 306
-1222, 718, -1081, // 309
-1507, -57, -988, // 312
-1393, -57, -988, // 315
-1176, -57, -1117, // 318
-1176, -57, -1313, // 321
-1507, -57, -1313, // 324
-1371, 420, -497, // 327
-1405, 2779, 323, // 330
-1257, 3449, 200, // 333
-1442, 3424, 538, // 336
-1712, 3482, 224, // 339
-1589, 2945, 170, // 342
1809, 1724, 1113, // 345
1773, 1724, -1282, // 348
1773, 1724, -1282, // 351
-1672, 1724, 1113, // 354
-1636, 1724, -1282, // 357
-1636, 1724, -1282, // 360
1809, 1724, -1466, // 363
1773, 1724, 930, // 366
1773, 1724, 930, // 369
-1672, 1724, -1466, // 372
-1636, 1724, 930, // 375
-1636, 1724, 930 // 378
#define HOUSE_VERTEX_COUNT 127
const S3L_Unit houseVertices[HOUSE_VERTEX_COUNT * 3] = {
1809, 657, -687, // 0
1635, -291, -914, // 3
1635, -309, -632, // 6
1473, 657, -1113, // 9
1809, 657, -1113, // 12
2070, 661, -1396, // 15
1659, 657, -687, // 18
1659, 657, 1039, // 21
1563, 142, -217, // 24
1563, 138, 582, // 27
1489, -270, -632, // 30
188, 733, -1473, // 33
1354, -245, -914, // 36
1473, 657, -910, // 39
1354, -206, -729, // 42
1240, 2205, 176, // 45
68, 2107, 176, // 48
1530, -1123, -636, // 51
1313, -1123, -765, // 54
1313, -1123, -1005, // 57
1644, -1123, -1005, // 60
1644, -1123, -636, // 63
602, -251, -728, // 66
637, 374, -882, // 69
539, -1118, -936, // 72
637, 372, -1124, // 75
539, -1123, -768, // 78
464, 190, -1109, // 81
372, -1119, -948, // 84
464, 192, -845, // 87
372, -1123, -748, // 90
1312, 142, -217, // 93
1489, -248, -204, // 96
1312, -534, -171, // 99
1312, -533, 521, // 102
1312, 138, 582, // 105
1508, -534, -171, // 108
1508, -533, 521, // 111
1530, -1123, 988, // 114
-1672, 657, -687, // 117
-1498, -315, -914, // 120
-1672, 657, -1113, // 123
-1336, 657, -1113, // 126
-1909, 681, -1429, // 129
-1352, -251, -632, // 132
-1498, -315, -632, // 135
-1426, 146, 494, // 138
-1323, -347, 999, // 141
-1352, -247, 503, // 144
-1221, -305, -914, // 147
-1336, 657, -910, // 150
-2446, 2327, 278, // 153
-1872, 681, 1713, // 156
-1393, -1123, -636, // 159
-1176, -1123, -765, // 162
-1221, -284, -729, // 165
-1176, -1123, -961, // 168
-1527, -1123, -636, // 171
-443, -251, -728, // 174
-477, 343, -882, // 177
-402, -1118, -936, // 180
-402, -1123, -768, // 183
-304, 160, -1109, // 186
-477, 341, -1124, // 189
-235, -1119, -948, // 192
-304, 162, -845, // 195
-1672, 657, 1039, // 198
-1175, 146, -142, // 201
-1175, -645, -145, // 204
-1352, -247, -151, // 207
-1426, 146, -142, // 210
-1371, -645, -145, // 213
-1523, 657, 1039, // 216
1809, 657, 1039, // 219
1635, -251, 1266, // 222
1809, 628, 1466, // 225
2450, 2567, 227, // 228
-1336, 657, 1262, // 231
247, 714, 1527, // 234
1473, 657, 1262, // 237
1473, 657, 1466, // 240
2042, 591, 1653, // 243
1635, -219, 984, // 246
1373, -213, 1266, // 249
-1103, 2205, 176, // 252
-1286, 1892, -143, // 255
1489, -219, 984, // 258
1313, -1123, 1117, // 261
1373, -213, 1081, // 264
1313, -1123, 1313, // 267
1644, -1123, 988, // 270
1489, -248, 555, // 273
-1468, -347, 1266, // 276
-1468, -347, 999, // 279
-1336, 657, 1466, // 282
-1672, 657, 1466, // 285
-1175, 146, 494, // 288
-1523, 657, -687, // 291
-1222, -347, 1266, // 294
-1222, -347, 1081, // 297
-1393, -1123, 988, // 300
-1176, -1123, 1117, // 303
-1176, -1123, 1313, // 306
-1507, -1123, 1313, // 309
-1507, -1123, 988, // 312
-1371, -645, 497, // 315
-1175, -645, 497, // 318
-235, -1123, -748, // 321
-1442, 2357, -538, // 324
-1405, 1712, -323, // 327
-1589, 1878, -170, // 330
-1257, 2383, -200, // 333
-1712, 2416, -224, // 336
-1527, -1123, -961, // 339
1644, -1123, 1313, // 342
-1636, 657, -930, // 345
-1636, 657, -930, // 348
-1672, 657, 1466, // 351
1773, 657, -930, // 354
1773, 657, -930, // 357
1809, 657, 1466, // 360
-1636, 657, 1282, // 363
-1636, 657, 1282, // 366
-1672, 657, -1113, // 369
1773, 657, 1282, // 372
1773, 657, 1282, // 375
1809, 657, -1113 // 378
}; // houseVertices
const S3L_Index houseTriangleIndices[] = {
0, 2, 3, // 0
4, 2, 1, // 3
4, 1, 6, // 6
0, 6, 1, // 9
3, 8, 0, // 12
10, 11, 9, // 15
8, 7, 11, // 18
12, 4, 6, // 21
5, 13, 14, // 24
15, 16, 12, // 27
3, 18, 7, // 30
5, 19, 20, // 33
2, 20, 21, // 36
2, 17, 3, // 39
22, 19, 14, // 42
24, 14, 13, // 45
25, 24, 26, // 48
23, 22, 24, // 51
25, 27, 28, // 54
#define HOUSE_TRIANGLE_COUNT 200
const S3L_Index houseTriangleIndices[HOUSE_TRIANGLE_COUNT * 3] = {
0, 1, 2, // 0
3, 1, 4, // 3
3, 4, 5, // 6
0, 5, 4, // 9
2, 6, 0, // 12
7, 8, 9, // 15
6, 10, 8, // 18
11, 3, 5, // 21
12, 13, 14, // 24
15, 16, 11, // 27
2, 17, 10, // 30
12, 18, 19, // 33
1, 19, 20, // 36
1, 21, 2, // 39
22, 18, 14, // 42
23, 14, 13, // 45
24, 23, 25, // 48
26, 22, 23, // 51
24, 27, 28, // 54
28, 29, 30, // 57
31, 32, 33, // 60
32, 31, 11, // 63
32, 31, 8, // 63
31, 34, 35, // 66
36, 33, 32, // 69
37, 18, 38, // 72
18, 36, 7, // 75
39, 41, 42, // 78
41, 44, 42, // 81
44, 45, 42, // 84
39, 42, 45, // 87
39, 47, 40, // 90
48, 49, 50, // 93
12, 45, 44, // 96
43, 52, 44, // 99
53, 54, 45, // 102
55, 40, 47, // 105
43, 58, 51, // 108
41, 57, 43, // 111
56, 41, 40, // 114
58, 61, 51, // 117
51, 62, 52, // 120
63, 62, 60, // 123
60, 62, 61, // 126
63, 66, 64, // 129
65, 68, 66, // 132
45, 69, 39, // 135
70, 71, 72, // 138
72, 73, 70, // 141
74, 72, 71, // 144
75, 49, 48, // 147
76, 78, 79, // 150
15, 6, 80, // 153
81, 82, 83, // 156
78, 85, 79, // 159
85, 86, 79, // 162
76, 79, 86, // 165
10, 77, 76, // 168
0, 10, 76, // 171
7, 32, 11, // 174
82, 86, 85, // 177
84, 83, 85, // 180
16, 89, 90, // 183
15, 82, 16, // 186
38, 77, 87, // 189
84, 93, 88, // 192
78, 92, 84, // 195
91, 78, 77, // 198
35, 34, 95, // 201
95, 9, 35, // 204
11, 35, 9, // 207
37, 95, 34, // 210
37, 17, 38, // 72
17, 36, 10, // 75
39, 40, 41, // 78
40, 42, 41, // 81
42, 43, 41, // 84
39, 41, 43, // 87
39, 44, 45, // 90
46, 47, 48, // 93
11, 43, 42, // 96
49, 50, 42, // 99
51, 52, 43, // 102
53, 45, 44, // 105
49, 54, 55, // 108
40, 56, 49, // 111
57, 40, 45, // 114
54, 58, 55, // 117
55, 59, 50, // 120
60, 59, 61, // 123
61, 59, 58, // 126
60, 62, 63, // 129
64, 65, 62, // 132
43, 66, 39, // 135
67, 68, 69, // 138
69, 70, 67, // 141
71, 69, 68, // 144
72, 47, 46, // 147
73, 74, 75, // 150
15, 5, 76, // 153
77, 78, 79, // 156
74, 80, 75, // 159
80, 81, 75, // 162
73, 75, 81, // 165
7, 82, 73, // 168
0, 7, 73, // 171
10, 32, 8, // 174
78, 81, 80, // 177
83, 79, 80, // 180
16, 84, 85, // 183
15, 78, 16, // 186
38, 82, 86, // 189
83, 87, 88, // 192
74, 89, 83, // 195
90, 74, 82, // 198
35, 34, 91, // 201
91, 9, 35, // 204
8, 35, 9, // 207
37, 91, 34, // 210
33, 37, 34, // 213
7, 36, 32, // 216
69, 97, 98, // 219
89, 54, 53, // 222
99, 82, 81, // 225
99, 97, 96, // 228
99, 96, 54, // 231
69, 54, 96, // 234
98, 75, 69, // 237
101, 71, 70, // 240
46, 73, 47, // 243
82, 99, 54, // 246
100, 81, 103, // 249
15, 86, 82, // 252
89, 16, 82, // 255
73, 75, 48, // 258
98, 105, 49, // 261
100, 106, 107, // 264
100, 108, 97, // 267
97, 104, 98, // 270
103, 93, 106, // 273
81, 88, 103, // 276
109, 55, 74, // 279
101, 50, 102, // 282
50, 101, 48, // 285
102, 74, 71, // 288
109, 102, 50, // 291
48, 70, 73, // 294
73, 72, 47, // 297
69, 46, 39, // 300
86, 0, 76, // 303
80, 6, 86, // 306
30, 68, 67, // 309
27, 68, 29, // 312
27, 64, 66, // 315
62, 26, 24, // 318
24, 52, 62, // 321
12, 52, 13, // 324
4, 12, 13, // 327
12, 44, 52, // 330
10, 9, 87, // 333
87, 9, 95, // 336
87, 95, 37, // 339
38, 87, 37, // 342
109, 50, 49, // 345
49, 105, 109, // 348
74, 47, 72, // 351
47, 74, 55, // 354
90, 112, 110, // 357
112, 114, 110, // 360
114, 111, 90, // 363
113, 112, 111, // 366
45, 114, 53, // 369
110, 114, 45, // 372
12, 16, 90, // 375
110, 12, 90, // 378
110, 45, 12, // 381
90, 89, 114, // 384
89, 53, 114, // 387
82, 85, 83, // 390
0, 1, 2, // 393
4, 5, 2, // 396
3, 7, 8, // 399
10, 8, 11, // 402
5, 4, 13, // 405
3, 17, 18, // 408
5, 14, 19, // 411
2, 5, 20, // 414
2, 21, 17, // 417
22, 23, 19, // 420
24, 22, 14, // 423
25, 23, 24, // 426
25, 26, 27, // 429
10, 36, 32, // 216
66, 92, 93, // 219
84, 52, 51, // 222
94, 78, 77, // 225
94, 92, 95, // 228
94, 95, 52, // 231
66, 52, 95, // 234
93, 72, 66, // 237
96, 68, 67, // 240
97, 70, 44, // 243
78, 94, 52, // 246
98, 77, 99, // 249
15, 81, 78, // 252
84, 16, 78, // 255
70, 72, 46, // 258
93, 100, 47, // 261
98, 101, 102, // 264
98, 103, 92, // 267
92, 104, 93, // 270
99, 87, 101, // 273
77, 88, 99, // 276
105, 53, 71, // 279
96, 48, 106, // 282
48, 96, 46, // 285
106, 71, 68, // 288
105, 106, 48, // 291
46, 67, 70, // 294
70, 69, 44, // 297
66, 97, 39, // 300
81, 0, 73, // 303
76, 5, 81, // 306
30, 65, 107, // 309
27, 65, 29, // 312
27, 63, 62, // 315
59, 25, 23, // 318
23, 50, 59, // 321
11, 50, 13, // 324
3, 11, 13, // 327
11, 42, 50, // 330
7, 9, 86, // 333
86, 9, 91, // 336
86, 91, 37, // 339
38, 86, 37, // 342
105, 48, 47, // 345
47, 100, 105, // 348
71, 44, 69, // 351
44, 71, 53, // 354
85, 108, 109, // 357
108, 110, 109, // 360
110, 111, 85, // 363
112, 108, 111, // 366
43, 110, 51, // 369
109, 110, 43, // 372
11, 16, 85, // 375
109, 11, 85, // 378
109, 43, 11, // 381
85, 84, 110, // 384
84, 51, 110, // 387
78, 80, 79, // 390
0, 4, 1, // 393
3, 12, 1, // 396
2, 10, 6, // 399
7, 6, 8, // 402
12, 3, 13, // 405
2, 21, 17, // 408
12, 14, 18, // 411
1, 12, 19, // 414
1, 20, 21, // 417
22, 26, 18, // 420
23, 22, 14, // 423
24, 26, 23, // 426
24, 25, 27, // 429
28, 27, 29, // 432
31, 33, 34, // 435
37, 36, 18, // 438
39, 40, 41, // 441
41, 43, 44, // 444
39, 46, 47, // 447
43, 51, 52, // 450
55, 56, 40, // 453
43, 57, 58, // 456
41, 59, 57, // 459
56, 59, 41, // 462
58, 60, 61, // 465
51, 61, 62, // 468
63, 64, 62, // 471
63, 65, 66, // 474
65, 67, 68, // 477
45, 54, 69, // 480
76, 77, 78, // 483
15, 12, 6, // 486
78, 84, 85, // 489
10, 87, 77, // 492
0, 8, 10, // 495
84, 88, 83, // 498
38, 91, 77, // 501
84, 92, 93, // 504
78, 94, 92, // 507
91, 94, 78, // 510
11, 31, 35, // 513
37, 36, 17, // 438
39, 45, 40, // 441
40, 49, 42, // 444
39, 97, 44, // 447
49, 55, 50, // 450
53, 57, 45, // 453
49, 56, 54, // 456
40, 113, 56, // 459
57, 113, 40, // 462
54, 61, 58, // 465
55, 58, 59, // 468
60, 63, 59, // 471
60, 64, 62, // 474
64, 107, 65, // 477
43, 52, 66, // 480
73, 82, 74, // 483
15, 11, 5, // 486
74, 83, 80, // 489
7, 86, 82, // 492
0, 6, 7, // 495
83, 88, 79, // 498
38, 90, 82, // 501
83, 89, 87, // 504
74, 114, 89, // 507
90, 114, 74, // 510
8, 31, 35, // 513
33, 36, 37, // 516
69, 96, 97, // 519
89, 82, 54, // 522
99, 100, 97, // 525
98, 49, 75, // 528
101, 102, 71, // 531
100, 99, 81, // 534
15, 80, 86, // 537
73, 46, 75, // 540
98, 104, 105, // 543
100, 103, 106, // 546
100, 107, 108, // 549
97, 108, 104, // 552
103, 88, 93, // 555
81, 83, 88, // 558
109, 105, 55, // 561
102, 109, 74, // 564
48, 101, 70, // 567
69, 75, 46, // 570
86, 6, 0, // 573
30, 29, 68, // 576
27, 66, 68, // 579
27, 26, 64, // 582
62, 64, 26, // 585
24, 13, 52, // 588
90, 111, 112, // 591
112, 113, 114, // 594
114, 113, 111 // 597
66, 95, 92, // 519
84, 78, 52, // 522
94, 98, 92, // 525
93, 47, 72, // 528
96, 106, 68, // 531
98, 94, 77, // 534
15, 76, 81, // 537
70, 97, 72, // 540
93, 104, 100, // 543
98, 99, 101, // 546
98, 102, 103, // 549
92, 103, 104, // 552
99, 88, 87, // 555
77, 79, 88, // 558
105, 100, 53, // 561
106, 105, 71, // 564
46, 96, 67, // 567
66, 72, 97, // 570
81, 5, 0, // 573
30, 29, 65, // 576
27, 62, 65, // 579
27, 25, 63, // 582
59, 63, 25, // 585
23, 13, 50, // 588
85, 111, 108, // 591
108, 112, 110, // 594
110, 112, 111 // 597
}; // houseTriangleIndices
const S3L_Unit houseUVs[] = {
#define HOUSE_UV_COUNT 173
const S3L_Unit houseUVs[HOUSE_UV_COUNT * 2] = {
279, 174, // 0
166, 140, // 2
166, 174, // 4
@ -510,7 +513,8 @@ const S3L_Unit houseUVs[] = {
425, 407 // 344
}; // houseUVs
const S3L_Index houseUVIndices[] = {
#define HOUSE_UV_INDEX_COUNT 200
const S3L_Index houseUVIndices[HOUSE_UV_INDEX_COUNT * 3] = {
0, 1, 2, // 0
3, 1, 4, // 3
5, 6, 7, // 6
@ -716,9 +720,9 @@ const S3L_Index houseUVIndices[] = {
S3L_Model3D houseModel =
{
.vertices = houseVertices,
.vertexCount = 127,
.vertexCount = HOUSE_VERTEX_COUNT,
.triangles = houseTriangleIndices,
.triangleCount = 200
.triangleCount = HOUSE_TRIANGLE_COUNT
};
#endif // guard

File diff suppressed because it is too large Load diff

View file

@ -27,15 +27,22 @@
#include "houseTexture.h"
#include "houseModel.h"
#include "chestTexture.h"
#include "chestModel.h"
#define TEXTURE_W 128
#define TEXTURE_H 128
S3L_Unit houseNormals[HOUSE_VERTEX_COUNT * 3];
S3L_Unit chestNormals[CHEST_VERTEX_COUNT * 3];
S3L_Model3D model;
S3L_Scene scene;
uint8_t *texture;
const S3L_Unit *uvs;
const S3L_Unit *normals;
const S3L_Index *uvIndices;
S3L_Scene scene;
uint32_t pixels[S3L_RESOLUTION_X * S3L_RESOLUTION_Y];
@ -90,48 +97,48 @@ void drawPixel(S3L_PixelInfo *p)
{
int16_t index = p->triangleIndex * 3;
int16_t i0 = houseUVIndices[index];
int16_t i1 = houseUVIndices[index + 1];
int16_t i2 = houseUVIndices[index + 2];
int16_t i0 = uvIndices[index];
int16_t i1 = uvIndices[index + 1];
int16_t i2 = uvIndices[index + 2];
index = i0 * 2;
uv0[0] = houseUVs[index];
uv0[1] = houseUVs[index + 1];
uv0[0] = uvs[index];
uv0[1] = uvs[index + 1];
index = i1 * 2;
uv1[0] = houseUVs[index];
uv1[1] = houseUVs[index + 1];
uv1[0] = uvs[index];
uv1[1] = uvs[index + 1];
index = i2 * 2;
uv2[0] = houseUVs[index];
uv2[1] = houseUVs[index + 1];
uv2[0] = uvs[index];
uv2[1] = uvs[index + 1];
index = scene.models[p->modelIndex].triangles[p->triangleIndex * 3] * 3;
n0.x = houseNormals[index];
n0.x = normals[index];
index++;
n0.y = houseNormals[index];
n0.y = normals[index];
index++;
n0.z = houseNormals[index];
n0.z = normals[index];
index = scene.models[p->modelIndex].triangles[p->triangleIndex * 3 + 1] * 3;
n1.x = houseNormals[index];
n1.x = normals[index];
index++;
n1.y = houseNormals[index];
n1.y = normals[index];
index++;
n1.z = houseNormals[index];
n1.z = normals[index];
index = scene.models[p->modelIndex].triangles[p->triangleIndex * 3 + 2] * 3;
n2.x = houseNormals[index];
n2.x = normals[index];
index++;
n2.y = houseNormals[index];
n2.y = normals[index];
index++;
n2.z = houseNormals[index];
n2.z = normals[index];
l0 = 256 + S3L_clamp(S3L_dotProductVec3(n0,toLight),-511,511) / 2;
l1 = 256 + S3L_clamp(S3L_dotProductVec3(n1,toLight),-511,511) / 2;
@ -205,9 +212,6 @@ void drawPixel(S3L_PixelInfo *p)
setPixel(p->x,p->y,r,g,b);
}
S3L_Transform3D modelTransform;
S3L_DrawConfig conf;
void draw()
{
S3L_newFrame();
@ -217,6 +221,35 @@ void draw()
S3L_drawScene(scene);
}
void setModel(uint8_t index)
{
#define modelCase(n,m)\
case n:\
{\
texture = m##Texture;\
uvs = m##UVs;\
uvIndices = m##UVIndices;\
normals = m##Normals;\
scene.models[0] = m##Model;\
S3L_computeModelNormals(scene.models[0],m##Normals,0);\
break;\
}
switch (index)
{
modelCase(0,house)
modelCase(1,chest)
default:
break;
}
#undef modelCase
S3L_initTransoform3D(&(scene.models[0].transform));
S3L_initDrawConfig(&(scene.models[0].config));
}
int16_t fps = 0;
int main()
@ -237,21 +270,14 @@ int main()
scene.camera.transform.translation.z = -S3L_FRACTIONS_PER_UNIT * 8;
texture = houseTexture;
scene.modelCount = 1;
scene.models = &model;
scene.models[0] = houseModel;
S3L_initTransoform3D(&(scene.models[0].transform));
S3L_initDrawConfig(&(scene.models[0].config));
S3L_initTransoform3D(&modelTransform);
S3L_initDrawConfig(&conf);
int8_t modelIndex = 0;
int8_t modelsTotal = 2;
setModel(0);
int running = 1;
S3L_computeModelNormals(scene.models[0],houseNormals,1);
clock_t nextPrintT;
@ -287,6 +313,11 @@ int main()
{
if (event.key.keysym.scancode == SDL_SCANCODE_L)
light = !light;
else if (event.key.keysym.scancode == SDL_SCANCODE_SPACE)
{
modelIndex = (modelIndex + 1) % modelsTotal;
setModel(modelIndex);
}
}
}