add support for importing models
This commit is contained in:
parent
3c6acb86fa
commit
011d2edb4c
5
Makefile
5
Makefile
|
@ -1,5 +1,10 @@
|
|||
CFLAGS = -Wall -Wextra -std=c99 -pedantic -O2 -g
|
||||
LIBS = -lSDL2 -lm
|
||||
|
||||
default: serialize out
|
||||
|
||||
serialize: serialize.c types.h
|
||||
$(CC) $(CFLAGS) serialize.c -o $@
|
||||
|
||||
out: main.c types.h
|
||||
$(CC) $(CFLAGS) $(LIBS) main.c -o $@
|
||||
|
|
|
@ -0,0 +1,271 @@
|
|||
# Blender v2.93.5 OBJ File: ''
|
||||
# www.blender.org
|
||||
mtllib cube.mtl
|
||||
o Icosphere_Icosphere.001
|
||||
v 0.000000 -100.000000 0.000000
|
||||
v 72.360733 -44.721951 52.572529
|
||||
v -27.638802 -44.721985 85.064926
|
||||
v -89.442619 -44.721561 0.000000
|
||||
v -27.638802 -44.721985 -85.064926
|
||||
v 72.360733 -44.721951 -52.572529
|
||||
v 27.638802 44.721985 85.064926
|
||||
v -72.360733 44.721951 52.572529
|
||||
v -72.360733 44.721951 -52.572529
|
||||
v 27.638802 44.721985 -85.064926
|
||||
v 89.442619 44.721561 0.000000
|
||||
v 0.000000 100.000000 0.000000
|
||||
v -16.245556 -85.065445 49.999527
|
||||
v 42.532269 -85.065422 30.901140
|
||||
v 26.286882 -52.573765 80.901161
|
||||
v 85.064789 -52.573593 0.000000
|
||||
v 42.532269 -85.065422 -30.901140
|
||||
v -52.572979 -85.065170 0.000000
|
||||
v -68.818939 -52.573620 49.999695
|
||||
v -16.245556 -85.065445 -49.999527
|
||||
v -68.818939 -52.573620 -49.999695
|
||||
v 26.286882 -52.573765 -80.901161
|
||||
v 95.105782 0.000000 30.901262
|
||||
v 95.105782 0.000000 -30.901262
|
||||
v 0.000000 0.000000 99.999992
|
||||
v 58.778561 0.000000 80.901672
|
||||
v -95.105782 0.000000 30.901262
|
||||
v -58.778561 0.000000 80.901672
|
||||
v -58.778561 0.000000 -80.901672
|
||||
v -95.105782 0.000000 -30.901262
|
||||
v 58.778561 0.000000 -80.901672
|
||||
v 0.000000 0.000000 -99.999992
|
||||
v 68.818939 52.573620 49.999695
|
||||
v -26.286882 52.573765 80.901161
|
||||
v -85.064789 52.573593 0.000000
|
||||
v -26.286882 52.573765 -80.901161
|
||||
v 68.818939 52.573620 -49.999695
|
||||
v 16.245556 85.065437 49.999527
|
||||
v 52.572979 85.065170 0.000000
|
||||
v -42.532269 85.065422 30.901140
|
||||
v -42.532269 85.065422 -30.901140
|
||||
v 16.245556 85.065437 -49.999527
|
||||
vt 0.181819 0.000000
|
||||
vt 0.227273 0.078731
|
||||
vt 0.136365 0.078731
|
||||
vt 0.272728 0.157461
|
||||
vt 0.318182 0.078731
|
||||
vt 0.363637 0.157461
|
||||
vt 0.909091 0.000000
|
||||
vt 0.954545 0.078731
|
||||
vt 0.863636 0.078731
|
||||
vt 0.727273 0.000000
|
||||
vt 0.772727 0.078731
|
||||
vt 0.681818 0.078731
|
||||
vt 0.545455 0.000000
|
||||
vt 0.590909 0.078731
|
||||
vt 0.500000 0.078731
|
||||
vt 0.318182 0.236191
|
||||
vt 0.090910 0.157461
|
||||
vt 0.181819 0.157461
|
||||
vt 0.136365 0.236191
|
||||
vt 0.818182 0.157461
|
||||
vt 0.909091 0.157461
|
||||
vt 0.863636 0.236191
|
||||
vt 0.636364 0.157461
|
||||
vt 0.727273 0.157461
|
||||
vt 0.681818 0.236191
|
||||
vt 0.454546 0.157461
|
||||
vt 0.545455 0.157461
|
||||
vt 0.500000 0.236191
|
||||
vt 0.227273 0.236191
|
||||
vt 0.045455 0.236191
|
||||
vt 0.772727 0.236191
|
||||
vt 0.590909 0.236191
|
||||
vt 0.409092 0.236191
|
||||
vt 0.181819 0.314921
|
||||
vt 0.272728 0.314921
|
||||
vt 0.227273 0.393651
|
||||
vt 0.000000 0.314921
|
||||
vt 0.090910 0.314921
|
||||
vt 0.045455 0.393651
|
||||
vt 0.727273 0.314921
|
||||
vt 0.818182 0.314921
|
||||
vt 0.772727 0.393651
|
||||
vt 0.545455 0.314921
|
||||
vt 0.636364 0.314921
|
||||
vt 0.590909 0.393651
|
||||
vt 0.363637 0.314921
|
||||
vt 0.454546 0.314921
|
||||
vt 0.409092 0.393651
|
||||
vt 0.500000 0.393651
|
||||
vt 0.454546 0.472382
|
||||
vt 0.681818 0.393651
|
||||
vt 0.636364 0.472382
|
||||
vt 0.863636 0.393651
|
||||
vt 0.818182 0.472382
|
||||
vt 0.909091 0.314921
|
||||
vt 0.136365 0.393651
|
||||
vt 0.090910 0.472382
|
||||
vt 0.318182 0.393651
|
||||
vt 0.272728 0.472382
|
||||
vt 0.954545 0.236191
|
||||
vt 1.000000 0.157461
|
||||
vt 0.409092 0.078731
|
||||
vt 0.363637 0.000000
|
||||
vn 0.1024 -0.9435 0.3151
|
||||
vn 0.7002 -0.6617 0.2680
|
||||
vn -0.2680 -0.9435 0.1947
|
||||
vn -0.2680 -0.9435 -0.1947
|
||||
vn 0.1024 -0.9435 -0.3151
|
||||
vn 0.9050 -0.3304 0.2680
|
||||
vn 0.0247 -0.3304 0.9435
|
||||
vn -0.8897 -0.3304 0.3151
|
||||
vn -0.5746 -0.3304 -0.7488
|
||||
vn 0.5346 -0.3304 -0.7779
|
||||
vn 0.8026 -0.1256 0.5831
|
||||
vn -0.3066 -0.1256 0.9435
|
||||
vn -0.9921 -0.1256 0.0000
|
||||
vn -0.3066 -0.1256 -0.9435
|
||||
vn 0.8026 -0.1256 -0.5831
|
||||
vn 0.4089 0.6617 0.6284
|
||||
vn -0.4713 0.6617 0.5831
|
||||
vn -0.7002 0.6617 -0.2680
|
||||
vn 0.0385 0.6617 -0.7488
|
||||
vn 0.7240 0.6617 -0.1947
|
||||
vn 0.2680 0.9435 -0.1947
|
||||
vn 0.4911 0.7947 -0.3568
|
||||
vn 0.4089 0.6617 -0.6284
|
||||
vn -0.1024 0.9435 -0.3151
|
||||
vn -0.1876 0.7947 -0.5773
|
||||
vn -0.4713 0.6617 -0.5831
|
||||
vn -0.3313 0.9435 0.0000
|
||||
vn -0.6071 0.7947 0.0000
|
||||
vn -0.7002 0.6617 0.2680
|
||||
vn -0.1024 0.9435 0.3151
|
||||
vn -0.1876 0.7947 0.5773
|
||||
vn 0.0385 0.6617 0.7488
|
||||
vn 0.2680 0.9435 0.1947
|
||||
vn 0.4911 0.7947 0.3568
|
||||
vn 0.7240 0.6617 0.1947
|
||||
vn 0.8897 0.3304 -0.3151
|
||||
vn 0.7947 0.1876 -0.5773
|
||||
vn 0.5746 0.3304 -0.7488
|
||||
vn -0.0247 0.3304 -0.9435
|
||||
vn -0.3035 0.1876 -0.9342
|
||||
vn -0.5346 0.3304 -0.7779
|
||||
vn -0.9050 0.3304 -0.2680
|
||||
vn -0.9822 0.1876 0.0000
|
||||
vn -0.9050 0.3304 0.2680
|
||||
vn -0.5346 0.3304 0.7779
|
||||
vn -0.3035 0.1876 0.9342
|
||||
vn -0.0247 0.3304 0.9435
|
||||
vn 0.5746 0.3304 0.7488
|
||||
vn 0.7947 0.1876 0.5773
|
||||
vn 0.8897 0.3304 0.3151
|
||||
vn 0.3066 0.1256 -0.9435
|
||||
vn 0.3035 -0.1876 -0.9342
|
||||
vn 0.0247 -0.3304 -0.9435
|
||||
vn -0.8026 0.1256 -0.5831
|
||||
vn -0.7947 -0.1876 -0.5773
|
||||
vn -0.8897 -0.3304 -0.3151
|
||||
vn -0.8026 0.1256 0.5831
|
||||
vn -0.7947 -0.1876 0.5773
|
||||
vn -0.5746 -0.3304 0.7488
|
||||
vn 0.3066 0.1256 0.9435
|
||||
vn 0.3035 -0.1876 0.9342
|
||||
vn 0.5346 -0.3304 0.7779
|
||||
vn 0.9921 0.1256 0.0000
|
||||
vn 0.9822 -0.1876 0.0000
|
||||
vn 0.9050 -0.3304 -0.2680
|
||||
vn 0.4713 -0.6617 -0.5831
|
||||
vn 0.1876 -0.7947 -0.5773
|
||||
vn -0.0385 -0.6617 -0.7488
|
||||
vn -0.4089 -0.6617 -0.6284
|
||||
vn -0.4911 -0.7947 -0.3568
|
||||
vn -0.7240 -0.6617 -0.1947
|
||||
vn -0.7240 -0.6617 0.1947
|
||||
vn -0.4911 -0.7947 0.3568
|
||||
vn -0.4089 -0.6617 0.6284
|
||||
vn 0.7002 -0.6617 -0.2680
|
||||
vn 0.6071 -0.7947 0.0000
|
||||
vn 0.3313 -0.9435 0.0000
|
||||
vn -0.0385 -0.6617 0.7488
|
||||
vn 0.1876 -0.7947 0.5773
|
||||
vn 0.4713 -0.6617 0.5831
|
||||
usemtl None
|
||||
s off
|
||||
f 1/1/1 14/2/1 13/3/1
|
||||
f 2/4/2 14/5/2 16/6/2
|
||||
f 1/7/3 13/8/3 18/9/3
|
||||
f 1/10/4 18/11/4 20/12/4
|
||||
f 1/13/5 20/14/5 17/15/5
|
||||
f 2/4/6 16/6/6 23/16/6
|
||||
f 3/17/7 15/18/7 25/19/7
|
||||
f 4/20/8 19/21/8 27/22/8
|
||||
f 5/23/9 21/24/9 29/25/9
|
||||
f 6/26/10 22/27/10 31/28/10
|
||||
f 2/4/11 23/16/11 26/29/11
|
||||
f 3/17/12 25/19/12 28/30/12
|
||||
f 4/20/13 27/22/13 30/31/13
|
||||
f 5/23/14 29/25/14 32/32/14
|
||||
f 6/26/15 31/28/15 24/33/15
|
||||
f 7/34/16 33/35/16 38/36/16
|
||||
f 8/37/17 34/38/17 40/39/17
|
||||
f 9/40/18 35/41/18 41/42/18
|
||||
f 10/43/19 36/44/19 42/45/19
|
||||
f 11/46/20 37/47/20 39/48/20
|
||||
f 39/48/21 42/49/21 12/50/21
|
||||
f 39/48/22 37/47/22 42/49/22
|
||||
f 37/47/23 10/43/23 42/49/23
|
||||
f 42/45/24 41/51/24 12/52/24
|
||||
f 42/45/25 36/44/25 41/51/25
|
||||
f 36/44/26 9/40/26 41/51/26
|
||||
f 41/42/27 40/53/27 12/54/27
|
||||
f 41/42/28 35/41/28 40/53/28
|
||||
f 35/41/29 8/55/29 40/53/29
|
||||
f 40/39/30 38/56/30 12/57/30
|
||||
f 40/39/31 34/38/31 38/56/31
|
||||
f 34/38/32 7/34/32 38/56/32
|
||||
f 38/36/33 39/58/33 12/59/33
|
||||
f 38/36/34 33/35/34 39/58/34
|
||||
f 33/35/35 11/46/35 39/58/35
|
||||
f 24/33/36 37/47/36 11/46/36
|
||||
f 24/33/37 31/28/37 37/47/37
|
||||
f 31/28/38 10/43/38 37/47/38
|
||||
f 32/32/39 36/44/39 10/43/39
|
||||
f 32/32/40 29/25/40 36/44/40
|
||||
f 29/25/41 9/40/41 36/44/41
|
||||
f 30/31/42 35/41/42 9/40/42
|
||||
f 30/31/43 27/22/43 35/41/43
|
||||
f 27/22/44 8/55/44 35/41/44
|
||||
f 28/30/45 34/38/45 8/37/45
|
||||
f 28/30/46 25/19/46 34/38/46
|
||||
f 25/19/47 7/34/47 34/38/47
|
||||
f 26/29/48 33/35/48 7/34/48
|
||||
f 26/29/49 23/16/49 33/35/49
|
||||
f 23/16/50 11/46/50 33/35/50
|
||||
f 31/28/51 32/32/51 10/43/51
|
||||
f 31/28/52 22/27/52 32/32/52
|
||||
f 22/27/53 5/23/53 32/32/53
|
||||
f 29/25/54 30/31/54 9/40/54
|
||||
f 29/25/55 21/24/55 30/31/55
|
||||
f 21/24/56 4/20/56 30/31/56
|
||||
f 27/22/57 28/60/57 8/55/57
|
||||
f 27/22/58 19/21/58 28/60/58
|
||||
f 19/21/59 3/61/59 28/60/59
|
||||
f 25/19/60 26/29/60 7/34/60
|
||||
f 25/19/61 15/18/61 26/29/61
|
||||
f 15/18/62 2/4/62 26/29/62
|
||||
f 23/16/63 24/33/63 11/46/63
|
||||
f 23/16/64 16/6/64 24/33/64
|
||||
f 16/6/65 6/26/65 24/33/65
|
||||
f 17/15/66 22/27/66 6/26/66
|
||||
f 17/15/67 20/14/67 22/27/67
|
||||
f 20/14/68 5/23/68 22/27/68
|
||||
f 20/12/69 21/24/69 5/23/69
|
||||
f 20/12/70 18/11/70 21/24/70
|
||||
f 18/11/71 4/20/71 21/24/71
|
||||
f 18/9/72 19/21/72 4/20/72
|
||||
f 18/9/73 13/8/73 19/21/73
|
||||
f 13/8/74 3/61/74 19/21/74
|
||||
f 16/6/75 17/62/75 6/26/75
|
||||
f 16/6/76 14/5/76 17/62/76
|
||||
f 14/5/77 1/63/77 17/62/77
|
||||
f 13/3/78 15/18/78 3/17/78
|
||||
f 13/3/79 14/2/79 15/18/79
|
||||
f 14/2/80 2/4/80 15/18/80
|
|
@ -0,0 +1,271 @@
|
|||
# Blender v2.93.5 OBJ File: ''
|
||||
# www.blender.org
|
||||
mtllib iso.mtl
|
||||
o Icosphere
|
||||
v 0.000000 -1.000000 0.000000
|
||||
v 0.723607 -0.447220 0.525725
|
||||
v -0.276388 -0.447220 0.850649
|
||||
v -0.894426 -0.447216 0.000000
|
||||
v -0.276388 -0.447220 -0.850649
|
||||
v 0.723607 -0.447220 -0.525725
|
||||
v 0.276388 0.447220 0.850649
|
||||
v -0.723607 0.447220 0.525725
|
||||
v -0.723607 0.447220 -0.525725
|
||||
v 0.276388 0.447220 -0.850649
|
||||
v 0.894426 0.447216 0.000000
|
||||
v 0.000000 1.000000 0.000000
|
||||
v -0.162456 -0.850654 0.499995
|
||||
v 0.425323 -0.850654 0.309011
|
||||
v 0.262869 -0.525738 0.809012
|
||||
v 0.850648 -0.525736 0.000000
|
||||
v 0.425323 -0.850654 -0.309011
|
||||
v -0.525730 -0.850652 0.000000
|
||||
v -0.688189 -0.525736 0.499997
|
||||
v -0.162456 -0.850654 -0.499995
|
||||
v -0.688189 -0.525736 -0.499997
|
||||
v 0.262869 -0.525738 -0.809012
|
||||
v 0.951058 0.000000 0.309013
|
||||
v 0.951058 0.000000 -0.309013
|
||||
v 0.000000 0.000000 1.000000
|
||||
v 0.587786 0.000000 0.809017
|
||||
v -0.951058 0.000000 0.309013
|
||||
v -0.587786 0.000000 0.809017
|
||||
v -0.587786 0.000000 -0.809017
|
||||
v -0.951058 0.000000 -0.309013
|
||||
v 0.587786 0.000000 -0.809017
|
||||
v 0.000000 0.000000 -1.000000
|
||||
v 0.688189 0.525736 0.499997
|
||||
v -0.262869 0.525738 0.809012
|
||||
v -0.850648 0.525736 0.000000
|
||||
v -0.262869 0.525738 -0.809012
|
||||
v 0.688189 0.525736 -0.499997
|
||||
v 0.162456 0.850654 0.499995
|
||||
v 0.525730 0.850652 0.000000
|
||||
v -0.425323 0.850654 0.309011
|
||||
v -0.425323 0.850654 -0.309011
|
||||
v 0.162456 0.850654 -0.499995
|
||||
vt 0.181819 0.000000
|
||||
vt 0.227273 0.078731
|
||||
vt 0.136365 0.078731
|
||||
vt 0.272728 0.157461
|
||||
vt 0.318182 0.078731
|
||||
vt 0.363637 0.157461
|
||||
vt 0.909091 0.000000
|
||||
vt 0.954545 0.078731
|
||||
vt 0.863636 0.078731
|
||||
vt 0.727273 0.000000
|
||||
vt 0.772727 0.078731
|
||||
vt 0.681818 0.078731
|
||||
vt 0.545455 0.000000
|
||||
vt 0.590909 0.078731
|
||||
vt 0.500000 0.078731
|
||||
vt 0.318182 0.236191
|
||||
vt 0.090910 0.157461
|
||||
vt 0.181819 0.157461
|
||||
vt 0.136365 0.236191
|
||||
vt 0.818182 0.157461
|
||||
vt 0.909091 0.157461
|
||||
vt 0.863636 0.236191
|
||||
vt 0.636364 0.157461
|
||||
vt 0.727273 0.157461
|
||||
vt 0.681818 0.236191
|
||||
vt 0.454546 0.157461
|
||||
vt 0.545455 0.157461
|
||||
vt 0.500000 0.236191
|
||||
vt 0.227273 0.236191
|
||||
vt 0.045455 0.236191
|
||||
vt 0.772727 0.236191
|
||||
vt 0.590909 0.236191
|
||||
vt 0.409092 0.236191
|
||||
vt 0.181819 0.314921
|
||||
vt 0.272728 0.314921
|
||||
vt 0.227273 0.393651
|
||||
vt 0.000000 0.314921
|
||||
vt 0.090910 0.314921
|
||||
vt 0.045455 0.393651
|
||||
vt 0.727273 0.314921
|
||||
vt 0.818182 0.314921
|
||||
vt 0.772727 0.393651
|
||||
vt 0.545455 0.314921
|
||||
vt 0.636364 0.314921
|
||||
vt 0.590909 0.393651
|
||||
vt 0.363637 0.314921
|
||||
vt 0.454546 0.314921
|
||||
vt 0.409092 0.393651
|
||||
vt 0.500000 0.393651
|
||||
vt 0.454546 0.472382
|
||||
vt 0.681818 0.393651
|
||||
vt 0.636364 0.472382
|
||||
vt 0.863636 0.393651
|
||||
vt 0.818182 0.472382
|
||||
vt 0.909091 0.314921
|
||||
vt 0.136365 0.393651
|
||||
vt 0.090910 0.472382
|
||||
vt 0.318182 0.393651
|
||||
vt 0.272728 0.472382
|
||||
vt 0.954545 0.236191
|
||||
vt 1.000000 0.157461
|
||||
vt 0.409092 0.078731
|
||||
vt 0.363637 0.000000
|
||||
vn 0.1024 -0.9435 0.3151
|
||||
vn 0.7002 -0.6617 0.2680
|
||||
vn -0.2680 -0.9435 0.1947
|
||||
vn -0.2680 -0.9435 -0.1947
|
||||
vn 0.1024 -0.9435 -0.3151
|
||||
vn 0.9050 -0.3304 0.2680
|
||||
vn 0.0247 -0.3304 0.9435
|
||||
vn -0.8897 -0.3304 0.3151
|
||||
vn -0.5746 -0.3304 -0.7488
|
||||
vn 0.5346 -0.3304 -0.7779
|
||||
vn 0.8026 -0.1256 0.5831
|
||||
vn -0.3066 -0.1256 0.9435
|
||||
vn -0.9921 -0.1256 0.0000
|
||||
vn -0.3066 -0.1256 -0.9435
|
||||
vn 0.8026 -0.1256 -0.5831
|
||||
vn 0.4089 0.6617 0.6284
|
||||
vn -0.4713 0.6617 0.5831
|
||||
vn -0.7002 0.6617 -0.2680
|
||||
vn 0.0385 0.6617 -0.7488
|
||||
vn 0.7240 0.6617 -0.1947
|
||||
vn 0.2680 0.9435 -0.1947
|
||||
vn 0.4911 0.7947 -0.3568
|
||||
vn 0.4089 0.6617 -0.6284
|
||||
vn -0.1024 0.9435 -0.3151
|
||||
vn -0.1876 0.7947 -0.5773
|
||||
vn -0.4713 0.6617 -0.5831
|
||||
vn -0.3313 0.9435 0.0000
|
||||
vn -0.6071 0.7947 0.0000
|
||||
vn -0.7002 0.6617 0.2680
|
||||
vn -0.1024 0.9435 0.3151
|
||||
vn -0.1876 0.7947 0.5773
|
||||
vn 0.0385 0.6617 0.7488
|
||||
vn 0.2680 0.9435 0.1947
|
||||
vn 0.4911 0.7947 0.3568
|
||||
vn 0.7240 0.6617 0.1947
|
||||
vn 0.8897 0.3304 -0.3151
|
||||
vn 0.7947 0.1876 -0.5773
|
||||
vn 0.5746 0.3304 -0.7488
|
||||
vn -0.0247 0.3304 -0.9435
|
||||
vn -0.3035 0.1876 -0.9342
|
||||
vn -0.5346 0.3304 -0.7779
|
||||
vn -0.9050 0.3304 -0.2680
|
||||
vn -0.9822 0.1876 0.0000
|
||||
vn -0.9050 0.3304 0.2680
|
||||
vn -0.5346 0.3304 0.7779
|
||||
vn -0.3035 0.1876 0.9342
|
||||
vn -0.0247 0.3304 0.9435
|
||||
vn 0.5746 0.3304 0.7488
|
||||
vn 0.7947 0.1876 0.5773
|
||||
vn 0.8897 0.3304 0.3151
|
||||
vn 0.3066 0.1256 -0.9435
|
||||
vn 0.3035 -0.1876 -0.9342
|
||||
vn 0.0247 -0.3304 -0.9435
|
||||
vn -0.8026 0.1256 -0.5831
|
||||
vn -0.7947 -0.1876 -0.5773
|
||||
vn -0.8897 -0.3304 -0.3151
|
||||
vn -0.8026 0.1256 0.5831
|
||||
vn -0.7947 -0.1876 0.5773
|
||||
vn -0.5746 -0.3304 0.7488
|
||||
vn 0.3066 0.1256 0.9435
|
||||
vn 0.3035 -0.1876 0.9342
|
||||
vn 0.5346 -0.3304 0.7779
|
||||
vn 0.9921 0.1256 0.0000
|
||||
vn 0.9822 -0.1876 0.0000
|
||||
vn 0.9050 -0.3304 -0.2680
|
||||
vn 0.4713 -0.6617 -0.5831
|
||||
vn 0.1876 -0.7947 -0.5773
|
||||
vn -0.0385 -0.6617 -0.7488
|
||||
vn -0.4089 -0.6617 -0.6284
|
||||
vn -0.4911 -0.7947 -0.3568
|
||||
vn -0.7240 -0.6617 -0.1947
|
||||
vn -0.7240 -0.6617 0.1947
|
||||
vn -0.4911 -0.7947 0.3568
|
||||
vn -0.4089 -0.6617 0.6284
|
||||
vn 0.7002 -0.6617 -0.2680
|
||||
vn 0.6071 -0.7947 0.0000
|
||||
vn 0.3313 -0.9435 0.0000
|
||||
vn -0.0385 -0.6617 0.7488
|
||||
vn 0.1876 -0.7947 0.5773
|
||||
vn 0.4713 -0.6617 0.5831
|
||||
usemtl None
|
||||
s off
|
||||
f 1/1/1 14/2/1 13/3/1
|
||||
f 2/4/2 14/5/2 16/6/2
|
||||
f 1/7/3 13/8/3 18/9/3
|
||||
f 1/10/4 18/11/4 20/12/4
|
||||
f 1/13/5 20/14/5 17/15/5
|
||||
f 2/4/6 16/6/6 23/16/6
|
||||
f 3/17/7 15/18/7 25/19/7
|
||||
f 4/20/8 19/21/8 27/22/8
|
||||
f 5/23/9 21/24/9 29/25/9
|
||||
f 6/26/10 22/27/10 31/28/10
|
||||
f 2/4/11 23/16/11 26/29/11
|
||||
f 3/17/12 25/19/12 28/30/12
|
||||
f 4/20/13 27/22/13 30/31/13
|
||||
f 5/23/14 29/25/14 32/32/14
|
||||
f 6/26/15 31/28/15 24/33/15
|
||||
f 7/34/16 33/35/16 38/36/16
|
||||
f 8/37/17 34/38/17 40/39/17
|
||||
f 9/40/18 35/41/18 41/42/18
|
||||
f 10/43/19 36/44/19 42/45/19
|
||||
f 11/46/20 37/47/20 39/48/20
|
||||
f 39/48/21 42/49/21 12/50/21
|
||||
f 39/48/22 37/47/22 42/49/22
|
||||
f 37/47/23 10/43/23 42/49/23
|
||||
f 42/45/24 41/51/24 12/52/24
|
||||
f 42/45/25 36/44/25 41/51/25
|
||||
f 36/44/26 9/40/26 41/51/26
|
||||
f 41/42/27 40/53/27 12/54/27
|
||||
f 41/42/28 35/41/28 40/53/28
|
||||
f 35/41/29 8/55/29 40/53/29
|
||||
f 40/39/30 38/56/30 12/57/30
|
||||
f 40/39/31 34/38/31 38/56/31
|
||||
f 34/38/32 7/34/32 38/56/32
|
||||
f 38/36/33 39/58/33 12/59/33
|
||||
f 38/36/34 33/35/34 39/58/34
|
||||
f 33/35/35 11/46/35 39/58/35
|
||||
f 24/33/36 37/47/36 11/46/36
|
||||
f 24/33/37 31/28/37 37/47/37
|
||||
f 31/28/38 10/43/38 37/47/38
|
||||
f 32/32/39 36/44/39 10/43/39
|
||||
f 32/32/40 29/25/40 36/44/40
|
||||
f 29/25/41 9/40/41 36/44/41
|
||||
f 30/31/42 35/41/42 9/40/42
|
||||
f 30/31/43 27/22/43 35/41/43
|
||||
f 27/22/44 8/55/44 35/41/44
|
||||
f 28/30/45 34/38/45 8/37/45
|
||||
f 28/30/46 25/19/46 34/38/46
|
||||
f 25/19/47 7/34/47 34/38/47
|
||||
f 26/29/48 33/35/48 7/34/48
|
||||
f 26/29/49 23/16/49 33/35/49
|
||||
f 23/16/50 11/46/50 33/35/50
|
||||
f 31/28/51 32/32/51 10/43/51
|
||||
f 31/28/52 22/27/52 32/32/52
|
||||
f 22/27/53 5/23/53 32/32/53
|
||||
f 29/25/54 30/31/54 9/40/54
|
||||
f 29/25/55 21/24/55 30/31/55
|
||||
f 21/24/56 4/20/56 30/31/56
|
||||
f 27/22/57 28/60/57 8/55/57
|
||||
f 27/22/58 19/21/58 28/60/58
|
||||
f 19/21/59 3/61/59 28/60/59
|
||||
f 25/19/60 26/29/60 7/34/60
|
||||
f 25/19/61 15/18/61 26/29/61
|
||||
f 15/18/62 2/4/62 26/29/62
|
||||
f 23/16/63 24/33/63 11/46/63
|
||||
f 23/16/64 16/6/64 24/33/64
|
||||
f 16/6/65 6/26/65 24/33/65
|
||||
f 17/15/66 22/27/66 6/26/66
|
||||
f 17/15/67 20/14/67 22/27/67
|
||||
f 20/14/68 5/23/68 22/27/68
|
||||
f 20/12/69 21/24/69 5/23/69
|
||||
f 20/12/70 18/11/70 21/24/70
|
||||
f 18/11/71 4/20/71 21/24/71
|
||||
f 18/9/72 19/21/72 4/20/72
|
||||
f 18/9/73 13/8/73 19/21/73
|
||||
f 13/8/74 3/61/74 19/21/74
|
||||
f 16/6/75 17/62/75 6/26/75
|
||||
f 16/6/76 14/5/76 17/62/76
|
||||
f 14/5/77 1/63/77 17/62/77
|
||||
f 13/3/78 15/18/78 3/17/78
|
||||
f 13/3/79 14/2/79 15/18/79
|
||||
f 14/2/80 2/4/80 15/18/80
|
106
main.c
106
main.c
|
@ -10,6 +10,7 @@
|
|||
#include <SDL2/SDL.h>
|
||||
|
||||
/* cursed struct definitions, thanks bx */
|
||||
#define TYPES_IMPL
|
||||
#include "types.h"
|
||||
|
||||
#define W 800
|
||||
|
@ -87,7 +88,11 @@ new_camera(double range, vec3 pos, vec3 target, vec3 up)
|
|||
}
|
||||
|
||||
mesh
|
||||
new_mesh(uint32_t vertex_num, uint32_t tri_num, uint32_t index_num, vec3 vertices[], uint32_t indices[])
|
||||
new_mesh(uint32_t vertex_num,
|
||||
uint32_t tri_num,
|
||||
uint32_t index_num,
|
||||
vec3 vertices[],
|
||||
uint32_t indices[])
|
||||
{
|
||||
mesh ret;
|
||||
|
||||
|
@ -104,6 +109,49 @@ new_mesh(uint32_t vertex_num, uint32_t tri_num, uint32_t index_num, vec3 vertice
|
|||
return ret;
|
||||
}
|
||||
|
||||
mesh
|
||||
load_mesh(char *path)
|
||||
{
|
||||
mesh ret;
|
||||
|
||||
FILE *f = fopen(path, "r");
|
||||
|
||||
/* Vertices */
|
||||
fread(&ret.vertex_num, 4, 1, f);
|
||||
ret.vertices = malloc(sizeof(vec3) * ret.vertex_num);
|
||||
for (uint32_t i = 0; i < ret.vertex_num; i++) {
|
||||
fread(&ret.vertices[i].x, 8, 1, f);
|
||||
fread(&ret.vertices[i].y, 8, 1, f);
|
||||
fread(&ret.vertices[i].z, 8, 1, f);
|
||||
}
|
||||
|
||||
/* Indices */
|
||||
fread(&ret.index_num, 4, 1, f);
|
||||
|
||||
if (ret.index_num % 3 != 0) {
|
||||
free(ret.vertices);
|
||||
die("load_mesh: invalid number of indices, should be a multiple of 3");
|
||||
}
|
||||
|
||||
ret.tri_num = ret.index_num / 3;
|
||||
|
||||
ret.indices = malloc(sizeof(uint32_t) * ret.index_num);
|
||||
for (uint32_t i = 0; i < ret.index_num; i++)
|
||||
fread(&ret.indices[i], 4, 1, f);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
mesh
|
||||
copy_mesh(mesh orig)
|
||||
{
|
||||
return new_mesh(orig.vertex_num,
|
||||
orig.tri_num,
|
||||
orig.index_num,
|
||||
orig.vertices,
|
||||
orig.indices);
|
||||
}
|
||||
|
||||
void free_mesh(mesh mesh) { free(mesh.vertices); free(mesh.indices); }
|
||||
|
||||
#define max(x, y) ((x) > (y) ? (x) : (y))
|
||||
|
@ -574,55 +622,15 @@ main(void)
|
|||
{
|
||||
sdl_state state = init_sdl();
|
||||
camera cam = new_camera(180, (vec3){0, 0, 3}, (vec3){0, 0, 0}, UP);
|
||||
print_camera(cam);
|
||||
/* print_camera(cam); */
|
||||
|
||||
SDL_Event event;
|
||||
|
||||
vec3 vertices[8] = {
|
||||
/* front */
|
||||
{0, 0, 0},
|
||||
{100, 0, 0},
|
||||
{100, 100, 0},
|
||||
{0, 100, 0},
|
||||
/* back */
|
||||
{0, 0, 100},
|
||||
{100, 0, 100},
|
||||
{100, 100, 100},
|
||||
{0, 100, 100},
|
||||
};
|
||||
uint32_t indices[3 * 12] = {
|
||||
/* front */
|
||||
0, 1, 2,
|
||||
2, 3, 0,
|
||||
/* back */
|
||||
4, 5, 6,
|
||||
6, 7, 4,
|
||||
/* left */
|
||||
0, 4, 7,
|
||||
7, 3, 0,
|
||||
/* right */
|
||||
1, 5, 6,
|
||||
6, 2, 1,
|
||||
/* top */
|
||||
0, 1, 5,
|
||||
5, 4, 0,
|
||||
/* bottom */
|
||||
3, 2, 6,
|
||||
6, 7, 3,
|
||||
};
|
||||
const mesh box = new_mesh(8, 12, 3 * 12, vertices, indices);
|
||||
mesh box_copy = new_mesh(8, 12, 3 * 12, vertices, indices);
|
||||
const mesh obj = load_mesh("iso.mod");
|
||||
mesh obj_copy = copy_mesh(obj);
|
||||
|
||||
uint64_t t = 0;
|
||||
|
||||
matrix3x3 rotation = matrix3x3_multiply(
|
||||
matrix3x3_multiply(
|
||||
z_rotation(1.2),
|
||||
y_rotation(1.1)),
|
||||
x_rotation(1.0));
|
||||
|
||||
print_matrix3x3(rotation);
|
||||
|
||||
for (;;) {
|
||||
double elapsed, start = SDL_GetPerformanceCounter();
|
||||
|
||||
|
@ -642,11 +650,11 @@ main(void)
|
|||
|
||||
clear_canvas(state.canvas, BLACK);
|
||||
|
||||
for (size_t i = 0; i < box.vertex_num; i++) {
|
||||
box_copy.vertices[i] = vec3_matrix3x3_multiply(box.vertices[i], rotation);
|
||||
for (size_t i = 0; i < obj.vertex_num; i++) {
|
||||
obj_copy.vertices[i] = vec3_matrix3x3_multiply(obj.vertices[i], rotation);
|
||||
}
|
||||
|
||||
draw_mesh(state.canvas, WHITE, cam, box_copy);
|
||||
draw_mesh(state.canvas, WHITE, cam, obj_copy);
|
||||
|
||||
render(state);
|
||||
if (SDL_PollEvent(&event) && event.type == SDL_QUIT)
|
||||
|
@ -658,7 +666,7 @@ main(void)
|
|||
t++;
|
||||
}
|
||||
|
||||
free_mesh(box);
|
||||
free_mesh(box_copy);
|
||||
free_mesh(obj);
|
||||
free_mesh(obj_copy);
|
||||
free_sdl(state);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue