Compare commits
1565 Commits
thermion_f
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d16474784d | ||
|
|
1c07d576d3 | ||
|
|
961b2ae1ee | ||
|
|
a7ac118899 | ||
|
|
d92ad4ef12 | ||
|
|
437e91e7bd | ||
|
|
e169bf6c41 | ||
|
|
23b060c329 | ||
|
|
5fd0a10630 | ||
|
|
ddfb649733 | ||
|
|
ecffc5b62a | ||
|
|
429b8eb93b | ||
|
|
413faec849 | ||
|
|
433b6373a9 | ||
|
|
ad2c5afb7f | ||
|
|
a561c847a7 | ||
|
|
ef7ba24ecc | ||
|
|
ee176d2684 | ||
|
|
fa168df28f | ||
|
|
ba3d016c1a | ||
|
|
e04d8e76c2 | ||
|
|
353b33b7c3 | ||
|
|
3c1b26af2c | ||
|
|
b4ea80a84c | ||
|
|
db44bc6f74 | ||
|
|
c668549fb0 | ||
|
|
a66703b61c | ||
|
|
cb8943ff72 | ||
|
|
9f59577f90 | ||
|
|
b86145d4c6 | ||
|
|
cb8672f120 | ||
|
|
92578426ac | ||
|
|
4a6479c4d8 | ||
|
|
2244d3fcb6 | ||
|
|
003fd59269 | ||
|
|
77e6ef7568 | ||
|
|
6f07d406f8 | ||
|
|
bf5551e278 | ||
|
|
64577af352 | ||
|
|
951894be41 | ||
|
|
c64b2b8659 | ||
|
|
322e77d2b7 | ||
|
|
a8a52bb2f4 | ||
|
|
c7dfd293e2 | ||
|
|
cf2498b45f | ||
|
|
edb7538c36 | ||
|
|
b023e2fb97 | ||
|
|
b51cc4b1d1 | ||
|
|
d995ed8843 | ||
|
|
b0d34bf6a8 | ||
|
|
2e28b0379d | ||
|
|
c899e30a7b | ||
|
|
37f8558794 | ||
|
|
3cfa26d284 | ||
|
|
b22a82e181 | ||
|
|
3d072594b5 | ||
|
|
75590c5dde | ||
|
|
b52d47bb41 | ||
|
|
397c575631 | ||
|
|
ddc5af376a | ||
|
|
77f843568f | ||
|
|
f706f54eb2 | ||
|
|
c12ec892f3 | ||
|
|
8e88252337 | ||
|
|
23e34e6da4 | ||
|
|
5aa14ff5f6 | ||
|
|
c0cc9fc26a | ||
|
|
946a6ae9d2 | ||
|
|
73e6597301 | ||
|
|
e731556e6f | ||
|
|
f9a7ac49a1 | ||
|
|
83e4a5142a | ||
|
|
bb913644f4 | ||
|
|
4b9870244a | ||
|
|
ce2dc9b1cb | ||
|
|
1a2b3b7b59 | ||
|
|
c0ed7cbc90 | ||
|
|
a5eab305da | ||
|
|
c467e3ca69 | ||
|
|
e984d8cf71 | ||
|
|
0693a2a95b | ||
|
|
a2883fbee9 | ||
|
|
dbcf463fd1 | ||
|
|
6ab1411801 | ||
|
|
a9b5ca786e | ||
|
|
4379313932 | ||
|
|
8a997d533a | ||
|
|
b7e79b1ac5 | ||
|
|
9a5b737391 | ||
|
|
215515a4fc | ||
|
|
3ca1cc0747 | ||
|
|
0c2e4e6faa | ||
|
|
e50a1b6002 | ||
|
|
70c67b59f7 | ||
|
|
2022fa97cc | ||
|
|
809f84e1fa | ||
|
|
932971c872 | ||
|
|
7ed120e854 | ||
|
|
45c4cea6aa | ||
|
|
2545bbbd35 | ||
|
|
5b41d594da | ||
|
|
584abd6086 | ||
|
|
4b9c20eaa6 | ||
|
|
d35a7a6de2 | ||
|
|
0f9d2492e6 | ||
|
|
96ef070be7 | ||
|
|
506d2fb562 | ||
|
|
0b18caf4ff | ||
|
|
b3b0e2bae1 | ||
|
|
35369b890f | ||
|
|
53a2a116aa | ||
|
|
80ceb5988e | ||
|
|
9dc81781d1 | ||
|
|
3e8189ecd4 | ||
|
|
31acdecedf | ||
|
|
feeb757a10 | ||
|
|
1bbf9d26ac | ||
|
|
40e206fc94 | ||
|
|
48b631b0a8 | ||
|
|
5ac4da5075 | ||
|
|
bc392bd933 | ||
|
|
ceba3915a7 | ||
|
|
c46ac2383c | ||
|
|
a9083d9ba0 | ||
|
|
d9436b8141 | ||
|
|
72cc9b932a | ||
|
|
2c7425fbdb | ||
|
|
b5e699c781 | ||
|
|
a7b0ed6f21 | ||
|
|
b5d9a06422 | ||
|
|
6b9b13682b | ||
|
|
fab3240ecf | ||
|
|
2613ba2423 | ||
|
|
85e3c98b28 | ||
|
|
9d4802c270 | ||
|
|
e7227d5f91 | ||
|
|
ccc0a53abc | ||
|
|
b983c6bb90 | ||
|
|
854f1545d3 | ||
|
|
ca110b2b01 | ||
|
|
ced0667a21 | ||
|
|
240a2d5345 | ||
|
|
cb4479d8ce | ||
|
|
f4b473b9ae | ||
|
|
fac0c727e4 | ||
|
|
f0cf20d904 | ||
|
|
ebb73a29e1 | ||
|
|
e92e59fab4 | ||
|
|
be47ec0f8b | ||
|
|
3657428025 | ||
|
|
33f8faac04 | ||
|
|
e9f0d5b745 | ||
|
|
682881e133 | ||
|
|
3e2405aa76 | ||
|
|
52038084f3 | ||
|
|
af9c2a93dc | ||
|
|
e99ccb3100 | ||
|
|
ed21eec66e | ||
|
|
05c62d5fa0 | ||
|
|
bec34e5b0b | ||
|
|
634c6d6877 | ||
|
|
b47e7f206c | ||
|
|
1fe1889fa2 | ||
|
|
4a43c6169a | ||
|
|
6075608bda | ||
|
|
8a1f320bb7 | ||
|
|
ed5fb03aa4 | ||
|
|
21ccb52ab9 | ||
|
|
ff48ce94a3 | ||
|
|
d20ff0a6f1 | ||
|
|
c7d4d9cb33 | ||
|
|
9aec83fd70 | ||
|
|
4dbd761d16 | ||
|
|
fc365744ef | ||
|
|
900e43b5ec | ||
|
|
c78cd45b8a | ||
|
|
1268970ba7 | ||
|
|
f93e44abd5 | ||
|
|
d41f29c06d | ||
|
|
e27be37378 | ||
|
|
a8a7f11d44 | ||
|
|
c81f2f225c | ||
|
|
a89c6d0eb3 | ||
|
|
34c9d5a279 | ||
|
|
57999bec3c | ||
|
|
69400f8b68 | ||
|
|
18b6b2e5f0 | ||
|
|
7e802f7b23 | ||
|
|
ce23b9f3cd | ||
|
|
45d8c7b929 | ||
|
|
7a484ee794 | ||
|
|
832319ee1b | ||
|
|
668c001b49 | ||
|
|
e503dd2e8b | ||
|
|
e1c34cc4d9 | ||
|
|
b035d45ada | ||
|
|
75d34f0afb | ||
|
|
d053bfd6da | ||
|
|
920f81c514 | ||
|
|
b64a505ffc | ||
|
|
00debf509d | ||
|
|
73b32f9c1e | ||
|
|
abd1a1fd55 | ||
|
|
e8721b6133 | ||
|
|
a01bf36576 | ||
|
|
5f92c7feab | ||
|
|
e1cb517417 | ||
|
|
37c35906d6 | ||
|
|
355999562f | ||
|
|
c208972ed7 | ||
|
|
6a7ca3cd42 | ||
|
|
b6d869275a | ||
|
|
64eeacc029 | ||
|
|
3783081456 | ||
|
|
0a9b1a82e2 | ||
|
|
9322122dac | ||
|
|
a823718bcd | ||
|
|
7446b0545a | ||
|
|
3c4bedd43b | ||
|
|
21e8cf0d11 | ||
|
|
86e0f7740f | ||
|
|
a5a3c73708 | ||
|
|
a44cb9a9cc | ||
|
|
6f97bf3993 | ||
|
|
42f9538040 | ||
|
|
df393b075b | ||
|
|
13f9a8370b | ||
|
|
558978a0f2 | ||
|
|
a29b194612 | ||
|
|
3e04bf427f | ||
|
|
65ca59ff22 | ||
|
|
a91aaae131 | ||
|
|
71bae61015 | ||
|
|
288acb019e | ||
|
|
b9354531b2 | ||
|
|
388b8556e5 | ||
|
|
59d9d87d2f | ||
|
|
d5824466f7 | ||
|
|
3e11f09d63 | ||
|
|
6bbab332be | ||
|
|
85b86c5f13 | ||
|
|
d8652e8709 | ||
|
|
fe5279f942 | ||
|
|
828354abe5 | ||
|
|
48d9d6751b | ||
|
|
4bde3d34cf | ||
|
|
7f2ad7c4e4 | ||
|
|
47807d560f | ||
|
|
ad26fc4563 | ||
|
|
f252c86152 | ||
|
|
e5bcde3ade | ||
|
|
9436666d34 | ||
|
|
32fe54ac09 | ||
|
|
0461bb364a | ||
|
|
f78c6f258f | ||
|
|
b0796f493f | ||
|
|
8998f1f740 | ||
|
|
6362efcd61 | ||
|
|
dc5c1161cc | ||
|
|
3e6f95e0bf | ||
|
|
f053c2f852 | ||
|
|
8f1da5e7bd | ||
|
|
641d92515e | ||
|
|
d447fb8e2a | ||
|
|
ac87420a87 | ||
|
|
5669ac5c55 | ||
|
|
ae9ce197c1 | ||
|
|
37c67c2da8 | ||
|
|
66d3bf65fd | ||
|
|
dba40fb82b | ||
|
|
95db6d7ebb | ||
|
|
fef48940fc | ||
|
|
4086c9bd01 | ||
|
|
928517f80f | ||
|
|
4a9b91c411 | ||
|
|
9054879722 | ||
|
|
4c95bc5b70 | ||
|
|
8866ffe210 | ||
|
|
c33eaef713 | ||
|
|
78e14574ef | ||
|
|
073976b40e | ||
|
|
6d0844f873 | ||
|
|
983d1373ba | ||
|
|
0dd64a07bb | ||
|
|
6055bd3fa7 | ||
|
|
f3a576005a | ||
|
|
ff559997dd | ||
|
|
79fea25d1b | ||
|
|
9ae7c784df | ||
|
|
acf03ea0c7 | ||
|
|
a9553da1d4 | ||
|
|
fc4686b20f | ||
|
|
ab4743da90 | ||
|
|
7406662853 | ||
|
|
aa2f19442b | ||
|
|
cc99905eb8 | ||
|
|
1d697037c0 | ||
|
|
c024efb8cd | ||
|
|
150c0227c8 | ||
|
|
e594a42496 | ||
|
|
c484eeb37f | ||
|
|
655ba89b0f | ||
|
|
840f3599e7 | ||
|
|
d0da7f49f3 | ||
|
|
886a4a37aa | ||
|
|
6db82d00c2 | ||
|
|
0fb4fd0004 | ||
|
|
e147e59d8d | ||
|
|
28aef7e5cc | ||
|
|
b1617004d7 | ||
|
|
32b6b1c227 | ||
|
|
1c500fe925 | ||
|
|
3fd15ab91b | ||
|
|
2191f9d44b | ||
|
|
87b63301f2 | ||
|
|
0d5b42c908 | ||
|
|
12e2dca873 | ||
|
|
8eae6bf90c | ||
|
|
873244879f | ||
|
|
2ab1732b6b | ||
|
|
5eb83a80b3 | ||
|
|
7141a01101 | ||
|
|
24aaffda9c | ||
|
|
82aba605f9 | ||
|
|
7b80723560 | ||
|
|
39a302c23e | ||
|
|
059926fe98 | ||
|
|
3c9b607109 | ||
|
|
70e2933c4b | ||
|
|
4fb85eb45a | ||
|
|
afecacfcf0 | ||
|
|
2f7f363db9 | ||
|
|
7f0ec01937 | ||
|
|
ccdf2ecda6 | ||
|
|
5f9a7bb959 | ||
|
|
764fea836b | ||
|
|
27d6bd0f4a | ||
|
|
7e810b8265 | ||
|
|
6ad3bfab13 | ||
|
|
5ed00164a9 | ||
|
|
86894cf583 | ||
|
|
c789e75af5 | ||
|
|
6ad76b6217 | ||
|
|
2e097f7ec6 | ||
|
|
beeb45609c | ||
|
|
94eacec27e | ||
|
|
11f7ac459b | ||
|
|
afd47f9b24 | ||
|
|
aab2b0b769 | ||
|
|
ffc7717149 | ||
|
|
ff5921a505 | ||
|
|
45c7831a17 | ||
|
|
fcf57e8850 | ||
|
|
a875f370e5 | ||
|
|
b00f37ddaa | ||
|
|
a98d7550ae | ||
|
|
b12dc80cfd | ||
|
|
f7d6d4786a | ||
|
|
5db9fe2c9e | ||
|
|
d298b0d091 | ||
|
|
4a7a366fc6 | ||
|
|
c6ceea4f8b | ||
|
|
679af95901 | ||
|
|
1e812ebe93 | ||
|
|
75a9950909 | ||
|
|
81fb0fb583 | ||
|
|
4d6c008299 | ||
|
|
4505cbe325 | ||
|
|
60cfe32672 | ||
|
|
0decb6b9f1 | ||
|
|
d799ef0ca0 | ||
|
|
5a72bc835d | ||
|
|
3e44716e8c | ||
|
|
bf295394a8 | ||
|
|
64bc7f8bf3 | ||
|
|
63ba231996 | ||
|
|
562c221461 | ||
|
|
f123bbf930 | ||
|
|
1765350cbe | ||
|
|
94683ab5a9 | ||
|
|
5a74345fe1 | ||
|
|
195a625738 | ||
|
|
725f36a860 | ||
|
|
51212bdeed | ||
|
|
96694be017 | ||
|
|
a31f11151e | ||
|
|
10136c8cde | ||
|
|
c712804bb1 | ||
|
|
1373ce5a32 | ||
|
|
1b3d46533c | ||
|
|
5733bc125b | ||
|
|
943de8f77b | ||
|
|
9a4fd1141e | ||
|
|
2bf77f123f | ||
|
|
9785576866 | ||
|
|
3007dec127 | ||
|
|
1008452198 | ||
|
|
1f58c13179 | ||
|
|
5ce2efa638 | ||
|
|
e75805ba06 | ||
|
|
73f04eb0d4 | ||
|
|
097d991ea8 | ||
|
|
5cf494def9 | ||
|
|
23d6e3a819 | ||
|
|
9a6bacc73f | ||
|
|
e432b0be1d | ||
|
|
2dad04a354 | ||
|
|
1fb68b20e9 | ||
|
|
d61723dee2 | ||
|
|
1afd5ff257 | ||
|
|
04b8b333d4 | ||
|
|
fdd3853121 | ||
|
|
bdba92c842 | ||
|
|
66f3e20489 | ||
|
|
871a327d99 | ||
|
|
c53266f12f | ||
|
|
11ff6c9053 | ||
|
|
d392daa2e6 | ||
|
|
fc75aab94b | ||
|
|
760ae8ed8b | ||
|
|
25ada92574 | ||
|
|
12c8031f2b | ||
|
|
8c78e8e629 | ||
|
|
dc5cdcb7e1 | ||
|
|
383fc221d9 | ||
|
|
e4942bad2f | ||
|
|
460000308a | ||
|
|
826a22f348 | ||
|
|
43442e10de | ||
|
|
b710e0ace3 | ||
|
|
b0087d8d54 | ||
|
|
dcef1a5749 | ||
|
|
1c0a7f6b1e | ||
|
|
2444e9a980 | ||
|
|
417ee4648f | ||
|
|
4b2342979f | ||
|
|
ee306549d8 | ||
|
|
d3ec825688 | ||
|
|
fe11479b08 | ||
|
|
c98e604e76 | ||
|
|
f9d09e17ef | ||
|
|
27eb117466 | ||
|
|
46e87fb6a4 | ||
|
|
6d95180870 | ||
|
|
c7ad70b81c | ||
|
|
62bf3876f8 | ||
|
|
cff0893d53 | ||
|
|
6135c5eecc | ||
|
|
170fb4bf6d | ||
|
|
2f5ce65684 | ||
|
|
bb272f2579 | ||
|
|
56e132ec15 | ||
|
|
5379ae7d74 | ||
|
|
9d7e96e996 | ||
|
|
8bbe2f0dfb | ||
|
|
0794e0ad84 | ||
|
|
3f0f15b441 | ||
|
|
90f17e3bc9 | ||
|
|
8311c95100 | ||
|
|
97da08ae8b | ||
|
|
12a96cceee | ||
|
|
fac7e9a894 | ||
|
|
c47cfe9b57 | ||
|
|
671949a5cd | ||
|
|
602e220024 | ||
|
|
ebab1f528d | ||
|
|
4a5a1d0157 | ||
|
|
906f5bf931 | ||
|
|
9ef6d46958 | ||
|
|
50c1c871a8 | ||
|
|
8a6ba637a7 | ||
|
|
abde201bda | ||
|
|
428a613b65 | ||
|
|
1ddeac2d31 | ||
|
|
7961ed06f7 | ||
|
|
cedcb45484 | ||
|
|
cf6abdcf01 | ||
|
|
04d3aee2e9 | ||
|
|
5af18cb99b | ||
|
|
87396ec859 | ||
|
|
2f16908992 | ||
|
|
63e2dcd0ca | ||
|
|
afd8bff58e | ||
|
|
2ab56b86bc | ||
|
|
e9628511fc | ||
|
|
3402c02d6a | ||
|
|
fdf278cd79 | ||
|
|
e5b75debed | ||
|
|
eedfbbb934 | ||
|
|
2a5a149e83 | ||
|
|
4cb725d47e | ||
|
|
8228486ef3 | ||
|
|
c66dc40bab | ||
|
|
4f1a9fb0d5 | ||
|
|
454ec14b40 | ||
|
|
b4f3d865b4 | ||
|
|
86779cb629 | ||
|
|
e1d5d14ff7 | ||
|
|
1be1979c05 | ||
|
|
2b6693a826 | ||
|
|
7d369ad813 | ||
|
|
81a28a2f2e | ||
|
|
6b008bd433 | ||
|
|
241c0fe07c | ||
|
|
12b6a8c8a5 | ||
|
|
426d6c4ed6 | ||
|
|
4002425c0d | ||
|
|
230bb5f9f6 | ||
|
|
8a35060653 | ||
|
|
2b00d374e0 | ||
|
|
da87442b3a | ||
|
|
3c68731fe0 | ||
|
|
ef775b2e2c | ||
|
|
0759590f4c | ||
|
|
e7092c416b | ||
|
|
f272410803 | ||
|
|
b128f385e5 | ||
|
|
a4227df098 | ||
|
|
230af0ae17 | ||
|
|
aeb644cf16 | ||
|
|
c3e583ac5a | ||
|
|
48654f0e8f | ||
|
|
a772b86f09 | ||
|
|
026893d2fe | ||
|
|
2d4342607d | ||
|
|
02b6bc4ee6 | ||
|
|
0194eb5cd5 | ||
|
|
9ceedb4e1c | ||
|
|
85a0451f1b | ||
|
|
dfda0eb476 | ||
|
|
b160932ff3 | ||
|
|
f9c5ee5896 | ||
|
|
5097373a22 | ||
|
|
10dd66c7f8 | ||
|
|
b6e5d2c834 | ||
|
|
726f9b8c80 | ||
|
|
7349fa2298 | ||
|
|
143c4a436d | ||
|
|
60e025e78d | ||
|
|
de5bc5c02e | ||
|
|
a1ab4186b4 | ||
|
|
d3b9ae45cf | ||
|
|
7dfb8a4b19 | ||
|
|
2bd64805a9 | ||
|
|
b17b732c55 | ||
|
|
8157f3318b | ||
|
|
fbbb4ed792 | ||
|
|
ec3e7ed3ba | ||
|
|
585e0ad087 | ||
|
|
4815b0309e | ||
|
|
9d593b8c3b | ||
|
|
aaa74f0267 | ||
|
|
cf8e0f6ed2 | ||
|
|
303174117f | ||
|
|
ccda475073 | ||
|
|
ddba3c35ab | ||
|
|
87d04fc2c1 | ||
|
|
a3f05e353d | ||
|
|
69ce7b1a15 | ||
|
|
3922ee536b | ||
|
|
cf372f4dc2 | ||
|
|
854b142973 | ||
|
|
7d8f7a726b | ||
|
|
e0b2e1c3b9 | ||
|
|
f7a7b6bedf | ||
|
|
7b0550c713 | ||
|
|
ec8248e10c | ||
|
|
374d2e5697 | ||
|
|
e407e75389 | ||
|
|
342ff58cbe | ||
|
|
68842fb4ce | ||
|
|
88f229481d | ||
|
|
09b2a924af | ||
|
|
06715f0618 | ||
|
|
38d190f582 | ||
|
|
73cb20a2dd | ||
|
|
a08cc7aa62 | ||
|
|
9d4fd4d6d4 | ||
|
|
e8aa68beb4 | ||
|
|
178da458ad | ||
|
|
508c184f1a | ||
|
|
a8cf071f2f | ||
|
|
89768c9303 | ||
|
|
a31142de6d | ||
|
|
66ddcac412 | ||
|
|
645ba97c1d | ||
|
|
a26eacb247 | ||
|
|
667397ad83 | ||
|
|
99217499f9 | ||
|
|
b083c62bd4 | ||
|
|
d0b297b015 | ||
|
|
ddc5fedc4d | ||
|
|
968e2e508d | ||
|
|
7c936547aa | ||
|
|
4ac1b5329c | ||
|
|
bf44ca7ddd | ||
|
|
e25d7805d9 | ||
|
|
5aaf212d9a | ||
|
|
99bd993f25 | ||
|
|
a153bc9916 | ||
|
|
77ff8ff4c3 | ||
|
|
709fe35852 | ||
|
|
ecb8d8672a | ||
|
|
a79e1a86f8 | ||
|
|
4bdbb170a7 | ||
|
|
7960b55dbd | ||
|
|
77465baaf4 | ||
|
|
dcf13fd53f | ||
|
|
973804ed14 | ||
|
|
9978d9d75c | ||
|
|
e4f436fab1 | ||
|
|
ac5b5b89f6 | ||
|
|
b69977929c | ||
|
|
548dccf776 | ||
|
|
b4e4eb349c | ||
|
|
7a5fdb0b77 | ||
|
|
51e51db229 | ||
|
|
faba1b3087 | ||
|
|
123543a985 | ||
|
|
cd9332063c | ||
|
|
54a0a0befb | ||
|
|
289749115b | ||
|
|
cd1c2f3827 | ||
|
|
e8169e86d1 | ||
|
|
cac063324d | ||
|
|
aebaa8425c | ||
|
|
1b902e36f4 | ||
|
|
396b7ed6dc | ||
|
|
d6666d6388 | ||
|
|
7d5b183dea | ||
|
|
6c25a3c405 | ||
|
|
999b1e613f | ||
|
|
0cbbc058e0 | ||
|
|
a67f42f0de | ||
|
|
4ef74c4c70 | ||
|
|
255c0edd49 | ||
|
|
1177a71f73 | ||
|
|
e6bdcb687a | ||
|
|
cbff4cd805 | ||
|
|
a8a2f14b34 | ||
|
|
931aab5159 | ||
|
|
a310498c5a | ||
|
|
6744c02019 | ||
|
|
124f923720 | ||
|
|
e2048c3efd | ||
|
|
ac86dc7ad7 | ||
|
|
e73cb9c7d6 | ||
|
|
102429e090 | ||
|
|
627447f8b0 | ||
|
|
d5bffd5ad2 | ||
|
|
951f5daa2d | ||
|
|
77fe40848b | ||
|
|
07b80071a4 | ||
|
|
03f7764da2 | ||
|
|
231b03cd17 | ||
|
|
b271b7e433 | ||
|
|
746ef07e42 | ||
|
|
bff76f184e | ||
|
|
2244359edd | ||
|
|
b94edf0951 | ||
|
|
988e22fe95 | ||
|
|
401048e6a8 | ||
|
|
232289003e | ||
|
|
e18d1246f6 | ||
|
|
95c9e5be66 | ||
|
|
e1203df087 | ||
|
|
09678c6cdc | ||
|
|
f2ce4a4044 | ||
|
|
c23b991c9c | ||
|
|
4205b86f13 | ||
|
|
d710ab810c | ||
|
|
4e5a9be97a | ||
|
|
342a53ae7b | ||
|
|
a0e1971958 | ||
|
|
74502ba5b3 | ||
|
|
09b6aca08f | ||
|
|
03c4afb031 | ||
|
|
f923b94b84 | ||
|
|
20ea43a809 | ||
|
|
8b34934755 | ||
|
|
5ad187d54f | ||
|
|
711abe11bd | ||
|
|
a16c3c7580 | ||
|
|
e1446c7eb8 | ||
|
|
1f4af8c946 | ||
|
|
75bee32e54 | ||
|
|
1d49db4767 | ||
|
|
d39b57f054 | ||
|
|
e91d1ca0aa | ||
|
|
7d87d229d0 | ||
|
|
7ed7ff48b9 | ||
|
|
9d311220b1 | ||
|
|
e4de0f3ae0 | ||
|
|
72711ee64f | ||
|
|
c52052c1b9 | ||
|
|
aa26f4d0df | ||
|
|
be61d5e5ca | ||
|
|
1a3d902d23 | ||
|
|
35bddd2bb2 | ||
|
|
74ee35bfcd | ||
|
|
2915655695 | ||
|
|
5b80dd3a3d | ||
|
|
593bca3365 | ||
|
|
cca9fba79f | ||
|
|
a245cf2915 | ||
|
|
15134c335b | ||
|
|
85215f6760 | ||
|
|
9abb192148 | ||
|
|
f7fa02180a | ||
|
|
fc7f5d7b93 | ||
|
|
5dca42c3c1 | ||
|
|
665c2fb39d | ||
|
|
3ac79b2080 | ||
|
|
8d52690c97 | ||
|
|
2a8931e1ac | ||
|
|
94d77ff21b | ||
|
|
7a707cda67 | ||
|
|
8993d888b1 | ||
|
|
ffc256228a | ||
|
|
1b1de0b7c0 | ||
|
|
4c1480864e | ||
|
|
06cc114daa | ||
|
|
1258751dda | ||
|
|
67ca24a7d9 | ||
|
|
282ee6d103 | ||
|
|
bb5a8f495d | ||
|
|
c400ca3993 | ||
|
|
d7d7fa7c0b | ||
|
|
c1be084e3e | ||
|
|
178e59a618 | ||
|
|
7fe9c06a7f | ||
|
|
0f4531d3d7 | ||
|
|
c5228dff7e | ||
|
|
7131e7ab86 | ||
|
|
16ff7ef008 | ||
|
|
a178035796 | ||
|
|
61abed2fb7 | ||
|
|
30060578ef | ||
|
|
2c2beb0e76 | ||
|
|
2b864f6f44 | ||
|
|
0b1da2a15d | ||
|
|
ad70ef1461 | ||
|
|
6f110a56dd | ||
|
|
0e5253f7b3 | ||
|
|
124eed0264 | ||
|
|
9a055174e6 | ||
|
|
3a231697e5 | ||
|
|
3e74c8faea | ||
|
|
18b0bf19b9 | ||
|
|
020bfbcbf6 | ||
|
|
b1c0d4b2e8 | ||
|
|
6cefe44c64 | ||
|
|
4aa8889834 | ||
|
|
aee9c767dd | ||
|
|
916ecd5629 | ||
|
|
d3a6f6e22a | ||
|
|
86ecd53de7 | ||
|
|
8653ca8398 | ||
|
|
1d615e7568 | ||
|
|
4cb118ad65 | ||
|
|
4e64c4976f | ||
|
|
04adbc39e0 | ||
|
|
744e39e8dd | ||
|
|
baf86d1ade | ||
|
|
3e181b6aff | ||
|
|
8e0ba8ac4e | ||
|
|
3e39aa3630 | ||
|
|
cc1b55b6c9 | ||
|
|
242041c9f6 | ||
|
|
7717387909 | ||
|
|
31e453a4e6 | ||
|
|
9b988537e0 | ||
|
|
d9338f4341 | ||
|
|
b6397b5f73 | ||
|
|
584ace23b4 | ||
|
|
5e89dc43e8 | ||
|
|
024643e3a1 | ||
|
|
96fe2c89ea | ||
|
|
8d8acef481 | ||
|
|
51bdca7158 | ||
|
|
658984e784 | ||
|
|
f8ae90b631 | ||
|
|
b158062ce8 | ||
|
|
dc690bb93a | ||
|
|
342264eba9 | ||
|
|
453ce9d1ea | ||
|
|
e9c14139c2 | ||
|
|
d92d47faa5 | ||
|
|
b6bde0c9d9 | ||
|
|
f873f7da66 | ||
|
|
aabea985bd | ||
|
|
9f9b34f662 | ||
|
|
fc4842ed6d | ||
|
|
eb4e70a7cf | ||
|
|
19ffa91164 | ||
|
|
a519701510 | ||
|
|
5fb5e42b98 | ||
|
|
ba3636a203 | ||
|
|
e0b4ebc349 | ||
|
|
1d1a3cbfe6 | ||
|
|
7aa0367a3b | ||
|
|
0817efc33e | ||
|
|
0facb3f906 | ||
|
|
355c28477b | ||
|
|
c1a294315a | ||
|
|
f27628e719 | ||
|
|
fd1faa6023 | ||
|
|
8fa43e5306 | ||
|
|
94863134fc | ||
|
|
1b979252db | ||
|
|
852cb58ba9 | ||
|
|
7cf1468f38 | ||
|
|
62cd85c148 | ||
|
|
771f851784 | ||
|
|
def85614d8 | ||
|
|
0ad73d06e0 | ||
|
|
6c236da675 | ||
|
|
6b883f3352 | ||
|
|
ffa0f77a42 | ||
|
|
26ae21910f | ||
|
|
5c3af255e4 | ||
|
|
29c35f9037 | ||
|
|
1e1d6fdcc9 | ||
|
|
113f769160 | ||
|
|
278575c3e2 | ||
|
|
27e150ebf6 | ||
|
|
fe0f63c4cb | ||
|
|
b94aeb8b4a | ||
|
|
8b9b299786 | ||
|
|
6ce743057b | ||
|
|
fbb53f9033 | ||
|
|
8a894f7e88 | ||
|
|
5e88a710ae | ||
|
|
6b36d67ed7 | ||
|
|
5564be9ce9 | ||
|
|
9f676f42b9 | ||
|
|
981fd63963 | ||
|
|
cb9320f3a1 | ||
|
|
6d5bc305dc | ||
|
|
1c5b5c890b | ||
|
|
e43e1c9cbd | ||
|
|
5fe985d2c7 | ||
|
|
80ca4b97a9 | ||
|
|
d3b4bed654 | ||
|
|
c117555b2c | ||
|
|
abbf2d5391 | ||
|
|
a31c800204 | ||
|
|
877e8def80 | ||
|
|
fb650dbd52 | ||
|
|
c34c7d5545 | ||
|
|
fe37d45e1a | ||
|
|
bf3d4f7c0e | ||
|
|
69643e26f6 | ||
|
|
44b502a1e4 | ||
|
|
6d36dc7923 | ||
|
|
151935913f | ||
|
|
d72ed58436 | ||
|
|
d53a8b20b8 | ||
|
|
600ab1ad28 | ||
|
|
aa7350c419 | ||
|
|
c2077cb6b1 | ||
|
|
bedd50ec38 | ||
|
|
8a3525d879 | ||
|
|
853f1d1a68 | ||
|
|
7e50f0317e | ||
|
|
724d7532e2 | ||
|
|
45a548afd2 | ||
|
|
e8b4b7806b | ||
|
|
133367669d | ||
|
|
60a09a1cd9 | ||
|
|
9128fbbd61 | ||
|
|
c3c6465908 | ||
|
|
ed444b0615 | ||
|
|
9ada6aae64 | ||
|
|
0ef0f37bbf | ||
|
|
df37f5e95f | ||
|
|
468cada6c6 | ||
|
|
e60ab51b79 | ||
|
|
d58a48061c | ||
|
|
cabb62043d | ||
|
|
b7bc46b94a | ||
|
|
bc8edb7eb4 | ||
|
|
5deb2ad7cf | ||
|
|
dcc523edff | ||
|
|
26eba7ae09 | ||
|
|
9692c07da9 | ||
|
|
2860db3fbd | ||
|
|
1ce5bd3bcf | ||
|
|
9d3f87218e | ||
|
|
505b4bb156 | ||
|
|
25320f45af | ||
|
|
0b9f3160d9 | ||
|
|
bb27f40cb2 | ||
|
|
9853d6b721 | ||
|
|
52f041afba | ||
|
|
646814126f | ||
|
|
05cb4325da | ||
|
|
e8b3468a3a | ||
|
|
741607b78b | ||
|
|
70414bb83c | ||
|
|
436873a455 | ||
|
|
b59cadc061 | ||
|
|
bdcbd90ec6 | ||
|
|
f3e96fe94a | ||
|
|
ef97f0e6c2 | ||
|
|
8976eb9621 | ||
|
|
e2cfe9247e | ||
|
|
6472670ec3 | ||
|
|
0eb81114dd | ||
|
|
31c5ef41eb | ||
|
|
73470fa504 | ||
|
|
14b815e009 | ||
|
|
5ae028f1e9 | ||
|
|
859a514bc5 | ||
|
|
4d97126ef6 | ||
|
|
cc34cb20bd | ||
|
|
9c555c9ec0 | ||
|
|
9537f75bc2 | ||
|
|
30e0012da6 | ||
|
|
1892235d5c | ||
|
|
82bd84b60d | ||
|
|
814adf8567 | ||
|
|
671880b405 | ||
|
|
6ce2e22fac | ||
|
|
51d3dae1db | ||
|
|
a33a18da42 | ||
|
|
6ff04fb76a | ||
|
|
124938dbc2 | ||
|
|
902f67e97d | ||
|
|
08c02c1590 | ||
|
|
4650ae1295 | ||
|
|
c77ede9109 | ||
|
|
0f56cbe7e7 | ||
|
|
708e90117d | ||
|
|
33e5350605 | ||
|
|
d1924cfdf4 | ||
|
|
dff214259a | ||
|
|
d25edfc097 | ||
|
|
8c2b8a6cba | ||
|
|
eccbde4ebb | ||
|
|
27e1456b9f | ||
|
|
9c6b2a92ac | ||
|
|
1d6cb9cad2 | ||
|
|
d31e6c8183 | ||
|
|
cf1a50c2e5 | ||
|
|
7c15125a97 | ||
|
|
b7c14ebbda | ||
|
|
2969321b8c | ||
|
|
036369a8dc | ||
|
|
7be2b43c35 | ||
|
|
e5fe6d95e9 | ||
|
|
a8480a9eee | ||
|
|
1a4f53a3f9 | ||
|
|
11c374c25d | ||
|
|
618d633602 | ||
|
|
3effb837b7 | ||
|
|
68d363388d | ||
|
|
10fd78276c | ||
|
|
4d778326c6 | ||
|
|
e2d381b6b7 | ||
|
|
4fc819e9b9 | ||
|
|
f0feb8aeb1 | ||
|
|
85013743fe | ||
|
|
e5a1585c25 | ||
|
|
dd8bf920a5 | ||
|
|
b70c144784 | ||
|
|
d9849717de | ||
|
|
ec4fd5fd44 | ||
|
|
52b83d933d | ||
|
|
f1f2a237bb | ||
|
|
4a90031054 | ||
|
|
cf34b7867d | ||
|
|
e49330c34a | ||
|
|
53ff1de23c | ||
|
|
7165b13d48 | ||
|
|
f330721c0c | ||
|
|
01fe469a28 | ||
|
|
e716b55b5c | ||
|
|
e7ebf6e8b2 | ||
|
|
16e34bf76a | ||
|
|
3dce7a61a8 | ||
|
|
5dac06d335 | ||
|
|
a8d21fe316 | ||
|
|
d784efa44a | ||
|
|
b2a4955d54 | ||
|
|
02d7a0acfd | ||
|
|
ee5c08f795 | ||
|
|
d7debf981c | ||
|
|
2b4a73f355 | ||
|
|
06b20ec6fc | ||
|
|
a3b6d60e16 | ||
|
|
37608a8fbe | ||
|
|
2713286ca5 | ||
|
|
6f648702e9 | ||
|
|
5e17e0c6d1 | ||
|
|
0fcc44bff8 | ||
|
|
f65324e555 | ||
|
|
1ba4b2a5be | ||
|
|
de4733edf1 | ||
|
|
75936c75d0 | ||
|
|
6f6ee807cf | ||
|
|
7a1ce5c281 | ||
|
|
d4a3985a65 | ||
|
|
d73e723003 | ||
|
|
02c3876131 | ||
|
|
641ed45b59 | ||
|
|
aa7306fc4c | ||
|
|
d8296f85bf | ||
|
|
b96dda26c0 | ||
|
|
3ba16e019c | ||
|
|
12f97cf78f | ||
|
|
219dfa801f | ||
|
|
1826c23692 | ||
|
|
b5dd62a614 | ||
|
|
59e7d7c7c3 | ||
|
|
e66cb35899 | ||
|
|
d9aa90350c | ||
|
|
4a9d28e59d | ||
|
|
636e1961dd | ||
|
|
ff27652fb6 | ||
|
|
3b6285cff8 | ||
|
|
0d865977b4 | ||
|
|
a6872f5a77 | ||
|
|
d26d786f67 | ||
|
|
71aa4be3b1 | ||
|
|
70507a5919 | ||
|
|
b99886095b | ||
|
|
8dabe08792 | ||
|
|
de4fd3b8d0 | ||
|
|
7778afe3ec | ||
|
|
f817406dbc | ||
|
|
a16e3fcd3c | ||
|
|
2bbaff5f15 | ||
|
|
18023f1606 | ||
|
|
707793c6b2 | ||
|
|
f080720712 | ||
|
|
cf7d8e45f4 | ||
|
|
a5c3d7b215 | ||
|
|
68053b0f5a | ||
|
|
39762c8132 | ||
|
|
e27a8ee601 | ||
|
|
0a10dc426b | ||
|
|
53ee466fb6 | ||
|
|
33acc73ab7 | ||
|
|
dbbb4d7123 | ||
|
|
de39af13d0 | ||
|
|
9244009350 | ||
|
|
bb10a75f0e | ||
|
|
6cf4efdf31 | ||
|
|
83fe74253f | ||
|
|
4be95072fd | ||
|
|
9a8c245e31 | ||
|
|
f2e0f32054 | ||
|
|
a6c9ee60a9 | ||
|
|
9cef768dfc | ||
|
|
75d5fb2f8d | ||
|
|
e417756971 | ||
|
|
9d961af8ed | ||
|
|
ac25475155 | ||
|
|
983228a8ac | ||
|
|
6e627d8f9f | ||
|
|
dd82d5d3e7 | ||
|
|
df319f007f | ||
|
|
880551aaa3 | ||
|
|
b8c76a16cc | ||
|
|
a52f835288 | ||
|
|
bd9295bc90 | ||
|
|
a43ee8fa3a | ||
|
|
d8a42a4136 | ||
|
|
e2d11014d0 | ||
|
|
6d1e56caac | ||
|
|
c322c6aff9 | ||
|
|
7631aec796 | ||
|
|
033e863750 | ||
|
|
05b96c6972 | ||
|
|
9fc26a2078 | ||
|
|
c894925db1 | ||
|
|
b0da2f63a8 | ||
|
|
1c05793f03 | ||
|
|
bd123ba2f1 | ||
|
|
4aad34ce93 | ||
|
|
b2bd8ee66f | ||
|
|
018434ea57 | ||
|
|
71c230552d | ||
|
|
2a4b440db2 | ||
|
|
22eeb492b0 | ||
|
|
19a1bc0f1d | ||
|
|
58010dafde | ||
|
|
6e64cc3617 | ||
|
|
056ba55f1c | ||
|
|
abd1fdefca | ||
|
|
1fc3807fa8 | ||
|
|
ae91e09943 | ||
|
|
5087cc48f5 | ||
|
|
f7da303d29 | ||
|
|
f90bc7b165 | ||
|
|
9a1354d287 | ||
|
|
b3721122f0 | ||
|
|
3c9ee7f82f | ||
|
|
6ec57d02fd | ||
|
|
99f0bb8468 | ||
|
|
a6738a8493 | ||
|
|
17d6ca9459 | ||
|
|
11fa485440 | ||
|
|
3e67b64b90 | ||
|
|
021180dbe3 | ||
|
|
4f012662e6 | ||
|
|
4adcf7bca5 | ||
|
|
8ddaf24a94 | ||
|
|
50ed0bdfda | ||
|
|
e1efd5e4e0 | ||
|
|
fbd54a2a09 | ||
|
|
22020d8607 | ||
|
|
767aa88930 | ||
|
|
3596723d3d | ||
|
|
03ab646713 | ||
|
|
a5ca6132f0 | ||
|
|
ef5b12af4f | ||
|
|
11f668e163 | ||
|
|
bb303f98d2 | ||
|
|
56061e6471 | ||
|
|
faabe2f2a2 | ||
|
|
6dd09a12da | ||
|
|
68ccd983a0 | ||
|
|
89cdf5e52d | ||
|
|
dc27396c6f | ||
|
|
e2eb1137d2 | ||
|
|
b5d47ae2a5 | ||
|
|
c2b1d8660e | ||
|
|
b2024d38b5 | ||
|
|
589201ad39 | ||
|
|
34c0d87703 | ||
|
|
f71078e112 | ||
|
|
fb8c82d838 | ||
|
|
41432a07ed | ||
|
|
2408104bd0 | ||
|
|
d1cd68cda6 | ||
|
|
3dffaddfe8 | ||
|
|
f023810859 | ||
|
|
256d5d4eb1 | ||
|
|
7edbf8fc8d | ||
|
|
2a20075797 | ||
|
|
c91cbeba1a | ||
|
|
9da4710d54 | ||
|
|
2d1ee3bbbe | ||
|
|
758704d464 | ||
|
|
9639caf019 | ||
|
|
0d45365ba3 | ||
|
|
c19a1b3154 | ||
|
|
ac45bd2963 | ||
|
|
f2d94878da | ||
|
|
532eadf434 | ||
|
|
673842acbc | ||
|
|
aaca5ad372 | ||
|
|
f6906ac3fd | ||
|
|
38a5395c78 | ||
|
|
85dcd5a5b9 | ||
|
|
92fbe2e5d5 | ||
|
|
779d5cba1c | ||
|
|
f4217401e2 | ||
|
|
e99bf6b14b | ||
|
|
84775f7e2a | ||
|
|
8c6bc456a8 | ||
|
|
d58d8bbc35 | ||
|
|
0738f32751 | ||
|
|
110962cc37 | ||
|
|
70e529605c | ||
|
|
aa02e04091 | ||
|
|
a670ce1cf0 | ||
|
|
f552e61157 | ||
|
|
e397b68060 | ||
|
|
cb5580d770 | ||
|
|
0cd4ecf701 | ||
|
|
46291d4a63 | ||
|
|
1344d1c424 | ||
|
|
bb0f3d417f | ||
|
|
0f6d02a83f | ||
|
|
56e00c9c55 | ||
|
|
943ca26eae | ||
|
|
8e1c611e92 | ||
|
|
ed5f23faf2 | ||
|
|
60bd7498ea | ||
|
|
ab1de78b74 | ||
|
|
493d547c7b | ||
|
|
7bcfd0f805 | ||
|
|
3e1b151488 | ||
|
|
820ad7cb28 | ||
|
|
686b4800aa | ||
|
|
cb7828820d | ||
|
|
a6d457f664 | ||
|
|
fd95c634f1 | ||
|
|
df0a744cc9 | ||
|
|
af55ef56c9 | ||
|
|
6c6991f0a9 | ||
|
|
d248a85aee | ||
|
|
64642204fc | ||
|
|
5bb84618c3 | ||
|
|
fc5cce71b7 | ||
|
|
b00aa0696f | ||
|
|
02aa14d7b7 | ||
|
|
f9dfb68e9f | ||
|
|
208eb4ad06 | ||
|
|
5608abdf79 | ||
|
|
2e404f2087 | ||
|
|
024201a7b7 | ||
|
|
7dde3b5d27 | ||
|
|
834726b49e | ||
|
|
204f8204f1 | ||
|
|
3cf4790148 | ||
|
|
180f3f08dc | ||
|
|
67698775a3 | ||
|
|
22f97beeaa | ||
|
|
9f98f21d38 | ||
|
|
94ff71281f | ||
|
|
4a96df1574 | ||
|
|
80448d4a24 | ||
|
|
257c4b29f2 | ||
|
|
3f9db33340 | ||
|
|
2c42fbd38d | ||
|
|
8eca3ec76b | ||
|
|
0b64bc580d | ||
|
|
ce2266d0ed | ||
|
|
60530fad6b | ||
|
|
b8f94ed8a9 | ||
|
|
330b1ca5d8 | ||
|
|
40a7f86cef | ||
|
|
a9b3050265 | ||
|
|
b7e64b3abe | ||
|
|
56baa44c99 | ||
|
|
357d815489 | ||
|
|
e542855639 | ||
|
|
6fc3f49152 | ||
|
|
e67c77b322 | ||
|
|
c3291f672e | ||
|
|
176036402a | ||
|
|
9d5488b82d | ||
|
|
a2618dab31 | ||
|
|
bb46241f98 | ||
|
|
ff7fee2d94 | ||
|
|
9a23a24bd3 | ||
|
|
a62762be92 | ||
|
|
60dbc4ffd6 | ||
|
|
773077ab9c | ||
|
|
679d208c8d | ||
|
|
19bec9a9cf | ||
|
|
a7f6ae19f0 | ||
|
|
475f90d224 | ||
|
|
285c9016d7 | ||
|
|
5923d07abc | ||
|
|
91cece81fb | ||
|
|
b714d421f6 | ||
|
|
20852c7ae5 | ||
|
|
f18f04734d | ||
|
|
2eb7cc286b | ||
|
|
ae91e3e2c1 | ||
|
|
d73b437104 | ||
|
|
04b9d9e400 | ||
|
|
6e7741706e | ||
|
|
af0ee0584d | ||
|
|
cabed69c48 | ||
|
|
2832686193 | ||
|
|
d7149c8282 | ||
|
|
571c7e60aa | ||
|
|
a434829a6c | ||
|
|
60b8716315 | ||
|
|
7aba6d15b7 | ||
|
|
48ada59a2f | ||
|
|
c5aa1abb30 | ||
|
|
daeedd6f73 | ||
|
|
cac80159ff | ||
|
|
a5cb23c32e | ||
|
|
0f5b7e5e6d | ||
|
|
12aaebd154 | ||
|
|
8899d4b960 | ||
|
|
1ba91a1fd6 | ||
|
|
c34d89affd | ||
|
|
e07a4fac97 | ||
|
|
76428b2e70 | ||
|
|
78a0763ad7 | ||
|
|
32591f5af7 | ||
|
|
c1898b97c9 | ||
|
|
5c82b6351c | ||
|
|
14f62a6427 | ||
|
|
2a30a6f2e1 | ||
|
|
7b96ee0d9c | ||
|
|
5994908197 | ||
|
|
d6c3badbba | ||
|
|
9aa9e84bc0 | ||
|
|
f3637eab3f | ||
|
|
9f9ee09f9c | ||
|
|
08b986c5e3 | ||
|
|
c8f6c2582b | ||
|
|
ae1c8dbdfc | ||
|
|
3b5c91b15c | ||
|
|
7a6e9cd598 | ||
|
|
6a8f0bda09 | ||
|
|
05305aa27d | ||
|
|
ae59288b1f | ||
|
|
7269a5e527 | ||
|
|
02dffaade5 | ||
|
|
9686650987 | ||
|
|
eefa3cbe98 | ||
|
|
0a4b5c8676 | ||
|
|
dff3cc21fa | ||
|
|
d7bb0e492c | ||
|
|
af92c26124 | ||
|
|
d1ffa246a9 | ||
|
|
4e7b79f98d | ||
|
|
9cff791ce5 | ||
|
|
fdb2d75cf0 | ||
|
|
825c6e1a80 | ||
|
|
ec9366d72b | ||
|
|
ff304ad3d4 | ||
|
|
b71ba411fd | ||
|
|
dfe7b4e6c6 | ||
|
|
96e2de6de1 | ||
|
|
d4d4dc4fd7 | ||
|
|
2ccbb4c0c4 | ||
|
|
709b098054 | ||
|
|
53ff6c72f0 | ||
|
|
8044adcc50 | ||
|
|
9b91da3798 | ||
|
|
286910e722 | ||
|
|
8fe4322536 | ||
|
|
a7005d13df | ||
|
|
8ca4205d2c | ||
|
|
af30b27724 | ||
|
|
2d688e74f2 | ||
|
|
0a4e3501dc | ||
|
|
1b50ca2b57 | ||
|
|
b454bbd662 | ||
|
|
1480920938 | ||
|
|
65a6231f23 | ||
|
|
4b70116754 | ||
|
|
e136b0a9f1 | ||
|
|
e45cc0267f | ||
|
|
d17cce2ca4 | ||
|
|
c93cc296a0 | ||
|
|
f63d42a75b | ||
|
|
1ae7be0846 | ||
|
|
c3388f2a48 | ||
|
|
4909f4395d | ||
|
|
2a8122e280 | ||
|
|
937eaaaaa1 | ||
|
|
f0974509bf | ||
|
|
0d71b0d8fe | ||
|
|
cf0a76c343 | ||
|
|
0f5b90998e | ||
|
|
8963b79db0 | ||
|
|
dc0a698330 | ||
|
|
6e54ed096f | ||
|
|
a552c11983 | ||
|
|
1bdf6888c6 | ||
|
|
f69fcbb783 | ||
|
|
6771431038 | ||
|
|
712568d118 | ||
|
|
4916c4cc50 | ||
|
|
8ed26c72e2 | ||
|
|
919010235c | ||
|
|
580d795054 | ||
|
|
329193f2f2 | ||
|
|
b20acaec6f | ||
|
|
516d420a1e | ||
|
|
b92b34a8ad | ||
|
|
7d7596bbdd | ||
|
|
acac2dba90 | ||
|
|
727ac7d9df | ||
|
|
2fc54ae343 | ||
|
|
e04cd0488e | ||
|
|
f867e21647 | ||
|
|
ec27935d81 | ||
|
|
08ae0387a9 | ||
|
|
ca69c783d3 | ||
|
|
12198dd6df | ||
|
|
d1fbbe1167 | ||
|
|
65e79b0d07 | ||
|
|
9fb9df1843 | ||
|
|
b15166a599 | ||
|
|
bf81dfe806 | ||
|
|
f588b3b6e7 | ||
|
|
c29db74b1d | ||
|
|
213fc3da91 | ||
|
|
ab4f721914 | ||
|
|
8ac9876ec3 | ||
|
|
4fbc113fcb | ||
|
|
4d3d744cd6 | ||
|
|
21416fa8c8 | ||
|
|
f2f973bf00 | ||
|
|
0c655dbfd4 | ||
|
|
ebac947c92 | ||
|
|
ce85a9d0b1 | ||
|
|
f114ca33d5 | ||
|
|
850628f7f6 | ||
|
|
8681d58ffb | ||
|
|
8f2cd5a353 | ||
|
|
f6f12e2566 | ||
|
|
3512ed6da3 | ||
|
|
4a29a77a78 | ||
|
|
aa17962936 | ||
|
|
10cab8dcb4 | ||
|
|
0a720fae72 | ||
|
|
0153b5be22 | ||
|
|
479a9ead03 | ||
|
|
b207a48175 | ||
|
|
9e3311c6f9 | ||
|
|
88257c7e03 | ||
|
|
a30e2f295f | ||
|
|
96ad9dee18 | ||
|
|
8800195c2c | ||
|
|
74b7c938a8 | ||
|
|
3dcacfe631 | ||
|
|
bf02406bf4 | ||
|
|
4371dbda3c | ||
|
|
c6640cef96 | ||
|
|
11ca6972c6 | ||
|
|
e235d22c7c | ||
|
|
512d74568a | ||
|
|
617c2ba578 | ||
|
|
5476c6248c | ||
|
|
916366bd10 | ||
|
|
5e66893719 | ||
|
|
16964b4987 | ||
|
|
73846ffa9b | ||
|
|
d5824239f5 | ||
|
|
c4270fc918 | ||
|
|
a29a1605a7 | ||
|
|
22868a594f | ||
|
|
aed64a27e8 | ||
|
|
2b338a63ba | ||
|
|
cda4027f83 | ||
|
|
7814269e15 | ||
|
|
e2175db7cb | ||
|
|
f1828b0c92 | ||
|
|
5cf9fab4f2 | ||
|
|
c3764df4e2 | ||
|
|
a2a1033701 | ||
|
|
2536f7fc6f | ||
|
|
b6fe78b82c | ||
|
|
f8cddf0bce | ||
|
|
2c7a32b47e | ||
|
|
e6dd4c6cfe | ||
|
|
fb756fe9ba | ||
|
|
c21e890b48 | ||
|
|
3720aa98df | ||
|
|
640aa7854a | ||
|
|
9689690730 | ||
|
|
a08620d7c9 | ||
|
|
fdbdc8e3f3 | ||
|
|
071d3b3023 | ||
|
|
f6b12d946a | ||
|
|
11572b4939 | ||
|
|
0c75b9a994 | ||
|
|
ed44aad076 | ||
|
|
6dc00bff74 | ||
|
|
5f2407baeb | ||
|
|
45f41f3cf7 | ||
|
|
0c29d61a35 | ||
|
|
58e549e3b3 | ||
|
|
2ae4f6b338 | ||
|
|
e28e41c1d9 | ||
|
|
05dfe51260 | ||
|
|
ec6e94f4ca | ||
|
|
bdb332bd79 | ||
|
|
9295dfc7c1 | ||
|
|
fb4bee4801 | ||
|
|
8b7c2aa48d | ||
|
|
9bec96f160 | ||
|
|
cb517c907d | ||
|
|
a6f5e59cbb | ||
|
|
9420143a36 | ||
|
|
eb8835b63a | ||
|
|
f9468db266 | ||
|
|
1135ba054c | ||
|
|
8f7509a23f | ||
|
|
cba9ee98ad | ||
|
|
0ec0fef8f3 | ||
|
|
a348562f56 | ||
|
|
392a606bbc | ||
|
|
440bed4485 | ||
|
|
a321966e5b | ||
|
|
f180c1018f | ||
|
|
f267aa6dc6 | ||
|
|
1c74e83c2c | ||
|
|
099a895eb6 | ||
|
|
3b810f84da | ||
|
|
10f2c7d36b | ||
|
|
5b849638de | ||
|
|
857fd6f782 | ||
|
|
29edec63ab | ||
|
|
c6afc4756a | ||
|
|
365657cf88 | ||
|
|
5441dedcf4 | ||
|
|
254b6d8af2 | ||
|
|
1459aea5cf | ||
|
|
80d8525671 | ||
|
|
389a165ed3 | ||
|
|
d8f309d21b | ||
|
|
ee983ddfaa | ||
|
|
c1cdd37e9d | ||
|
|
646f05933d | ||
|
|
3f854a7f27 | ||
|
|
740dbea8bd | ||
|
|
95a44936ac | ||
|
|
9deafc7371 | ||
|
|
c1af7e374d | ||
|
|
cd71db72be | ||
|
|
a9d90f966b | ||
|
|
1a323ca551 | ||
|
|
2d85e191bc | ||
|
|
1b971a859c | ||
|
|
78b697d1c2 | ||
|
|
9da2ce6672 | ||
|
|
39fabd501d | ||
|
|
3f1867dd6f | ||
|
|
68d29041b0 | ||
|
|
b300e86962 | ||
|
|
562ecf2ee5 | ||
|
|
d294938a2c | ||
|
|
027cf23069 | ||
|
|
c4598637bb | ||
|
|
8a94b6a334 | ||
|
|
c80c163212 | ||
|
|
921a994eb6 | ||
|
|
65e60da288 | ||
|
|
661185083e | ||
|
|
a2a26555e2 | ||
|
|
7f11250b79 | ||
|
|
a6d2f2ecf9 | ||
|
|
399d447eec | ||
|
|
fb6204e47c | ||
|
|
566856c8fb | ||
|
|
d29dd207b6 | ||
|
|
e20489900d | ||
|
|
567a268ded | ||
|
|
6a57d242f9 | ||
|
|
41e0851d70 | ||
|
|
95b378348c | ||
|
|
1309bf7c6e | ||
|
|
2531b507b0 | ||
|
|
16dc0419e2 | ||
|
|
4e7ec6bfb4 | ||
|
|
035ad48fe4 | ||
|
|
ff7c582157 | ||
|
|
0876a91e17 | ||
|
|
a2d3c1d73e | ||
|
|
1a721deee6 | ||
|
|
4355d9c83f | ||
|
|
239891c400 | ||
|
|
ac10aa0a1e | ||
|
|
7ecf414a47 | ||
|
|
87c96d06a4 | ||
|
|
26a8d9c6b5 | ||
|
|
947a77f619 | ||
|
|
c850513b7f | ||
|
|
c47d827139 | ||
|
|
a2684ae47d | ||
|
|
2b1339b560 | ||
|
|
59aec2bcc9 | ||
|
|
61d1581b96 | ||
|
|
3e1d785f58 | ||
|
|
7a362411b1 | ||
|
|
e95dfe4671 | ||
|
|
e7b79bb6b9 | ||
|
|
59bc309f5b | ||
|
|
d2fb40f317 |
392
.gitattributes
vendored
@@ -1,392 +0,0 @@
|
||||
thermion_dart/native/lib/macos/debug/libbackendtest_combined.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libfilabridge.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libgltfio_core.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libibl-lite.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libcamutils.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libgeometry_combined.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libbackend.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libuberarchive.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libbasis_transcoder.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libgeometry.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libmikktspace.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libzstd.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libcivetweb.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libsdl2.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libmeshoptimizer.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libmathio.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libbasis_transcoder.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libfilament-iblprefilter.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libmatdbg_combined.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libspirv-cross-msl.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libtinyexr.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libzstd.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libshaders.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libSPIRV-Tools.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libgeometry.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libimageio.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libOGLCompiler.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libSPIRV-Tools-diff.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libfilamat_combined.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libfilameshio.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libmathio.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libshaders.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libassimp.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libmatlang.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libibl.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libmikktspace.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libmatdbg_combined.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/swift/ThermionDartTexture.h filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libfilamat_combined.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libfilament.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libibl.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libstb.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libuberzlib.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libbasis_encoder.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libimgui.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libdracodec.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libimageio.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libfilament.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libstb.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libbackend_test.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libgetopt.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libgtest.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libfilabridge.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libmatdbg_resources.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libuberarchive.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libfilaflat.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libSPIRV.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libpng.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libvkshaders.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libutils.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libimage.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libmatdbg_resources.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libsuzanne-resources.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libfilamat_lite.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libgeometry_combined.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libshaders.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libsmol-v.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libmath.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libgeometry.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libmeshoptimizer.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libpng16.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libbenchmark_main.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libbluegl.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libuberzlib.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/swift/build.sh filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libdracodec.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libibl.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libktxreader.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libbluegl.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libfilaflat.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libpng.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libbluevk.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libfilaflat.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libfilamat.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libglslang.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libcivetweb.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libktxreader.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libbenchmark.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libgltf-demo-resources.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libgltfio_core.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libSPIRV-Tools-lint.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libdracodec.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libfilagui.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libmikktspace.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libsample-resources.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libOSDependent.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libspirv-cross-glsl.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libgltfio.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libimage.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libpng.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libgltfio.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libmatdbg.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libspirv-cross-core.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libstb.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libfilamat.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libfilamat_lite.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libfilamat.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libviewer.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libutils.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libvkshaders.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libcamutils.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libbackend.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libfilagui.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libmath.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libviewer.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/swift/libdartfilamenttexture.dylib filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libfilament-iblprefilter.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libuberzlib.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libutils.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libviewer.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libfilamat_lite.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libfilameshio.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libcivetweb.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libbasis_transcoder.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libSPIRV-Tools-link.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libvkshaders.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libz.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libbluevk.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libtinyexr.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libzstd.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libcamutils.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libfilabridge.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libmatdbg.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libimage.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libsmol-v.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libgltfio_core.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libsmol-v.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libfilament-iblprefilter.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libfilament.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libmeshoptimizer.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libbackend.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libibl-lite.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libktxreader.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libfilameshio.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/swift filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libtinyexr.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libSPIRV-Tools-reduce.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libuberarchive.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libibl-lite.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libimageio.a filter=lfs diff=lfs merge=lfs -text
|
||||
materials/Makefile filter=lfs diff=lfs merge=lfs -text
|
||||
materials/gizmo.filamat filter=lfs diff=lfs merge=lfs -text
|
||||
materials/image.filamat filter=lfs diff=lfs merge=lfs -text
|
||||
materials/unlit_opaque.mat filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libktxreader.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libcamutils.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libuberzlib.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libutils.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libdracodec.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libbackend.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libibl.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libmikktspace.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libzstd.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libzstd.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libfilament.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libmeshoptimizer.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libutils.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libvkshaders.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libbluevk.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libgeometry.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libgltfio_core.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libstb.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libgltfio_core.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libimage.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libvkshaders.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64 filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libfilameshio.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libcivetweb.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libfilabridge.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libuberzlib.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libfilamat.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libuberarchive.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libbackend.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libimage.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libsmol-v.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libutils.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libbasis_transcoder.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libdracodec.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libfilament.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libfilament-iblprefilter.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libfilamat.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libibl.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libvkshaders.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libfilaflat.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libibl-lite.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libmeshoptimizer.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libsmol-v.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libfilaflat.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libfilaflat.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libzstd.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libbackend.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libdracodec.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libcamutils.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libfilament.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libshaders.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libuberzlib.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libbluevk.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libcamutils.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libsmol-v.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libcivetweb.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libshaders.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libktxreader.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libbasis_transcoder.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libgltfio_core.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libfilaflat.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libuberarchive.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libfilameshio.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libbluevk.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libfilabridge.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libgltfio_core.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libibl.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libmikktspace.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libzstd.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libfilameshio.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libfilament-iblprefilter.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libshaders.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libstb.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libfilament-iblprefilter.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libimage.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libfilament.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libgeometry.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libdracodec.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libbasis_transcoder.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libgeometry.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libuberarchive.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libbluevk.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libfilabridge.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libuberzlib.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libimage.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libviewer.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libibl-lite.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86 filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libibl-lite.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libuberarchive.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libktxreader.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libfilament-iblprefilter.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libfilameshio.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libstb.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libgeometry.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libviewer.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libktxreader.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libmeshoptimizer.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libibl.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libmeshoptimizer.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libfilamat.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libibl-lite.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libvkshaders.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libcamutils.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libcivetweb.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libsmol-v.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libutils.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libfilabridge.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libmikktspace.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libmikktspace.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libbackend.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libfilamat.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libviewer.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libviewer.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libcivetweb.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libshaders.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libbasis_transcoder.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libstb.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_flutter_federated/thermion_flutter/example/web/thermion_dart.wasm filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_flutter_federated/thermion_flutter/example/web/main.unopt.wasm filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_flutter_federated/thermion_flutter/example/web/main.wasm filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_flutter_federated/thermion_flutter/example/web/thermion_dart.js filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_flutter_federated/thermion_flutter/example/web/thermion_dart.worker.js filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libmatdbg_resources.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libuberarchive.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libbasis_transcoder.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libcivetweb.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libgltfio_core.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libimage.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libviewer.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libvkshaders.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libfilagui.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libfilamat_combined.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libshaders.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libtinyexr.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libmeshoptimizer.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libcamutils.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libfilamat.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libibl.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libmikktspace.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libuberzlib.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libutils.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libzstd.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libfilaflat.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libfilamat_lite.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libgltfio.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libimageio.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libgeometry_combined.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libbluevk.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libdracodec.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libfilabridge.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libfilameshio.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libktxreader.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libmatdbg.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libmathio.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libsmol-v.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libbackend.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libbluegl.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libfilament.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libgeometry.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libstb.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libpng.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libfilament-iblprefilter.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libibl-lite.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libmatdbg_combined.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libmath.a filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/default_env/default_env_skybox.ktx filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/shapes/shapes.gltf filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/3.glb filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/BusterDrone/textures/Boden_baseColor.jpg filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/FlightHelmet/FlightHelmet.bin filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/FlightHelmet/FlightHelmet.gltf filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic1.png filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/default_env filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/BusterDrone/textures/Boden_metallicRoughness.jpg filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/FlightHelmet/FlightHelmet_baseColor3.png filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic4.png filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/FlightHelmet/README.md filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/default_env/default_env_ibl.ktx filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/shapes/shapes.blend filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/shapes/shapes.glb filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/2.glb filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/FlightHelmet filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/FlightHelmet/FlightHelmet_normal.png filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/FlightHelmet/FlightHelmet_normal1.png filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic3.png filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/background.ktx filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/BusterDrone/scene.bin filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/FlightHelmet/FlightHelmet_baseColor4.png filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/FlightHelmet/FlightHelmet_normal4.png filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/shapes/shapes.blend1 filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/solidcolor.mat filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/BusterDrone/textures/body_baseColor.jpg filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/BusterDrone/textures/body_emissive.jpg filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic.png filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic2.png filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/solidcolor.filamat filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/1.glb filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/BusterDrone/scene.gltf filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/FlightHelmet/FlightHelmet_normal2.png filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/shapes/texture_test.png filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/FlightHelmet/FlightHelmet_normal3.png filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/BusterDrone/textures filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/BusterDrone/textures/Boden_normal.jpg filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/BusterDrone/textures/body_normal.jpg filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/BusterDrone/textures/material_metallicRoughness.jpg filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/FlightHelmet/FlightHelmet_baseColor.png filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/FlightHelmet/FlightHelmet_baseColor2.png filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/shapes filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/shapes/shapes.bin filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/BusterDrone filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/BusterDrone/textures/body_metallicRoughness.jpg filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/BusterDrone/textures/material_baseColor.jpg filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/BusterDrone/textures/material_normal.jpg filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/FlightHelmet/FlightHelmet_baseColor1.png filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/background.png filter=lfs diff=lfs merge=lfs -text
|
||||
examples/flutter/example/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/assets/shapes/shapes.glb filter=lfs diff=lfs merge=lfs -text
|
||||
examples/flutter/example/build/app/intermediates/assets/debug/flutter_assets/assets/2.glb filter=lfs diff=lfs merge=lfs -text
|
||||
examples/flutter/example/build/app/intermediates/assets/debug/flutter_assets/assets/3.glb filter=lfs diff=lfs merge=lfs -text
|
||||
examples/flutter/example/build/macos/Build/Products/Debug/example.app/Contents/Frameworks/App.framework/Versions/A/Resources/flutter_assets/assets/shapes/shapes.glb filter=lfs diff=lfs merge=lfs -text
|
||||
examples/flutter/example/build/app/intermediates/assets/debug/flutter_assets/assets/1.glb filter=lfs diff=lfs merge=lfs -text
|
||||
examples/flutter/example/build/app/intermediates/flutter/debug/flutter_assets/assets/shapes/shapes.glb filter=lfs diff=lfs merge=lfs -text
|
||||
examples/flutter/example/build/macos/Build/Products/Debug/example.app/Contents/Frameworks/App.framework/Versions/A/Resources/flutter_assets/assets/1.glb filter=lfs diff=lfs merge=lfs -text
|
||||
examples/flutter/example/build/macos/Build/Products/Debug/example.app/Contents/Frameworks/App.framework/Versions/A/Resources/flutter_assets/assets/3.glb filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/test/assets/shapes.glb filter=lfs diff=lfs merge=lfs -text
|
||||
examples/flutter/example/build/app/intermediates/flutter/debug/flutter_assets/assets/1.glb filter=lfs diff=lfs merge=lfs -text
|
||||
examples/flutter/example/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/assets/1.glb filter=lfs diff=lfs merge=lfs -text
|
||||
examples/flutter/example/build/app/intermediates/flutter/debug/flutter_assets/assets/3.glb filter=lfs diff=lfs merge=lfs -text
|
||||
examples/flutter/example/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/assets/2.glb filter=lfs diff=lfs merge=lfs -text
|
||||
examples/flutter/example/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/assets/3.glb filter=lfs diff=lfs merge=lfs -text
|
||||
examples/flutter/example/build/macos/Build/Products/Debug/example.app/Contents/Frameworks/App.framework/Versions/A/Resources/flutter_assets/assets/2.glb filter=lfs diff=lfs merge=lfs -text
|
||||
examples/flutter/example/build/app/intermediates/assets/debug/flutter_assets/assets/shapes/shapes.glb filter=lfs diff=lfs merge=lfs -text
|
||||
examples/flutter/example/build/app/intermediates/flutter/debug/flutter_assets/assets/2.glb filter=lfs diff=lfs merge=lfs -text
|
||||
29
.github/actions/setup-build-env/action.yml
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
name: 'Setup Build Environment'
|
||||
description: 'Set up LLVM, MESA, and Flutter for builds'
|
||||
runs:
|
||||
using: 'composite'
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Setup LLVM
|
||||
uses: KyleMayes/install-llvm-action@v1
|
||||
with:
|
||||
version: "16"
|
||||
- name: Add LLVM to PATH
|
||||
shell: bash
|
||||
run: |
|
||||
echo "${{ github.workspace }}/llvm/bin" >> $GITHUB_PATH
|
||||
echo "LD_LIBRARY_PATH=${{ github.workspace }}/llvm/lib/x86_64-unknown-linux-gnu/" >> $GITHUB_ENV
|
||||
- name: Verify installation
|
||||
shell: bash
|
||||
run: clang --version
|
||||
- name: Install MESA
|
||||
shell: bash
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y xvfb
|
||||
sudo apt-get install -y libosmesa6-dev
|
||||
- name: Set up Flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
channel: master
|
||||
architecture: X64
|
||||
203
.github/workflows/dart.yml
vendored
Normal file
@@ -0,0 +1,203 @@
|
||||
name: Dart
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ "develop" ]
|
||||
pull_request:
|
||||
branches: [ "develop" ]
|
||||
|
||||
jobs:
|
||||
compile-web-wasm:
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Setup CMake
|
||||
uses: jwlawson/actions-setup-cmake@v2
|
||||
with:
|
||||
cmake-version: '3.25.0' # or 'latest'
|
||||
- name: Setup Emscripten
|
||||
uses: mymindstorm/setup-emsdk@v14
|
||||
with:
|
||||
version: 'latest'
|
||||
- name: Compile web
|
||||
run: make wasm
|
||||
dart-tests:
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: ./.github/actions/setup-build-env
|
||||
- run: |
|
||||
cd thermion_dart
|
||||
dart pub get
|
||||
xvfb-run dart --enable-experiment=native-assets test \
|
||||
test/asset_tests.dart \
|
||||
test/instancing_tests.dart \
|
||||
test/light_tests.dart \
|
||||
test/entity_tests.dart \
|
||||
test/geometry_tests.dart \
|
||||
test/view_tests.dart \
|
||||
test/postprocessing_tests.dart \
|
||||
test/scene_tests.dart \
|
||||
test/picking_tests.dart \
|
||||
--concurrency=1
|
||||
#test/overlay_tests.dart \
|
||||
- name: Zip output
|
||||
run: zip -r output.zip ./thermion_dart/test/output
|
||||
- name: Upload test output
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: golden-images-${{ github.sha }}
|
||||
path: output.zip
|
||||
- name: Download golden images from previous run
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
gh run download 15990504915 \
|
||||
--name golden-images-4b9870244a529bf086280331d38c55e294425b4f \
|
||||
--dir ./thermion_dart/test/golden-downloads
|
||||
- name: Unzip golden images
|
||||
run: |
|
||||
cd thermion_dart/test/golden-downloads && unzip output.zip
|
||||
- name: Install Python dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install Pillow numpy
|
||||
- name: Compare golden images
|
||||
run: cd thermion_dart/test && python compare_goldens.py
|
||||
- name: Upload logs
|
||||
if: failure() || steps.build.outcome == 'failure'
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: build-logs
|
||||
path: |
|
||||
${{ github.workspace }}/thermion_dart/.dart_tool/thermion_dart/log/build.log
|
||||
retention-days: 5
|
||||
flutter_examples:
|
||||
name: flutter_examples
|
||||
runs-on: macos-latest
|
||||
defaults:
|
||||
run:
|
||||
working-directory: examples/flutter
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Set up Flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
channel: master
|
||||
architecture: ARM64
|
||||
- name: Set up JDK 17
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
java-version: '17'
|
||||
distribution: 'temurin'
|
||||
- name: Install Android SDK
|
||||
uses: android-actions/setup-android@v3
|
||||
with:
|
||||
api-level: 34
|
||||
build-tools: 34.0.0
|
||||
cmake-version: 3.22.1
|
||||
ndk-version: 25.1.893739
|
||||
- name: Accept Android SDK licenses
|
||||
run: |
|
||||
yes | $ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager --licenses
|
||||
- run: cd quickstart && flutter pub get && flutter build macos
|
||||
# - run: cd quickstart && flutter pub get && flutter build ios
|
||||
- run: cd quickstart && flutter pub get && flutter build appbundle
|
||||
- run: cd quickstart && flutter build web
|
||||
- run: cd picking && flutter pub get && flutter build macos
|
||||
# - run: cd picking && flutter pub get && flutter build ios
|
||||
- run: cd picking && flutter pub get && flutter build appbundle
|
||||
- run: cd picking && flutter build web
|
||||
- name: Upload logs
|
||||
if: failure() || steps.build.outcome == 'failure'
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: build-logs
|
||||
path: |
|
||||
# D:\a\thermion\thermion\thermion_dart\.dart_tool\thermion_dart\log\build.log
|
||||
/Users/runner/work/thermion/thermion/thermion_dart/.dart_tool/thermion_dart/log/build.log
|
||||
retention-days: 5
|
||||
flutter_examples_windows:
|
||||
name: flutter_examples_windows
|
||||
runs-on: windows-latest
|
||||
defaults:
|
||||
run:
|
||||
working-directory: examples/flutter
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Set up Flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
channel: master
|
||||
- run: cd quickstart && flutter pub get && flutter build windows
|
||||
- run: cd picking && flutter pub get && flutter build windows
|
||||
- name: Upload logs
|
||||
if: failure() || steps.build.outcome == 'failure'
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: build-logs
|
||||
path: |
|
||||
D:\a\thermion\thermion\thermion_dart\.dart_tool\thermion_dart\log\build.log
|
||||
retention-days: 5
|
||||
# thermion_dart:
|
||||
# name: thermion_dart
|
||||
# runs-on: macos-latest
|
||||
# defaults:
|
||||
# run:
|
||||
# working-directory: thermion_dart
|
||||
# steps:
|
||||
# - uses: actions/checkout@v4
|
||||
# - name: Set up Flutter
|
||||
# uses: subosito/flutter-action@v2
|
||||
# with:
|
||||
# channel: master
|
||||
# - run: flutter pub get
|
||||
# - run: dart --enable-experiment=native-assets test -j1 test/light_tests.dart
|
||||
# thermion_flutter:
|
||||
# name: thermion_flutter
|
||||
# runs-on: macos-13
|
||||
# defaults:
|
||||
# run:
|
||||
# working-directory: thermion_flutter/thermion_flutter # Adjust this path
|
||||
# steps:
|
||||
# - uses: actions/checkout@v4
|
||||
# - uses: dart-lang/setup-dart@9a04e6d73cca37bd455e0608d7e5092f881fd603
|
||||
# - name: Install dependencies
|
||||
# run: dart pub get
|
||||
#
|
||||
#
|
||||
##- uses: actions/checkout@v4
|
||||
#- name: Setup LLVM
|
||||
# uses: KyleMayes/install-llvm-action@v1
|
||||
# with:
|
||||
# version: "16"
|
||||
#- name: Add LLVM to PATH
|
||||
# run: |
|
||||
# echo "${{ github.workspace }}/llvm/bin" >> $GITHUB_PATH
|
||||
# echo "LD_LIBRARY_PATH=${{ github.workspace }}/llvm/lib/x86_64-unknown-linux-gnu/" >> $GITHUB_ENV
|
||||
#- name: Verify installation
|
||||
# run: clang --version
|
||||
#- name: Install MESA
|
||||
# run: |
|
||||
# sudo apt-get update
|
||||
# sudo apt-get install -y xvfb
|
||||
# sudo apt-get install -y libosmesa6-dev
|
||||
# #sudo apt-get -y build-dep mesa
|
||||
# #git clone https://gitlab.freedesktop.org/mesa/mesa.git
|
||||
# #cd mesa
|
||||
# #git checkout mesa-23.2.1
|
||||
# #mkdir -p out
|
||||
# #meson setup builddir/ -Dprefix="$(pwd)/out" -Dosmesa=true -Dglx=xlib -Dgallium-drivers=swrast -Dvulkan-drivers=swrast
|
||||
# #meson install -C builddir/
|
||||
#- name: Install Vulkan SDK and dependencies
|
||||
# run: |
|
||||
# wget -qO - https://packages.lunarg.com/lunarg-signing-key-pub.asc | sudo apt-key add -
|
||||
# sudo wget -qO /etc/apt/sources.list.d/lunarg-vulkan-jammy.list https://packages.lunarg.com/vulkan/lunarg-vulkan-jammy.list
|
||||
# sudo apt-get update
|
||||
# sudo apt-get install -y vulkan-sdk
|
||||
#- name: Set up Flutter
|
||||
# uses: subosito/flutter-action@v2
|
||||
# with:
|
||||
# channel: master
|
||||
# architecture: X64
|
||||
|
||||
2
.gitignore
vendored
@@ -1,5 +1,4 @@
|
||||
**/*/.cxx
|
||||
**/.github
|
||||
**/.idea
|
||||
.dart_tool
|
||||
**/.dart_tool
|
||||
@@ -10,3 +9,4 @@
|
||||
pubspec_overrides.yaml
|
||||
/pubspec.lock
|
||||
*.iml
|
||||
**/*/*.filamat
|
||||
|
||||
1485
CHANGELOG.md
76
Dockerfile
Normal file
@@ -0,0 +1,76 @@
|
||||
FROM ubuntu:22.04
|
||||
|
||||
# Set non-interactive mode for apt
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
# Install dependencies and add LLVM repository
|
||||
RUN apt-get update && apt-get install -y \
|
||||
git \
|
||||
build-essential \
|
||||
cmake \
|
||||
ninja-build \
|
||||
libgl1-mesa-dev \
|
||||
libc++-dev \
|
||||
libc++abi-dev \
|
||||
libsdl2-dev \
|
||||
libxi-dev \
|
||||
libtbb-dev \
|
||||
libassimp-dev \
|
||||
python3 \
|
||||
python3-pip \
|
||||
curl \
|
||||
wget \
|
||||
software-properties-common \
|
||||
lsb-release \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Add LLVM repository and install Clang 16
|
||||
RUN wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - \
|
||||
&& add-apt-repository "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-16 main" \
|
||||
&& apt-get update \
|
||||
&& apt-get install -y \
|
||||
clang-16 \
|
||||
clang++-16 \
|
||||
libc++-16-dev \
|
||||
libc++abi-16-dev \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Set Clang 16 as default
|
||||
RUN update-alternatives --install /usr/bin/clang clang /usr/bin/clang-16 100 \
|
||||
&& update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-16 100
|
||||
|
||||
# Set environment variables for Clang
|
||||
ENV CC=clang-16
|
||||
ENV CXX=clang++-16
|
||||
|
||||
# Set working directory
|
||||
WORKDIR /opt
|
||||
|
||||
# Clone the filament repository
|
||||
RUN git clone https://github.com/google/filament.git
|
||||
|
||||
# Change to filament directory
|
||||
WORKDIR /opt/filament
|
||||
|
||||
# Checkout the specific version
|
||||
RUN git checkout v1.58.0
|
||||
|
||||
# Add CMAKE_POSITION_INDEPENDENT_CODE setting after project() line
|
||||
RUN sed -i '/^project(/a set(CMAKE_POSITION_INDEPENDENT_CODE ON)\nadd_compile_definitions(GLTFIO_USE_FILESYSTEM=0)' CMakeLists.txt
|
||||
RUN sed -i -e '/^#define GLTFIO_USE_FILESYSTEM 1$/i\
|
||||
#ifndef GLTFIO_USE_FILESYSTEM' -e '/^#define GLTFIO_USE_FILESYSTEM 1$/a\
|
||||
#endif' libs/gltfio/src/FFilamentAsset.h
|
||||
|
||||
# Make build script executable
|
||||
RUN chmod +x build.sh
|
||||
|
||||
# Run the build commands
|
||||
RUN ./build.sh -l -i -f -p desktop release
|
||||
RUN ./build.sh -l -i -f -p desktop release zstd
|
||||
RUN ./build.sh -l -i -f -p desktop release tinyexr
|
||||
RUN ./build.sh -l -i -f -p desktop release imageio
|
||||
RUN zip -r filament-v1.58.0-linux-release.zip /opt/filament/out/release/filament/lib/x86_64/*.a /opt/filament/out/cmake-release/third_party/tinyexr/tnt/libtinyexr.a /opt/filament/out/cmake-release/libs/imageio/libimageio.a
|
||||
# Set the working directory to the build output
|
||||
WORKDIR /opt/filament/out/release
|
||||
|
||||
CMD ["/bin/bash"]
|
||||
56
Makefile
@@ -1,35 +1,59 @@
|
||||
dart-web:
|
||||
cd thermion_dart/native/web; mkdir -p build && cd build && emcmake cmake .. && emmake make
|
||||
dart-web-clean:
|
||||
wasm:
|
||||
@if [ ! -f thermion_dart/native/web/lib/release/filament-v1.58.0-web-release.zip ]; then \
|
||||
echo "Downloading filament-v1.58.0-web-release.zip..."; \
|
||||
mkdir -p thermion_dart/native/web/lib/release; \
|
||||
curl -L -o thermion_dart/native/web/lib/release/filament-v1.58.0-web-release.zip \
|
||||
https://pub-c8b6266320924116aaddce03b5313c0a.r2.dev/filament-v1.58.0-web-release.zip; \
|
||||
echo "Extracting filament-v1.58.0-web-release.zip..."; \
|
||||
cd thermion_dart/native/web/lib/release && \
|
||||
unzip filament-v1.58.0-web-release.zip; \
|
||||
fi
|
||||
cd thermion_dart/native/web && \
|
||||
mkdir -p build && \
|
||||
cd build && \
|
||||
emcmake cmake .. && \
|
||||
emmake make
|
||||
wasm-clean:
|
||||
cd thermion_dart/native/web && rm -rf build
|
||||
dart-wasm-cli-example: dart-web-clean dart-web
|
||||
cd thermion_dart/examples/cli_wasm/bin && dart compile wasm example_cli.dart && node main.js
|
||||
dart-web-example: dart-web
|
||||
cp thermion_dart/native/web/build/build/out/thermion_dart* examples/web_wasm/bin
|
||||
cd thermion_dart/examples/web_wasm/bin && dart compile wasm example_web.dart
|
||||
wasm-example-web:
|
||||
cd examples/dart/js_wasm
|
||||
mkdir -p build
|
||||
dart compile js web/example.dart -o build/example.dart.js
|
||||
|
||||
flutter-example-web: dart-web-clean dart-web
|
||||
cd thermion_flutter_federated/thermion_flutter/example/web && dart compile wasm main.dart && cd .. && flutter build web --wasm --profile
|
||||
flutter-example-macos:
|
||||
cd thermion_flutter_federated/thermion_flutter/example/web && flutter run -d macos
|
||||
swift-bindings:
|
||||
swiftc -c thermion_dart/native/macos/ThermionTexture.swift -module-name swift_module -emit-objc-header-path thermion_dart/native/include/generated/ThermionTextureSwiftObjCAPI.h -emit-library -o thermion_dart/test/generated/libThermionTextureSwift.dylib
|
||||
cd thermion_dart/ && dart --enable-experiment=native-assets run ffigen --config ffigen/swift.yaml
|
||||
bindings:
|
||||
cd thermion_dart/ && dart --enable-experiment=native-assets run ffigen --config ffigen/native.yaml
|
||||
shared:
|
||||
cd thermion_dart/native && make
|
||||
|
||||
# We compile a small set of custom materials for various helpers (background image, gizmo, etc)
|
||||
# You must specify the `FILAMENT_PATH` environment variable, either the path /out/release
|
||||
# eg: FILAMENT_PATH=/path/to/filament/out/release/bin make materials
|
||||
#
|
||||
materials: FORCE
|
||||
ifndef FILAMENT_PATH
|
||||
@echo "FILAMENT_PATH is not set"
|
||||
else
|
||||
@echo "Using Filament build from ${FILAMENT_PATH}"
|
||||
@for material in unlit image gizmo grid; do \
|
||||
${FILAMENT_PATH}/matc -a opengl -a metal -o materials/$$material.filamat materials/$$material.mat; \
|
||||
$(FILAMENT_PATH)/resgen -c -p $$material -x thermion_dart/native/include/material/ materials/$$material.filamat; \
|
||||
echo '#include "'$$material'.h"' | cat - thermion_dart/native/include/material/$$material.c > thermion_dart/native/include/material/$$material.c.new; \
|
||||
mv thermion_dart/native/include/material/$$material.c.new thermion_dart/native/include/material/$$material.c; \
|
||||
done
|
||||
./materials/build.sh
|
||||
endif
|
||||
|
||||
#rm materials/*.filamat
|
||||
resources: FORCE
|
||||
ifndef FILAMENT_PATH
|
||||
@echo "FILAMENT_PATH is not set"
|
||||
else
|
||||
@echo "Using Filament build from ${FILAMENT_PATH}"
|
||||
@for gizmo in translation rotation; do \
|
||||
$(FILAMENT_PATH)/resgen -c -p $${gizmo}_gizmo_glb -x thermion_dart/native/include/resources assets/$${gizmo}_gizmo.glb || exit 1; \
|
||||
echo '#include "'$${gizmo}_gizmo_glb.h'"' | cat - thermion_dart/native/include/resources/$${gizmo}_gizmo_glb.c > thermion_dart/native/include/resources/$${gizmo}_gizmo_glb.c.new; \
|
||||
mv thermion_dart/native/include/resources/$${gizmo}_gizmo_glb.c.new thermion_dart/native/include/resources/$${gizmo}_gizmo_glb.c; \
|
||||
done
|
||||
endif
|
||||
|
||||
FORCE: ;
|
||||
|
||||
|
||||
48
README.md
@@ -3,7 +3,7 @@
|
||||
<p align="center">
|
||||
<a href="https://thermion.dev/quickstart">Quickstart (Flutter)</a> •
|
||||
<a href="https://thermion.dev/">Documentation</a> •
|
||||
<a href="https://thermion.dev/examples">Showcase</a> •
|
||||
<a href="https://thermion.dev/showcase">Showcase</a> •
|
||||
<a href="https://dartpad.thermion.dev/">Playground</a> •
|
||||
<a href="https://discord.gg/h2VdDK3EAQ">Discord</a>
|
||||
</p>
|
||||
@@ -15,6 +15,8 @@
|
||||
<a href="https://discord.gg/h2VdDK3EAQ"><img src="https://img.shields.io/discord/993167615587520602?logo=discord&logoColor=fff&labelColor=333940" alt="discord"></a>
|
||||
<a href="https://github.com/nmfisher/thermion"><img src="https://img.shields.io/github/contributors/nmfisher/flutter_filament?logo=github&labelColor=333940" alt="contributors"></a>
|
||||
|
||||
https://github.com/user-attachments/assets/b0c07b5a-6156-4e42-a09b-5f9bd85fbf32
|
||||
|
||||
### Features
|
||||
|
||||
- Supports iOS (arm64), MacOS (arm64/x64), Android (arm64), Windows (x64) (>= 10), Web/WASM
|
||||
@@ -22,6 +24,47 @@
|
||||
- camera/entity manipulation with mouse (desktop) and gestures (mobile)
|
||||
- skinning + morph animations
|
||||
|
||||
Uses the Filament PBR engine (currently v1.56.4).
|
||||
|
||||
### Quickstart (Flutter)
|
||||
|
||||
From the command line:
|
||||
|
||||
```bash
|
||||
flutter channel master
|
||||
flutter upgrade
|
||||
flutter config --enable-native-assets
|
||||
```
|
||||
|
||||
In your Flutter app:
|
||||
|
||||
```dart
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Stack(children: [
|
||||
Positioned.fill(
|
||||
child: ViewerWidget(
|
||||
assetPath: "assets/cube.glb",
|
||||
skyboxPath: "assets/default_env_skybox.ktx",
|
||||
iblPath: "assets/default_env_ibl.ktx",
|
||||
transformToUnitCube: true,
|
||||
initialCameraPosition: Vector3(0, 0, 6),
|
||||
background: Colors.blue,
|
||||
manipulatorType: ManipulatorType.ORBIT,
|
||||
onViewerAvailable: (viewer) async {
|
||||
await Future.delayed(const Duration(seconds: 5));
|
||||
await viewer.removeSkybox();
|
||||
},
|
||||
initial: Container(
|
||||
color: Colors.red,
|
||||
),
|
||||
))]));
|
||||
}
|
||||
```
|
||||
|
||||
> the first time you build an app that consumes this package, the Dart native-assets build system will download static binaries from Cloudflare. This may take a few minutes (depending on which platform you are compiling for). These will be cached, so subsequent builds will be much faster.
|
||||
|
||||
### Sponsors, Contributors & Acknowledgments
|
||||
|
||||
Thermion uses the [Filament](https://github.com/google/filament) Physically Based Rendering engine under the hood.
|
||||
@@ -35,4 +78,5 @@ Thank you to the following people:
|
||||
- @daverin for MacOS library contributions
|
||||
- @LukasPoque for CI/refactoring work
|
||||
- @alexmercerind for his work on integrating ANGLE textures on Flutter Windows
|
||||
|
||||
- @BrutalCoding for documentation fixes
|
||||
- @chenriji for testing and bug fixes
|
||||
|
||||
BIN
assets/rotation_gizmo.glb
Normal file
BIN
assets/translation_gizmo.glb
Normal file
@@ -7,14 +7,21 @@
|
||||
"Getting Started",
|
||||
[
|
||||
["Overview", "/"],
|
||||
["Quick Start", "/quickstart"]
|
||||
["Getting Started", "/getting_started"],
|
||||
["Quick Start", "/quickstart"],
|
||||
["Viewer", "/viewer"],
|
||||
["Camera Manipulation", "/camera_manipulation"]
|
||||
]
|
||||
],
|
||||
["Misc.", [
|
||||
["Debugging", "/debugging"],
|
||||
["Playground", "https://dartpad.thermion.dev"],
|
||||
["Showcase", "/showcase"],
|
||||
["Windows", "/windows"],
|
||||
["Android", "/android"],
|
||||
["iOS", "/ios"],
|
||||
["Web", "/web"],
|
||||
["Linux", "/linux"],
|
||||
["Contributing", "/contributing"],
|
||||
["Discord", "https://discord.gg/h2VdDK3EAQ"]
|
||||
]]
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
## Android
|
||||
|
||||
In release mode, you must add the following to your `app/build.gradle`:
|
||||
### Min SDK version
|
||||
|
||||
```
|
||||
buildTypes {
|
||||
release {
|
||||
shrinkResources false
|
||||
minifyEnabled false
|
||||
}
|
||||
Thermion requires Android SDK version 22, so change your `app/android/build.gradle` to match this version or higher:
|
||||
|
||||
```groovy
|
||||
defaultConfig {
|
||||
...
|
||||
minSdk = 22
|
||||
...
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
27
docs/debugging.mdx
Normal file
@@ -0,0 +1,27 @@
|
||||
# Debugging
|
||||
|
||||
If something is crashing or not working as expected, you can enable verbose logging and/or debug builds (particularly useful for debugging with lldb or getting legible stack traces):
|
||||
|
||||
Add a `hooks` section to your app's `pubspec.yaml`, e.g.
|
||||
```
|
||||
name: example_cli
|
||||
description: A sample command-line application.
|
||||
version: 1.0.0
|
||||
|
||||
environment:
|
||||
sdk: ^3.3.0
|
||||
|
||||
# Add the below
|
||||
hooks:
|
||||
user_defines:
|
||||
thermion_dart:
|
||||
mode: debug
|
||||
tracing: enabled
|
||||
```
|
||||
|
||||
After changing the `hooks` section, make sure you run `flutter clean` to propagate the changes correctly.
|
||||
|
||||
> [!CAUTION]
|
||||
> Debug builds won't work for Android. This is a known upstream issue with Filament.
|
||||
|
||||
Unless `mode: debug` is specified in your `pubspec.yaml`, Thermion will use release builds under the hood, even if your app is compiled/runing in debug mode.
|
||||
40
docs/getting_started.mdx
Normal file
@@ -0,0 +1,40 @@
|
||||
## Getting Started
|
||||
|
||||
Thermion currently requires the Flutter `master` channel with the `native-assets` experiment enabled.
|
||||
|
||||
1. Switch to Flutter master channel, upgrade Flutter, create a new project, then add `thermion_flutter` as a dependency
|
||||
|
||||
```bash
|
||||
$ flutter channel master
|
||||
$ flutter upgrade
|
||||
$ flutter config --enable-native-assets
|
||||
$ cd your_flutter_project
|
||||
$ flutter pub add thermion_flutter
|
||||
```
|
||||
|
||||
2. If running on iOS or MacOS, change the minimum deployment target to OSX 13
|
||||
|
||||
<Accordion title="Click to open iOS/MacOS instructions">
|
||||
|
||||
Make sure the `platform` entry refers to `13.0` in your Podfile.
|
||||
|
||||
In `macos/Podfile` (for macOS):
|
||||
```
|
||||
platform :osx, '13.0'
|
||||
```
|
||||
|
||||
In `ios/Podfile`, (for iOS):
|
||||
```
|
||||
platform :ios, '13.0'
|
||||
```
|
||||
|
||||
Then open XCode:
|
||||
```
|
||||
open macos/Runner.xcworkspace
|
||||
```
|
||||
|
||||
and change the minimum deployment target to 13.0:
|
||||
|
||||

|
||||
|
||||
</Accordion>
|
||||
@@ -16,7 +16,7 @@ Thermion is divided into two packages:
|
||||
|
||||
With this structure, the Flutter-specific components are not coupled to the Dart components, meaning Thermion can be used for rendering in both Flutter and non-Flutter applications.
|
||||
|
||||
For example, Thermion ships with examples for rendering with Dart only (no Flutter) with a CLI/headless application on MacOS, and with a Javascript/WASM/HTML applicaiton in browsers.
|
||||
For example, Thermion ships with examples for rendering with Dart only (no Flutter) with a CLI/headless application on MacOS, and with a Javascript/WASM/HTML application in browsers.
|
||||
|
||||
`thermion_flutter` exports `thermion_dart`, so if you are working with a Flutter application, you will only need to import `thermion_fluttter`.
|
||||
|
||||
|
||||
55
docs/ios.mdx
Normal file
@@ -0,0 +1,55 @@
|
||||
## iOS
|
||||
|
||||
### Min iOS version
|
||||
|
||||
Thermion requires a minimum iOS version of 13.0. When building a Flutter application, ensure your application's `ios/Podfile` contains the following:
|
||||
|
||||
```ruby
|
||||
platform :ios, '13.0'
|
||||
```
|
||||
|
||||
and in ios/Info.plist:
|
||||
|
||||
```xml
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
<string>13.0</string>
|
||||
```
|
||||
|
||||
When submitting to the App Store, you may encounter an error saying `thermion_dart.framework does not supported the minimum deployment target in Info.plist`.
|
||||
|
||||
This is because Flutter hardcodes a deployment target of iOS 12.0 when invoking the native assets build, which conflicts with actual requirement.
|
||||
|
||||
After running `flutter build ios` (but before archiving the build and submitting to the App Store), run the following script to replace the `MinimumOSVersion`:
|
||||
|
||||
```
|
||||
#!/bin/zsh
|
||||
|
||||
# Array of directories containing Info.plist files
|
||||
directories=(
|
||||
"./build/ios/iphoneos/Runner.app/Frameworks/thermion_dart.framework"
|
||||
"./build/ios/Release-iphoneos/Runner.app/Frameworks/thermion_dart.framework"
|
||||
"./build/native_assets/ios/thermion_dart.framework"
|
||||
)
|
||||
|
||||
# Loop through each directory
|
||||
for dir in "${directories[@]}"; do
|
||||
plist_path="$dir/Info.plist"
|
||||
|
||||
# Check if Info.plist exists in the directory
|
||||
if [[ -f "$plist_path" ]]; then
|
||||
echo "Processing: $plist_path"
|
||||
|
||||
# Use PlistBuddy to change the MinimumOSVersion
|
||||
/usr/libexec/PlistBuddy -c "Set :MinimumOSVersion 13.0" "$plist_path" 2>/dev/null
|
||||
|
||||
if [[ $? -eq 0 ]]; then
|
||||
echo "✓ Successfully updated version to 13.0"
|
||||
else
|
||||
echo "✗ Failed to update version in $plist_path"
|
||||
fi
|
||||
else
|
||||
echo "✗ Info.plist not found in $dir"
|
||||
fi
|
||||
done
|
||||
```
|
||||
|
||||
10
docs/linux.mdx
Normal file
@@ -0,0 +1,10 @@
|
||||
## Linux support
|
||||
|
||||
Currently, only the Dart package (`thermion_dart`) will work on Linux (primarily for the automated build/testing pipeline).
|
||||
|
||||
Filament has been built for Ubuntu 22.04; other distributions may work, but YMMV.
|
||||
|
||||
The Flutter package (`thermion_flutter`) won't work; it's missing the platform glue code necessary to set up the render target. Support will eventually be added, but there is currently no estimated timeline.
|
||||
|
||||
Contributions are welcome and it's actually not a lot of work. Join the Discord if you want to help out.
|
||||
|
||||
@@ -1,221 +1,199 @@
|
||||
## Quickstart (Flutter)
|
||||
# Quick Start
|
||||
|
||||
> You can find the entire project below in the [flutter/quickstart](https://github.com/nmfisher/thermion_examples/tree/master/flutter/quickstart) folder of the `thermion_examples` repository.
|
||||
If all you need is a quick and easy route to rendering a single 3D model in your Flutter application, start with `ViewerWidget`.
|
||||
|
||||
1. Switch to Flutter master channel, upgrade Flutter, create a new project, then add `thermion_flutter` as a dependency
|
||||
This is a simplified, Flutter-only wrapper around the underlying 3D rendering API with sane defaults for most people.
|
||||
|
||||
```bash
|
||||
$ flutter channel master
|
||||
$ flutter upgrade
|
||||
$ flutter config --enable-native-assets
|
||||
$ flutter create thermion_sample_project && cd thermion_sample_project
|
||||
$ flutter pub add thermion_flutter
|
||||
```
|
||||
`ViewerWidget` handles all the setup and configuration of the underlying Thermion API, including:
|
||||
- Loading 3D models (glTF assets)
|
||||
- Configuring skyboxes and image-based lighting
|
||||
- Setting up camera positions and manipulators
|
||||
- Managing the rendering lifecycle
|
||||
|
||||
2. If running on iOS or MacOS, change the minimum deployment target to OSX 13
|
||||
## Setup
|
||||
|
||||
<Accordion title="Click to open iOS/MacOS instructions">
|
||||
Follow the steps listed in [Getting Started](./getting_started) to configure your Flutter installation and project.
|
||||
|
||||
Make sure the `platform` entry refers to `13.0` in your Podfile.
|
||||
If you're running Windows, delete the `examples/flutter/quickstart/assets` symlink and copy the `assets` folder from `examples/assets` to `examples/flutter/quickstart/assets`.
|
||||
|
||||
In `macos/Podfile` (for macOS):
|
||||
```
|
||||
platform :osx, '13.0'
|
||||
```
|
||||
|
||||
In `ios/Podfile`, (for iOS):
|
||||
```
|
||||
platform :ios, '13.0'
|
||||
```
|
||||
|
||||
Then open XCode:
|
||||
```
|
||||
open macos/Runner.xcworkspace
|
||||
```
|
||||
|
||||
and change the minimum deployment target to 13.0:
|
||||
|
||||

|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Click to open Windows instructions">
|
||||
See the [/windows](/windows) page for steps needed to build on Windows.
|
||||
</Accordion>
|
||||
|
||||
|
||||
2. Add a folder containing your assets (glTF model + skybox ktx) to your `pubspec.yaml` asset list
|
||||
|
||||
```yaml
|
||||
...
|
||||
flutter
|
||||
uses-material-design: true
|
||||
assets:
|
||||
- assets/
|
||||
```
|
||||
|
||||
3. Create an instance of `ThermionFlutterPlugin` in your app.
|
||||
## Basic Usage
|
||||
|
||||
```dart
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:thermion_flutter/thermion_flutter.dart';
|
||||
import 'path_to_your_viewer_widget.dart';
|
||||
|
||||
class _MyAppState extends State<MyApp> {
|
||||
late ThermionFlutterPlugin _thermionFlutterPlugin;
|
||||
late Future<ThermionViewer> _thermionViewer;
|
||||
void initState() {
|
||||
_thermionFlutterPlugin = ThermionFlutterPlugin();
|
||||
_thermionViewer = _thermionFlutterPlugin.createViewer();
|
||||
class MyApp extends StatelessWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return MaterialApp(
|
||||
home: Scaffold(
|
||||
body: ViewerWidget(
|
||||
assetPath: 'assets/my_model.glb',
|
||||
initialCameraPosition: Vector3(0, 0, 5),
|
||||
manipulatorType: ManipulatorType.ORBIT,
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
## Properties
|
||||
|
||||
4. Add a `ThermionWidget` to your widget hierarchy
|
||||
| Property | Type | Default | Description |
|
||||
|----------|------|---------|-------------|
|
||||
| `initial` | `Widget` | Red decorated box | Widget to display while the viewer is loading |
|
||||
| `initialCameraPosition` | `Vector3` | `Vector3(0, 0, 5)` | The starting position for the camera (looking towards origin) |
|
||||
| `showFpsCounter` | `bool` | `false` | Whether to show an FPS counter overlay |
|
||||
| `assetPath` | `String?` | `null` | Path to the glTF asset to load |
|
||||
| `skyboxPath` | `String?` | `null` | Path to a KTX skybox image |
|
||||
| `iblPath` | `String?` | `null` | Path to a KTX image for image-based lighting |
|
||||
| `directLightType` | `LightType?` | `null` | Type of direct light to add to the scene |
|
||||
| `transformToUnitCube` | `bool` | `true` | If true, rescales the model to fit within a 1x1x1 cube |
|
||||
| `postProcessing` | `bool` | `true` | Enables ACES tone mapping and basic anti-aliasing |
|
||||
| `background` | `Color?` | `null` | Background color (not visible when skybox is provided) |
|
||||
| `destroyEngineOnUnload` | `bool` | `false` | If true, disposes the engine when widget is disposed |
|
||||
| `manipulatorType` | `ManipulatorType` | `ORBIT` | Type of camera control to use |
|
||||
| `onViewerAvailable` | `Future Function(ThermionViewer)?` | `null` | Callback when viewer is ready |
|
||||
|
||||
## Camera Manipulators
|
||||
|
||||
`ViewerWidget` supports three different camera manipulation modes:
|
||||
|
||||
- `ManipulatorType.NONE`: No camera controls, static view
|
||||
- `ManipulatorType.ORBIT`: Orbit controls (pinch to zoom, swipe to rotate)
|
||||
- `ManipulatorType.FREE_FLIGHT`: Free flight controls for unrestricted movement
|
||||
|
||||
Example:
|
||||
|
||||
```dart
|
||||
|
||||
class _MyAppState extends State<MyApp> {
|
||||
|
||||
ThermionViewer? _thermionViewer;
|
||||
void initState() {
|
||||
_thermionFlutterPlugin.createViewer().then((viewer) {
|
||||
setState(() {
|
||||
_thermionViewer = viewer;
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
Widget build(BuildContext context) {
|
||||
return Stack(children:[
|
||||
if(_thermionViewer != null)
|
||||
Positioned.fill(
|
||||
child:ThermionWidget(
|
||||
plugin:_thermionViewer!
|
||||
)
|
||||
)
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
ViewerWidget(
|
||||
assetPath: 'assets/model.glb',
|
||||
manipulatorType: ManipulatorType.FREE_FLIGHT,
|
||||
)
|
||||
```
|
||||
|
||||
4. Add a button to load the model when pressed
|
||||
## Lighting
|
||||
|
||||
You can set up lighting in multiple ways:
|
||||
|
||||
### Image-Based Lighting
|
||||
|
||||
```dart
|
||||
|
||||
...
|
||||
|
||||
class _MyAppState extends State<MyApp> {
|
||||
|
||||
...
|
||||
|
||||
bool _loaded = false;
|
||||
|
||||
Widget build(BuildContext context) {
|
||||
return Stack(children:[
|
||||
if(_thermionViewer != null)
|
||||
Positioned.fill(
|
||||
child:ThermionWidget(
|
||||
plugin:_thermionViewer!
|
||||
)
|
||||
),
|
||||
if (!_loaded)
|
||||
Center(
|
||||
child: ElevatedButton(
|
||||
child: const Text("Load"),
|
||||
onPressed: () async {
|
||||
// TODO
|
||||
_loaded = true;
|
||||
setState(() {});
|
||||
}))
|
||||
]);
|
||||
}}
|
||||
ViewerWidget(
|
||||
assetPath: 'assets/model.glb',
|
||||
iblPath: 'assets/environment.ktx',
|
||||
)
|
||||
```
|
||||
|
||||
5. When the button is pressed, load a skybox, lighting and the glb asset
|
||||
|
||||
You will need to import the `dart:math` and `package:vector_math` libraries.
|
||||
### Direct Light
|
||||
|
||||
```dart
|
||||
import 'package:vector_math/vector_math_64.dart' as v;
|
||||
import 'dart:math';
|
||||
ViewerWidget(
|
||||
assetPath: 'assets/model.glb',
|
||||
directLightType: LightType.SUN,
|
||||
)
|
||||
```
|
||||
|
||||
...
|
||||
## Advanced Usage
|
||||
|
||||
class _MyAppState extends State<MyApp> {
|
||||
### Accessing the Viewer
|
||||
|
||||
...
|
||||
You can get access to the underlying `ThermionViewer` object for more advanced control:
|
||||
|
||||
Widget build(BuildContext context) {
|
||||
return Stack(children:[
|
||||
...
|
||||
if(!_loaded)
|
||||
Center(
|
||||
child: ElevatedButton(
|
||||
child: const Text("Load"),
|
||||
onPressed: () async {
|
||||
var viewer = await _thermionViewer;
|
||||
await viewer.loadIbl("assets/default_env_ibl.ktx");
|
||||
await viewer.loadSkybox("assets/default_env_skybox.ktx");
|
||||
await viewer.loadGlb("assets/cube.glb");
|
||||
```dart
|
||||
ViewerWidget(
|
||||
assetPath: 'assets/model.glb',
|
||||
onViewerAvailable: (viewer) async {
|
||||
// Now you can use the viewer directly
|
||||
final camera = await viewer.getActiveCamera();
|
||||
await camera.lookAt(Vector3(0, 1, 5));
|
||||
|
||||
await viewer.setCameraPosition(0, 1, 10);
|
||||
await viewer.setCameraRotation(v.Quaternion.axisAngle(
|
||||
v.Vector3(1, 0, 0), -30 / 180 * pi) *
|
||||
v.Quaternion.axisAngle(v.Vector3(0, 1, 0), 15 / 180 * pi));
|
||||
await viewer.addLight(
|
||||
LightType.SUN, 7500, 50000, 0, 0, 0, 1, -1, -1);
|
||||
await viewer.setRendering(true);
|
||||
_loaded = true;
|
||||
setState(() {});
|
||||
}
|
||||
)
|
||||
)
|
||||
]);
|
||||
}
|
||||
// Add custom lights, manipulate materials, etc.
|
||||
},
|
||||
)
|
||||
```
|
||||
|
||||
### Changing Manipulator at Runtime
|
||||
|
||||
The `manipulatorType` is the only property that can be changed after the widget is created:
|
||||
|
||||
```dart
|
||||
class _MyWidgetState extends State<MyWidget> {
|
||||
ManipulatorType _manipulatorType = ManipulatorType.ORBIT;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Column(
|
||||
children: [
|
||||
Expanded(
|
||||
child: ViewerWidget(
|
||||
assetPath: 'assets/model.glb',
|
||||
manipulatorType: _manipulatorType,
|
||||
),
|
||||
),
|
||||
Row(
|
||||
children: [
|
||||
ElevatedButton(
|
||||
onPressed: () {
|
||||
setState(() {
|
||||
_manipulatorType = ManipulatorType.ORBIT;
|
||||
});
|
||||
},
|
||||
child: Text('Orbit'),
|
||||
),
|
||||
ElevatedButton(
|
||||
onPressed: () {
|
||||
setState(() {
|
||||
_manipulatorType = ManipulatorType.FREE_FLIGHT;
|
||||
});
|
||||
},
|
||||
child: Text('Free Flight'),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Here, we've added a skybox (the background (cube) image rendered behind all other elements in the scene), image-based lighting (where an image is used to determine the direction and intensity of a light source) and a directional light (Sun).
|
||||
## Limitations
|
||||
|
||||
Anything added to the scene is referred to as an "entity" (including lights and cameras).
|
||||
- Only the `manipulatorType` property can be changed at runtime. For any other property changes, create a new widget.
|
||||
- The widget requires that you have the correct environment setup for Thermion (Flutter master channel with native assets enabled).
|
||||
|
||||
Entities are always added to the scene at position (0,0,0).
|
||||
## Example
|
||||
|
||||
The default scene camera is located at (0,0,0) (and is looking at -Z, or "into" the screen), so by adding a cube at (0,0,0), the camera will now be inside the cube.
|
||||
Here's a complete example showing how to use `ViewerWidget` with multiple configuration options:
|
||||
|
||||
We need to move the camera outside the cube so it's visible.
|
||||
|
||||
6. Change the camera orientation
|
||||
```dart
|
||||
var viewer = await _thermionViewer;
|
||||
await viewer.loadSkybox("assets/default_env_skybox.ktx");
|
||||
await viewer.loadGlb("assets/cube.glb");
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:thermion_flutter/thermion_flutter.dart';
|
||||
import 'package:vector_math/vector_math_64.dart';
|
||||
|
||||
await viewer.setCameraPosition(0, 1, 10);
|
||||
await viewer.setCameraRotation(v.Quaternion.axisAngle(
|
||||
v.Vector3(1, 0, 0), -30 / 180 * pi) *
|
||||
v.Quaternion.axisAngle(v.Vector3(0, 1, 0), 15 / 180 * pi));
|
||||
class ModelViewer extends StatelessWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
appBar: AppBar(title: Text('3D Model Viewer')),
|
||||
body: ViewerWidget(
|
||||
assetPath: 'assets/robot.glb',
|
||||
skyboxPath: 'assets/studio_skybox.ktx',
|
||||
iblPath: 'assets/studio_ibl.ktx',
|
||||
initialCameraPosition: Vector3(0, 1.5, 3),
|
||||
manipulatorType: ManipulatorType.ORBIT,
|
||||
showFpsCounter: true,
|
||||
background: Colors.grey,
|
||||
postProcessing: true,
|
||||
transformToUnitCube: true,
|
||||
onViewerAvailable: (viewer) async {
|
||||
// You can perform additional setup here
|
||||
print('Viewer is ready!');
|
||||
},
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
The cube still won't be visible until we add a light to the scene and tell Thermion to start rendering.
|
||||
|
||||
7. Add a light and turn rendering on
|
||||
```dart
|
||||
...
|
||||
await viewer.addLight(
|
||||
LightType.SUN, 7500, 50000, 0, 0, 0, 1, -1, -1);
|
||||
await viewer.setRendering(true);
|
||||
...
|
||||
````
|
||||
|
||||
8. Run the project
|
||||
```
|
||||
$ flutter run -d macos
|
||||
```
|
||||
|
||||
> You may experience a noticeable delay the very first time you run the project. Don't panic, it's not frozen! This is due to the build system downloading the prebuilt Filament binaries from Cloudflare, which can take some time (particularly on Windows). These binaries will be cached after first download, so subsequent runs will be much faster (though every time you run flutter clean, the binaries will be re-downloaded).
|
||||
|
||||

|
||||
|
||||
Your first Thermion project is complete!
|
||||
|
||||
@@ -1,18 +1,25 @@
|
||||
## Showcase
|
||||
|
||||
## KTX Viewer
|
||||
|
||||
https://ktxviewer.com
|
||||
|
||||
A basic HTML + Dart site for viewing KTX textures in browser.
|
||||
|
||||
## DartPad Playground
|
||||
|
||||
A custom DartPad that lets you experiment with Thermion from your browser (currently, only Chrome is supported).
|
||||
|
||||
[](https://dartpad.thermion.dev)
|
||||
|
||||
(Outdated, needs to be upgraded to Thermion `0.3.0`);
|
||||
|
||||
## mixreel (Flutter/Web)
|
||||
|
||||
Create 3D worlds and translate to AI video.
|
||||
|
||||
[](https://mixreel.ai)
|
||||
|
||||
|
||||
## Nick Fisher
|
||||
|
||||
My personal website, where I create an interactive clone of myself with Avaturn & Cartesia (no Flutter, made with Thermion and the [Jaspr Dart UI framework](https://github.com/schultek/jaspr)).
|
||||
@@ -21,3 +28,4 @@ My personal website, where I create an interactive clone of myself with Avaturn
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
186
docs/viewer.mdx
Normal file
@@ -0,0 +1,186 @@
|
||||
## ThermionViewer (Flutter)
|
||||
|
||||
If you just want to display a 3D object in the viewport with some basic camera controls, use the [ViewerWidget described in the Quickstart section](./quickstart).
|
||||
|
||||
If you need want more fine-grained control
|
||||
|
||||
> You can find the entire project below in the [examples/flutter/viewer](https://github.com/nmfisher/thermion/tree/master/examples/flutter/viewer) folder of the repository.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
2. Add a folder containing your assets (glTF model + skybox ktx) to your `pubspec.yaml` asset list
|
||||
|
||||
```yaml
|
||||
...
|
||||
flutter
|
||||
assets:
|
||||
- assets/
|
||||
```
|
||||
|
||||
3. Create an instance of `ThermionFlutterPlugin` in your app.
|
||||
|
||||
```dart
|
||||
|
||||
class _MyAppState extends State<MyApp> {
|
||||
late Future<ThermionViewer> _thermionViewer;
|
||||
void initState() {
|
||||
ThermionFlutterPlugin.createViewer().then((viewer) {
|
||||
_thermionViewer = viewer;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
|
||||
4. Add a `ThermionWidget` to your widget hierarchy
|
||||
|
||||
```dart
|
||||
|
||||
class _MyAppState extends State<MyApp> {
|
||||
|
||||
ThermionViewer? _thermionViewer;
|
||||
void initState() {
|
||||
_thermionFlutterPlugin.createViewer().then((viewer) {
|
||||
setState(() {
|
||||
_thermionViewer = viewer;
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
Widget build(BuildContext context) {
|
||||
return Stack(children:[
|
||||
if(_thermionViewer != null)
|
||||
Positioned.fill(
|
||||
child:ThermionWidget(
|
||||
plugin:_thermionViewer!
|
||||
)
|
||||
)
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
4. Add a button to load the model when pressed
|
||||
|
||||
```dart
|
||||
|
||||
...
|
||||
|
||||
class _MyAppState extends State<MyApp> {
|
||||
|
||||
...
|
||||
|
||||
bool _loaded = false;
|
||||
|
||||
Widget build(BuildContext context) {
|
||||
return Stack(children:[
|
||||
if(_thermionViewer != null)
|
||||
Positioned.fill(
|
||||
child:ThermionWidget(
|
||||
plugin:_thermionViewer!
|
||||
)
|
||||
),
|
||||
if (!_loaded)
|
||||
Center(
|
||||
child: ElevatedButton(
|
||||
child: const Text("Load"),
|
||||
onPressed: () async {
|
||||
// TODO
|
||||
_loaded = true;
|
||||
setState(() {});
|
||||
}))
|
||||
]);
|
||||
}}
|
||||
```
|
||||
|
||||
5. When the button is pressed, load a skybox, lighting and the glb asset
|
||||
|
||||
You will need to import the `dart:math` and `package:vector_math` libraries.
|
||||
|
||||
```dart
|
||||
import 'package:vector_math/vector_math_64.dart' as v;
|
||||
import 'dart:math';
|
||||
|
||||
...
|
||||
|
||||
class _MyAppState extends State<MyApp> {
|
||||
|
||||
...
|
||||
|
||||
Widget build(BuildContext context) {
|
||||
return Stack(children:[
|
||||
...
|
||||
if(!_loaded)
|
||||
Center(
|
||||
child: ElevatedButton(
|
||||
child: const Text("Load"),
|
||||
onPressed: () async {
|
||||
var viewer = await _thermionViewer;
|
||||
await viewer.loadIbl("assets/default_env_ibl.ktx");
|
||||
await viewer.loadSkybox("assets/default_env_skybox.ktx");
|
||||
await viewer.loadGlb("assets/cube.glb");
|
||||
|
||||
await viewer.setCameraPosition(0, 1, 10);
|
||||
await viewer.setCameraRotation(v.Quaternion.axisAngle(
|
||||
v.Vector3(1, 0, 0), -30 / 180 * pi) *
|
||||
v.Quaternion.axisAngle(v.Vector3(0, 1, 0), 15 / 180 * pi));
|
||||
await viewer.addLight(
|
||||
LightType.SUN, 7500, 50000, 0, 0, 0, 1, -1, -1);
|
||||
await viewer.setRendering(true);
|
||||
_loaded = true;
|
||||
setState(() {});
|
||||
}
|
||||
)
|
||||
)
|
||||
]);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Here, we've added a skybox (the background (cube) image rendered behind all other elements in the scene), image-based lighting (where an image is used to determine the direction and intensity of a light source) and a directional light (Sun).
|
||||
|
||||
Anything added to the scene is referred to as an "entity" (including lights and cameras).
|
||||
|
||||
Entities are always added to the scene at position (0,0,0).
|
||||
|
||||
The default scene camera is located at (0,0,0) (and is looking at -Z, or "into" the screen), so by adding a cube at (0,0,0), the camera will now be inside the cube.
|
||||
|
||||
We need to move the camera outside the cube so it's visible.
|
||||
|
||||
6. Change the camera orientation
|
||||
```dart
|
||||
var viewer = await _thermionViewer;
|
||||
await viewer.loadSkybox("assets/default_env_skybox.ktx");
|
||||
await viewer.loadGlb("assets/cube.glb");
|
||||
|
||||
await viewer.setCameraPosition(0, 1, 10);
|
||||
await viewer.setCameraRotation(v.Quaternion.axisAngle(
|
||||
v.Vector3(1, 0, 0), -30 / 180 * pi) *
|
||||
v.Quaternion.axisAngle(v.Vector3(0, 1, 0), 15 / 180 * pi));
|
||||
```
|
||||
|
||||
The cube still won't be visible until we add a light to the scene and tell Thermion to start rendering.
|
||||
|
||||
7. Add a light and turn rendering on
|
||||
```dart
|
||||
...
|
||||
await viewer.addLight(
|
||||
LightType.SUN, 7500, 50000, 0, 0, 0, 1, -1, -1);
|
||||
await viewer.setRendering(true);
|
||||
...
|
||||
````
|
||||
|
||||
8. Run the project
|
||||
```
|
||||
$ flutter run -d macos
|
||||
```
|
||||
|
||||
> You may experience a noticeable delay the very first time you run the project. Don't panic, it's not frozen! This is due to the build system downloading the prebuilt Filament binaries from Cloudflare, which can take some time (particularly on Windows). These binaries will be cached after first download, so subsequent runs will be much faster (though every time you run flutter clean, the binaries will be re-downloaded).
|
||||
|
||||

|
||||
|
||||
Your first Thermion project is complete!
|
||||
42
docs/web.mdx
Normal file
@@ -0,0 +1,42 @@
|
||||
## Web
|
||||
|
||||
Web support is still experimental and currently requires you to manually compile Thermion to WASM first.
|
||||
|
||||
Requirements:
|
||||
|
||||
1) GNU Make
|
||||
2) CMake
|
||||
3) Emscripten
|
||||
|
||||
From the project root directory
|
||||
|
||||
```
|
||||
thermion % ls -l
|
||||
total 272
|
||||
drwxr-xr-x 4 nickfisher staff 128 Jul 3 14:06 assets
|
||||
-rw-r--r-- 1 nickfisher staff 84532 Jul 3 14:06 CHANGELOG.md
|
||||
-rw-r--r-- 1 nickfisher staff 2349 Jul 3 14:06 Dockerfile
|
||||
drwxr-xr-x 19 nickfisher staff 608 Jul 3 14:06 docs
|
||||
-rw-r--r-- 1 nickfisher staff 748 Jul 3 14:06 docs.json
|
||||
drwxr-xr-x 7 nickfisher staff 224 Jan 8 17:01 examples
|
||||
-rw-r--r-- 1 nickfisher staff 11341 Oct 23 2024 LICENSE
|
||||
-rw-r--r-- 1 nickfisher staff 2161 Jul 3 14:06 Makefile
|
||||
drwxr-xr-x@ 13 nickfisher staff 416 Jul 3 14:06 materials
|
||||
-rw-r--r--@ 1 nickfisher staff 517 Oct 23 2024 melos_thermion_workspace.iml
|
||||
-rw-r--r-- 1 nickfisher staff 77 Oct 23 2024 melos.yaml
|
||||
-rw-r--r--@ 1 nickfisher staff 9865 Jul 1 13:03 pubspec.lock
|
||||
-rw-r--r-- 1 nickfisher staff 97 Jun 12 11:38 pubspec.yaml
|
||||
-rw-r--r-- 1 nickfisher staff 3355 Jul 3 14:06 README.md
|
||||
drwxr-xr-x@ 22 nickfisher staff 704 Jul 3 14:06 thermion_dart
|
||||
drwxr-xr-x 7 nickfisher staff 224 Jul 3 14:06 thermion_flutter
|
||||
thermion % make wasm
|
||||
```
|
||||
|
||||
### Flutter
|
||||
|
||||
Copy thermion_dart.js and thermion_dart.wasm to the `/web` folder for your target app.
|
||||
|
||||
|
||||
```
|
||||
flutter run -d chrome --web-header Cross-Origin-Embedder-Policy=require-corp --web-header Cross-Origin-Opener-Policy=same-origin
|
||||
```
|
||||
@@ -1,32 +1,6 @@
|
||||
## Windows
|
||||
|
||||
## CMakeLists
|
||||
|
||||
You will need to disable the `/WX` compiler flag.
|
||||
|
||||
In your project, open the `windows/CMakeList.txt` file and find the following line:
|
||||
|
||||
`target_compile_options(${TARGET} PRIVATE /W4 /WX /wd"4100")`
|
||||
|
||||
Delete the `/WX`:
|
||||
|
||||
`target_compile_options(${TARGET} PRIVATE /W4 /wd"4100")`
|
||||
|
||||
|
||||
## pubspec.yaml
|
||||
|
||||
On Windows, you will need to add a custom version of `native_toolchain_c` to your `dependency_overrides`. This is currently needed to link static libraries when building a DLL.
|
||||
|
||||
```
|
||||
dependency_overrides:
|
||||
native_toolchain_c:
|
||||
git:
|
||||
url: https://github.com/nmfisher/native.git
|
||||
path: pkgs/native_toolchain_c
|
||||
ref: windows_dll_fix
|
||||
```
|
||||
|
||||
This will eventually be fixed upstream in the `native_toolchain_c` package, so this should be a short-term/temporary issue only.
|
||||
If you're not a Thermion developer, you can ignore this.
|
||||
|
||||
## ANGLE build (not currently working)
|
||||
To support embedding GPU textures in Flutter (rather than copying to a CPU pixel buffer on every frame), we need to build a slightly customized version of Filament that uses GLES on Windows (rather than the default, which uses OpenGL).
|
||||
|
||||
5
examples/README.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# Thermion Examples
|
||||
|
||||
This repository contains example Dart and Flutter projects for the Thermion rendering toolkit.
|
||||
|
||||
|
||||
BIN
examples/assets/BusterDrone/scene.bin
Normal file
11876
examples/assets/BusterDrone/scene.gltf
Normal file
BIN
examples/assets/BusterDrone/textures/Boden_baseColor.jpg
Normal file
|
After Width: | Height: | Size: 531 KiB |
BIN
examples/assets/BusterDrone/textures/Boden_metallicRoughness.jpg
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
examples/assets/BusterDrone/textures/Boden_normal.jpg
Normal file
|
After Width: | Height: | Size: 856 KiB |
BIN
examples/assets/BusterDrone/textures/body_baseColor.jpg
Normal file
|
After Width: | Height: | Size: 1.4 MiB |
BIN
examples/assets/BusterDrone/textures/body_emissive.jpg
Normal file
|
After Width: | Height: | Size: 193 KiB |
BIN
examples/assets/BusterDrone/textures/body_metallicRoughness.jpg
Normal file
|
After Width: | Height: | Size: 3.7 MiB |
BIN
examples/assets/BusterDrone/textures/body_normal.jpg
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
BIN
examples/assets/BusterDrone/textures/material_baseColor.jpg
Normal file
|
After Width: | Height: | Size: 500 KiB |
|
After Width: | Height: | Size: 614 KiB |
BIN
examples/assets/BusterDrone/textures/material_normal.jpg
Normal file
|
After Width: | Height: | Size: 457 KiB |
BIN
examples/assets/FlightHelmet/FlightHelmet.bin
Normal file
755
examples/assets/FlightHelmet/FlightHelmet.gltf
Normal file
@@ -0,0 +1,755 @@
|
||||
{
|
||||
"accessors": [
|
||||
{
|
||||
"componentType": 5123,
|
||||
"count": 24408,
|
||||
"type": "SCALAR"
|
||||
},
|
||||
{
|
||||
"componentType": 5126,
|
||||
"count": 8468,
|
||||
"type": "VEC2"
|
||||
},
|
||||
{
|
||||
"componentType": 5126,
|
||||
"count": 8468,
|
||||
"type": "VEC3"
|
||||
},
|
||||
{
|
||||
"componentType": 5126,
|
||||
"count": 8468,
|
||||
"type": "VEC4"
|
||||
},
|
||||
{
|
||||
"componentType": 5126,
|
||||
"count": 8468,
|
||||
"type": "VEC3",
|
||||
"max": [
|
||||
0.131662,
|
||||
0.137638986,
|
||||
0.10078799
|
||||
],
|
||||
"min": [
|
||||
-0.131333,
|
||||
-0.028128,
|
||||
-0.137763992
|
||||
]
|
||||
},
|
||||
{
|
||||
"componentType": 5123,
|
||||
"count": 65688,
|
||||
"type": "SCALAR"
|
||||
},
|
||||
{
|
||||
"componentType": 5126,
|
||||
"count": 12552,
|
||||
"type": "VEC2"
|
||||
},
|
||||
{
|
||||
"componentType": 5126,
|
||||
"count": 12552,
|
||||
"type": "VEC3"
|
||||
},
|
||||
{
|
||||
"componentType": 5126,
|
||||
"count": 12552,
|
||||
"type": "VEC4"
|
||||
},
|
||||
{
|
||||
"componentType": 5126,
|
||||
"count": 12552,
|
||||
"type": "VEC3",
|
||||
"max": [
|
||||
0.11722149,
|
||||
0.196387976,
|
||||
0.132422984
|
||||
],
|
||||
"min": [
|
||||
-0.11722149,
|
||||
-0.196387976,
|
||||
-0.132422984
|
||||
]
|
||||
},
|
||||
{
|
||||
"componentType": 5123,
|
||||
"count": 2208,
|
||||
"type": "SCALAR"
|
||||
},
|
||||
{
|
||||
"componentType": 5126,
|
||||
"count": 436,
|
||||
"type": "VEC2"
|
||||
},
|
||||
{
|
||||
"componentType": 5126,
|
||||
"count": 436,
|
||||
"type": "VEC3"
|
||||
},
|
||||
{
|
||||
"componentType": 5126,
|
||||
"count": 436,
|
||||
"type": "VEC4"
|
||||
},
|
||||
{
|
||||
"componentType": 5126,
|
||||
"count": 436,
|
||||
"type": "VEC3",
|
||||
"max": [
|
||||
0.09527509,
|
||||
0.114654,
|
||||
-0.08429489
|
||||
],
|
||||
"min": [
|
||||
-0.0952748954,
|
||||
0.0551489964,
|
||||
-0.14295499
|
||||
]
|
||||
},
|
||||
{
|
||||
"componentType": 5123,
|
||||
"count": 60288,
|
||||
"type": "SCALAR"
|
||||
},
|
||||
{
|
||||
"componentType": 5126,
|
||||
"count": 17186,
|
||||
"type": "VEC2"
|
||||
},
|
||||
{
|
||||
"componentType": 5126,
|
||||
"count": 17186,
|
||||
"type": "VEC3"
|
||||
},
|
||||
{
|
||||
"componentType": 5126,
|
||||
"count": 17186,
|
||||
"type": "VEC4"
|
||||
},
|
||||
{
|
||||
"componentType": 5126,
|
||||
"count": 17186,
|
||||
"type": "VEC3",
|
||||
"max": [
|
||||
0.1572095,
|
||||
0.2716865,
|
||||
0.162181988
|
||||
],
|
||||
"min": [
|
||||
-0.1572095,
|
||||
-0.2716865,
|
||||
-0.162181988
|
||||
]
|
||||
},
|
||||
{
|
||||
"componentType": 5123,
|
||||
"count": 131574,
|
||||
"type": "SCALAR"
|
||||
},
|
||||
{
|
||||
"componentType": 5126,
|
||||
"count": 24148,
|
||||
"type": "VEC2"
|
||||
},
|
||||
{
|
||||
"componentType": 5126,
|
||||
"count": 24148,
|
||||
"type": "VEC3"
|
||||
},
|
||||
{
|
||||
"componentType": 5126,
|
||||
"count": 24148,
|
||||
"type": "VEC4"
|
||||
},
|
||||
{
|
||||
"componentType": 5126,
|
||||
"count": 24148,
|
||||
"type": "VEC3",
|
||||
"max": [
|
||||
0.1504075,
|
||||
0.328366965,
|
||||
0.173673
|
||||
],
|
||||
"min": [
|
||||
-0.1504075,
|
||||
-0.328366965,
|
||||
-0.173673
|
||||
]
|
||||
}
|
||||
],
|
||||
"asset": {
|
||||
"generator": "glTF Tools for Unity",
|
||||
"version": "2.0"
|
||||
},
|
||||
"bufferViews": [
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteOffset": 0,
|
||||
"byteLength": 59806
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteOffset": 59808,
|
||||
"byteLength": 99674
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteOffset": 159484,
|
||||
"byteLength": 4875
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteOffset": 164360,
|
||||
"byteLength": 133545
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteOffset": 297908,
|
||||
"byteLength": 203914
|
||||
}
|
||||
],
|
||||
"buffers": [
|
||||
{
|
||||
"name": "FlightHelmet",
|
||||
"byteLength": 501824,
|
||||
"uri": "FlightHelmet.bin"
|
||||
}
|
||||
],
|
||||
"images": [
|
||||
{
|
||||
"name": "FlightHelmet_baseColor",
|
||||
"uri": "FlightHelmet_baseColor.png"
|
||||
},
|
||||
{
|
||||
"name": "FlightHelmet_occlusionRoughnessMetallic",
|
||||
"uri": "FlightHelmet_occlusionRoughnessMetallic.png"
|
||||
},
|
||||
{
|
||||
"name": "FlightHelmet_normal",
|
||||
"uri": "FlightHelmet_normal.png"
|
||||
},
|
||||
{
|
||||
"name": "FlightHelmet_baseColor1",
|
||||
"uri": "FlightHelmet_baseColor1.png"
|
||||
},
|
||||
{
|
||||
"name": "FlightHelmet_occlusionRoughnessMetallic1",
|
||||
"uri": "FlightHelmet_occlusionRoughnessMetallic1.png"
|
||||
},
|
||||
{
|
||||
"name": "FlightHelmet_normal1",
|
||||
"uri": "FlightHelmet_normal1.png"
|
||||
},
|
||||
{
|
||||
"name": "FlightHelmet_baseColor2",
|
||||
"uri": "FlightHelmet_baseColor2.png"
|
||||
},
|
||||
{
|
||||
"name": "FlightHelmet_occlusionRoughnessMetallic2",
|
||||
"uri": "FlightHelmet_occlusionRoughnessMetallic2.png"
|
||||
},
|
||||
{
|
||||
"name": "FlightHelmet_normal2",
|
||||
"uri": "FlightHelmet_normal2.png"
|
||||
},
|
||||
{
|
||||
"name": "FlightHelmet_baseColor3",
|
||||
"uri": "FlightHelmet_baseColor3.png"
|
||||
},
|
||||
{
|
||||
"name": "FlightHelmet_occlusionRoughnessMetallic3",
|
||||
"uri": "FlightHelmet_occlusionRoughnessMetallic3.png"
|
||||
},
|
||||
{
|
||||
"name": "FlightHelmet_normal3",
|
||||
"uri": "FlightHelmet_normal3.png"
|
||||
},
|
||||
{
|
||||
"name": "FlightHelmet_baseColor4",
|
||||
"uri": "FlightHelmet_baseColor4.png"
|
||||
},
|
||||
{
|
||||
"name": "FlightHelmet_occlusionRoughnessMetallic4",
|
||||
"uri": "FlightHelmet_occlusionRoughnessMetallic4.png"
|
||||
},
|
||||
{
|
||||
"name": "FlightHelmet_normal4",
|
||||
"uri": "FlightHelmet_normal4.png"
|
||||
}
|
||||
],
|
||||
"meshes": [
|
||||
{
|
||||
"primitives": [
|
||||
{
|
||||
"attributes": {
|
||||
"TEXCOORD_0": 1,
|
||||
"NORMAL": 2,
|
||||
"TANGENT": 3,
|
||||
"POSITION": 4
|
||||
},
|
||||
"indices": 0,
|
||||
"material": 0,
|
||||
"mode": 4,
|
||||
"extensions": {
|
||||
"KHR_draco_mesh_compression": {
|
||||
"bufferView": 0,
|
||||
"attributes": {
|
||||
"TEXCOORD_0": 0,
|
||||
"NORMAL": 1,
|
||||
"TANGENT": 2,
|
||||
"POSITION": 3
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"name": "GlassPlastic_low"
|
||||
},
|
||||
{
|
||||
"primitives": [
|
||||
{
|
||||
"attributes": {
|
||||
"TEXCOORD_0": 6,
|
||||
"NORMAL": 7,
|
||||
"TANGENT": 8,
|
||||
"POSITION": 9
|
||||
},
|
||||
"indices": 5,
|
||||
"material": 1,
|
||||
"mode": 4,
|
||||
"extensions": {
|
||||
"KHR_draco_mesh_compression": {
|
||||
"bufferView": 1,
|
||||
"attributes": {
|
||||
"TEXCOORD_0": 0,
|
||||
"NORMAL": 1,
|
||||
"TANGENT": 2,
|
||||
"POSITION": 3
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"name": "LeatherParts_low"
|
||||
},
|
||||
{
|
||||
"primitives": [
|
||||
{
|
||||
"attributes": {
|
||||
"TEXCOORD_0": 11,
|
||||
"NORMAL": 12,
|
||||
"TANGENT": 13,
|
||||
"POSITION": 14
|
||||
},
|
||||
"indices": 10,
|
||||
"material": 2,
|
||||
"mode": 4,
|
||||
"extensions": {
|
||||
"KHR_draco_mesh_compression": {
|
||||
"bufferView": 2,
|
||||
"attributes": {
|
||||
"TEXCOORD_0": 0,
|
||||
"NORMAL": 1,
|
||||
"TANGENT": 2,
|
||||
"POSITION": 3
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"name": "Lenses_low"
|
||||
},
|
||||
{
|
||||
"primitives": [
|
||||
{
|
||||
"attributes": {
|
||||
"TEXCOORD_0": 16,
|
||||
"NORMAL": 17,
|
||||
"TANGENT": 18,
|
||||
"POSITION": 19
|
||||
},
|
||||
"indices": 15,
|
||||
"material": 3,
|
||||
"mode": 4,
|
||||
"extensions": {
|
||||
"KHR_draco_mesh_compression": {
|
||||
"bufferView": 3,
|
||||
"attributes": {
|
||||
"TEXCOORD_0": 0,
|
||||
"NORMAL": 1,
|
||||
"TANGENT": 2,
|
||||
"POSITION": 3
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"name": "MetalParts_low"
|
||||
},
|
||||
{
|
||||
"primitives": [
|
||||
{
|
||||
"attributes": {
|
||||
"TEXCOORD_0": 21,
|
||||
"NORMAL": 22,
|
||||
"TANGENT": 23,
|
||||
"POSITION": 24
|
||||
},
|
||||
"indices": 20,
|
||||
"material": 4,
|
||||
"mode": 4,
|
||||
"extensions": {
|
||||
"KHR_draco_mesh_compression": {
|
||||
"bufferView": 4,
|
||||
"attributes": {
|
||||
"TEXCOORD_0": 0,
|
||||
"NORMAL": 1,
|
||||
"TANGENT": 2,
|
||||
"POSITION": 3
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"name": "RubberWood_low"
|
||||
}
|
||||
],
|
||||
"materials": [
|
||||
{
|
||||
"pbrMetallicRoughness": {
|
||||
"baseColorTexture": {
|
||||
"index": 0,
|
||||
"texCoord": 0
|
||||
},
|
||||
"metallicRoughnessTexture": {
|
||||
"index": 1,
|
||||
"texCoord": 0
|
||||
},
|
||||
"baseColorFactor": [
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"metallicFactor": 1,
|
||||
"roughnessFactor": 1
|
||||
},
|
||||
"normalTexture": {
|
||||
"index": 2,
|
||||
"texCoord": 0
|
||||
},
|
||||
"occlusionTexture": {
|
||||
"index": 1,
|
||||
"texCoord": 0
|
||||
},
|
||||
"name": "GlassPlasticMat",
|
||||
"emissiveFactor": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"alphaMode": "OPAQUE",
|
||||
"doubleSided": false
|
||||
},
|
||||
{
|
||||
"pbrMetallicRoughness": {
|
||||
"baseColorTexture": {
|
||||
"index": 3,
|
||||
"texCoord": 0
|
||||
},
|
||||
"metallicRoughnessTexture": {
|
||||
"index": 4,
|
||||
"texCoord": 0
|
||||
},
|
||||
"baseColorFactor": [
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"metallicFactor": 1,
|
||||
"roughnessFactor": 1
|
||||
},
|
||||
"normalTexture": {
|
||||
"index": 5,
|
||||
"texCoord": 0
|
||||
},
|
||||
"occlusionTexture": {
|
||||
"index": 4,
|
||||
"texCoord": 0
|
||||
},
|
||||
"name": "LeatherPartsMat",
|
||||
"emissiveFactor": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"alphaMode": "OPAQUE",
|
||||
"doubleSided": false
|
||||
},
|
||||
{
|
||||
"pbrMetallicRoughness": {
|
||||
"baseColorTexture": {
|
||||
"index": 6,
|
||||
"texCoord": 0
|
||||
},
|
||||
"metallicRoughnessTexture": {
|
||||
"index": 7,
|
||||
"texCoord": 0
|
||||
},
|
||||
"baseColorFactor": [
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"metallicFactor": 1,
|
||||
"roughnessFactor": 1
|
||||
},
|
||||
"normalTexture": {
|
||||
"index": 8,
|
||||
"texCoord": 0
|
||||
},
|
||||
"occlusionTexture": {
|
||||
"index": 7,
|
||||
"texCoord": 0
|
||||
},
|
||||
"alphaMode": "BLEND",
|
||||
"name": "LensesMat",
|
||||
"emissiveFactor": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"doubleSided": false
|
||||
},
|
||||
{
|
||||
"pbrMetallicRoughness": {
|
||||
"baseColorTexture": {
|
||||
"index": 9,
|
||||
"texCoord": 0
|
||||
},
|
||||
"metallicRoughnessTexture": {
|
||||
"index": 10,
|
||||
"texCoord": 0
|
||||
},
|
||||
"baseColorFactor": [
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"metallicFactor": 1,
|
||||
"roughnessFactor": 1
|
||||
},
|
||||
"normalTexture": {
|
||||
"index": 11,
|
||||
"texCoord": 0
|
||||
},
|
||||
"occlusionTexture": {
|
||||
"index": 10,
|
||||
"texCoord": 0
|
||||
},
|
||||
"name": "MetalPartsMat",
|
||||
"emissiveFactor": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"alphaMode": "OPAQUE",
|
||||
"doubleSided": false
|
||||
},
|
||||
{
|
||||
"doubleSided": true,
|
||||
"pbrMetallicRoughness": {
|
||||
"baseColorTexture": {
|
||||
"index": 12,
|
||||
"texCoord": 0
|
||||
},
|
||||
"metallicRoughnessTexture": {
|
||||
"index": 13,
|
||||
"texCoord": 0
|
||||
},
|
||||
"baseColorFactor": [
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"metallicFactor": 1,
|
||||
"roughnessFactor": 1
|
||||
},
|
||||
"normalTexture": {
|
||||
"index": 14,
|
||||
"texCoord": 0
|
||||
},
|
||||
"occlusionTexture": {
|
||||
"index": 13,
|
||||
"texCoord": 0
|
||||
},
|
||||
"name": "RubberWoodMat",
|
||||
"emissiveFactor": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"alphaMode": "OPAQUE"
|
||||
}
|
||||
],
|
||||
"nodes": [
|
||||
{
|
||||
"mesh": 0,
|
||||
"name": "GlassPlastic_low"
|
||||
},
|
||||
{
|
||||
"mesh": 1,
|
||||
"translation": [
|
||||
0.000434499962,
|
||||
0.032592997,
|
||||
0.011676996
|
||||
],
|
||||
"name": "LeatherParts_low",
|
||||
"rotation": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"scale": [
|
||||
1,
|
||||
1,
|
||||
1
|
||||
]
|
||||
},
|
||||
{
|
||||
"mesh": 2,
|
||||
"name": "Lenses_low"
|
||||
},
|
||||
{
|
||||
"mesh": 3,
|
||||
"translation": [
|
||||
0.0331545,
|
||||
-0.1488645,
|
||||
-0.0242879968
|
||||
],
|
||||
"name": "MetalParts_low",
|
||||
"rotation": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"scale": [
|
||||
1,
|
||||
1,
|
||||
1
|
||||
]
|
||||
},
|
||||
{
|
||||
"mesh": 4,
|
||||
"translation": [
|
||||
-0.00190849893,
|
||||
-0.111985,
|
||||
-0.013313001
|
||||
],
|
||||
"name": "RubberWood_low",
|
||||
"rotation": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"scale": [
|
||||
1,
|
||||
1,
|
||||
1
|
||||
]
|
||||
},
|
||||
{
|
||||
"children": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4
|
||||
],
|
||||
"rotation": [
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"name": "FlightHelmet",
|
||||
"translation": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"scale": [
|
||||
1,
|
||||
1,
|
||||
1
|
||||
]
|
||||
}
|
||||
],
|
||||
"scene": 0,
|
||||
"scenes": [
|
||||
{
|
||||
"nodes": [
|
||||
5
|
||||
]
|
||||
}
|
||||
],
|
||||
"textures": [
|
||||
{
|
||||
"source": 0
|
||||
},
|
||||
{
|
||||
"source": 1
|
||||
},
|
||||
{
|
||||
"source": 2
|
||||
},
|
||||
{
|
||||
"source": 3
|
||||
},
|
||||
{
|
||||
"source": 4
|
||||
},
|
||||
{
|
||||
"source": 5
|
||||
},
|
||||
{
|
||||
"source": 6
|
||||
},
|
||||
{
|
||||
"source": 7
|
||||
},
|
||||
{
|
||||
"source": 8
|
||||
},
|
||||
{
|
||||
"source": 9
|
||||
},
|
||||
{
|
||||
"source": 10
|
||||
},
|
||||
{
|
||||
"source": 11
|
||||
},
|
||||
{
|
||||
"source": 12
|
||||
},
|
||||
{
|
||||
"source": 13
|
||||
},
|
||||
{
|
||||
"source": 14
|
||||
}
|
||||
],
|
||||
"extensionsRequired": [
|
||||
"KHR_draco_mesh_compression"
|
||||
],
|
||||
"extensionsUsed": [
|
||||
"KHR_draco_mesh_compression"
|
||||
]
|
||||
}
|
||||
BIN
examples/assets/FlightHelmet/FlightHelmet_baseColor.png
Normal file
|
After Width: | Height: | Size: 2.6 MiB |
BIN
examples/assets/FlightHelmet/FlightHelmet_baseColor1.png
Normal file
|
After Width: | Height: | Size: 5.1 MiB |
BIN
examples/assets/FlightHelmet/FlightHelmet_baseColor2.png
Normal file
|
After Width: | Height: | Size: 806 KiB |
BIN
examples/assets/FlightHelmet/FlightHelmet_baseColor3.png
Normal file
|
After Width: | Height: | Size: 2.9 MiB |
BIN
examples/assets/FlightHelmet/FlightHelmet_baseColor4.png
Normal file
|
After Width: | Height: | Size: 3.8 MiB |
BIN
examples/assets/FlightHelmet/FlightHelmet_normal.png
Normal file
|
After Width: | Height: | Size: 3.0 MiB |
BIN
examples/assets/FlightHelmet/FlightHelmet_normal1.png
Normal file
|
After Width: | Height: | Size: 5.4 MiB |
BIN
examples/assets/FlightHelmet/FlightHelmet_normal2.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
examples/assets/FlightHelmet/FlightHelmet_normal3.png
Normal file
|
After Width: | Height: | Size: 3.5 MiB |
BIN
examples/assets/FlightHelmet/FlightHelmet_normal4.png
Normal file
|
After Width: | Height: | Size: 3.5 MiB |
|
After Width: | Height: | Size: 4.4 MiB |
|
After Width: | Height: | Size: 5.1 MiB |
|
After Width: | Height: | Size: 737 KiB |
|
After Width: | Height: | Size: 3.6 MiB |
|
After Width: | Height: | Size: 4.3 MiB |
16
examples/assets/FlightHelmet/README.md
Normal file
@@ -0,0 +1,16 @@
|
||||
# Flight Helmet
|
||||
|
||||
## Screenshot
|
||||
|
||||

|
||||
|
||||
## License Information
|
||||
|
||||
Donated by Microsoft for glTF testing
|
||||
|
||||
[](http://creativecommons.org/publicdomain/zero/1.0/)
|
||||
To the extent possible under law, Microsoft has waived all copyright and related or neighboring rights to this asset.
|
||||
|
||||
Draco compression was done via Cesium tools on 27-03-2020 as follows.
|
||||
|
||||
gltf-pipeline -i FlightHelmet.gltf -o FlightHelmet.gltf -d -s --keep-unused-elements
|
||||
BIN
examples/assets/background.ktx
Normal file
BIN
examples/assets/background.png
Normal file
|
After Width: | Height: | Size: 572 KiB |
BIN
examples/assets/bin/mac/upscayl-bin
Executable file
BIN
examples/assets/bin/windows/upscayl-bin.exe
Normal file
BIN
examples/assets/bin/windows/vcomp140.dll
Normal file
BIN
examples/assets/bin/windows/vcomp140d.dll
Normal file
BIN
examples/assets/cube.bin
Normal file
BIN
examples/assets/cube.glb
Normal file
121
examples/assets/cube.gltf
Normal file
@@ -0,0 +1,121 @@
|
||||
{
|
||||
"asset":{
|
||||
"generator":"Khronos glTF Blender I/O v4.2.60",
|
||||
"version":"2.0"
|
||||
},
|
||||
"scene":0,
|
||||
"scenes":[
|
||||
{
|
||||
"name":"Scene",
|
||||
"nodes":[
|
||||
0
|
||||
]
|
||||
}
|
||||
],
|
||||
"nodes":[
|
||||
{
|
||||
"mesh":0,
|
||||
"name":"Cube"
|
||||
}
|
||||
],
|
||||
"materials":[
|
||||
{
|
||||
"doubleSided":true,
|
||||
"name":"Material",
|
||||
"pbrMetallicRoughness":{
|
||||
"baseColorFactor":[
|
||||
0.800000011920929,
|
||||
0.800000011920929,
|
||||
0.800000011920929,
|
||||
1
|
||||
],
|
||||
"metallicFactor":0,
|
||||
"roughnessFactor":0.5
|
||||
}
|
||||
}
|
||||
],
|
||||
"meshes":[
|
||||
{
|
||||
"name":"Cube",
|
||||
"primitives":[
|
||||
{
|
||||
"attributes":{
|
||||
"POSITION":0,
|
||||
"NORMAL":1,
|
||||
"TEXCOORD_0":2
|
||||
},
|
||||
"indices":3,
|
||||
"material":0
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"accessors":[
|
||||
{
|
||||
"bufferView":0,
|
||||
"componentType":5126,
|
||||
"count":24,
|
||||
"max":[
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"min":[
|
||||
-1,
|
||||
-1,
|
||||
-1
|
||||
],
|
||||
"type":"VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView":1,
|
||||
"componentType":5126,
|
||||
"count":24,
|
||||
"type":"VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView":2,
|
||||
"componentType":5126,
|
||||
"count":24,
|
||||
"type":"VEC2"
|
||||
},
|
||||
{
|
||||
"bufferView":3,
|
||||
"componentType":5123,
|
||||
"count":36,
|
||||
"type":"SCALAR"
|
||||
}
|
||||
],
|
||||
"bufferViews":[
|
||||
{
|
||||
"buffer":0,
|
||||
"byteLength":288,
|
||||
"byteOffset":0,
|
||||
"target":34962
|
||||
},
|
||||
{
|
||||
"buffer":0,
|
||||
"byteLength":288,
|
||||
"byteOffset":288,
|
||||
"target":34962
|
||||
},
|
||||
{
|
||||
"buffer":0,
|
||||
"byteLength":192,
|
||||
"byteOffset":576,
|
||||
"target":34962
|
||||
},
|
||||
{
|
||||
"buffer":0,
|
||||
"byteLength":72,
|
||||
"byteOffset":768,
|
||||
"target":34963
|
||||
}
|
||||
],
|
||||
"buffers":[
|
||||
{
|
||||
"byteLength":840,
|
||||
"uri":"cube.bin"
|
||||
}
|
||||
]
|
||||
}
|
||||
181
examples/assets/cube_texture.svg
Normal file
@@ -0,0 +1,181 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="600"
|
||||
height="600"
|
||||
viewBox="0 0 600 600"
|
||||
version="1.1"
|
||||
id="svg3369"
|
||||
sodipodi:docname="cube_texture.svg"
|
||||
inkscape:export-filename="cube_texture_512x512.png"
|
||||
inkscape:export-xdpi="81.919998"
|
||||
inkscape:export-ydpi="81.919998"
|
||||
inkscape:version="1.2.2 (b0a84865, 2022-12-01)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs3373" />
|
||||
<sodipodi:namedview
|
||||
id="namedview3371"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.52625"
|
||||
inkscape:cx="374.34679"
|
||||
inkscape:cy="290.73634"
|
||||
inkscape:window-width="1390"
|
||||
inkscape:window-height="940"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="25"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg3369" />
|
||||
<rect
|
||||
width="600"
|
||||
height="600"
|
||||
fill="white"
|
||||
id="rect3333" />
|
||||
<!-- Grid -->
|
||||
<g
|
||||
stroke="gray"
|
||||
stroke-width="0.5"
|
||||
id="g3343">
|
||||
<line
|
||||
x1="0"
|
||||
y1="200"
|
||||
x2="600"
|
||||
y2="200"
|
||||
id="line3335" />
|
||||
<line
|
||||
x1="0"
|
||||
y1="400"
|
||||
x2="600"
|
||||
y2="400"
|
||||
id="line3337" />
|
||||
<line
|
||||
x1="200"
|
||||
y1="0"
|
||||
x2="200"
|
||||
y2="600"
|
||||
id="line3339" />
|
||||
<line
|
||||
x1="400"
|
||||
y1="0"
|
||||
x2="400"
|
||||
y2="600"
|
||||
id="line3341" />
|
||||
</g>
|
||||
<!-- Top face -->
|
||||
<rect
|
||||
x="200"
|
||||
y="0"
|
||||
width="200"
|
||||
height="200"
|
||||
fill="blue"
|
||||
fill-opacity="0.5"
|
||||
stroke="black"
|
||||
id="rect3345" />
|
||||
<text
|
||||
x="300"
|
||||
y="100"
|
||||
text-anchor="middle"
|
||||
dominant-baseline="middle"
|
||||
fill="black"
|
||||
font-size="24"
|
||||
id="text3347">Top</text>
|
||||
<!-- Left face -->
|
||||
<rect
|
||||
x="0"
|
||||
y="200"
|
||||
width="200"
|
||||
height="200"
|
||||
fill="cyan"
|
||||
fill-opacity="0.5"
|
||||
stroke="black"
|
||||
id="rect3349" />
|
||||
<text
|
||||
x="100"
|
||||
y="300"
|
||||
text-anchor="middle"
|
||||
dominant-baseline="middle"
|
||||
fill="black"
|
||||
font-size="24"
|
||||
id="text3351">Left</text>
|
||||
<!-- Front face -->
|
||||
<rect
|
||||
x="200"
|
||||
y="200"
|
||||
width="200"
|
||||
height="200"
|
||||
fill="red"
|
||||
fill-opacity="0.5"
|
||||
stroke="black"
|
||||
id="rect3353" />
|
||||
<text
|
||||
x="300"
|
||||
y="300"
|
||||
text-anchor="middle"
|
||||
dominant-baseline="middle"
|
||||
fill="black"
|
||||
font-size="24"
|
||||
id="text3355">Front</text>
|
||||
<!-- Right face -->
|
||||
<rect
|
||||
x="400"
|
||||
y="200"
|
||||
width="200"
|
||||
height="200"
|
||||
fill="purple"
|
||||
fill-opacity="0.5"
|
||||
stroke="black"
|
||||
id="rect3357" />
|
||||
<text
|
||||
x="500"
|
||||
y="300"
|
||||
text-anchor="middle"
|
||||
dominant-baseline="middle"
|
||||
fill="black"
|
||||
font-size="24"
|
||||
id="text3359">Right</text>
|
||||
<!-- Bottom face -->
|
||||
<rect
|
||||
x="200"
|
||||
y="400"
|
||||
width="200"
|
||||
height="200"
|
||||
fill="yellow"
|
||||
fill-opacity="0.5"
|
||||
stroke="black"
|
||||
id="rect3361" />
|
||||
<text
|
||||
x="300"
|
||||
y="500"
|
||||
text-anchor="middle"
|
||||
dominant-baseline="middle"
|
||||
fill="black"
|
||||
font-size="24"
|
||||
id="text3363">Bottom</text>
|
||||
<!-- Back face -->
|
||||
<rect
|
||||
x="400"
|
||||
y="400"
|
||||
width="200"
|
||||
height="200"
|
||||
fill="green"
|
||||
fill-opacity="0.5"
|
||||
stroke="black"
|
||||
id="rect3365" />
|
||||
<text
|
||||
x="500"
|
||||
y="500"
|
||||
text-anchor="middle"
|
||||
dominant-baseline="middle"
|
||||
fill="black"
|
||||
font-size="24"
|
||||
id="text3367">Back</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.7 KiB |
183
examples/assets/cube_texture2.svg
Normal file
@@ -0,0 +1,183 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="200"
|
||||
height="200"
|
||||
viewBox="0 0 1 1"
|
||||
version="1.1"
|
||||
id="svg10"
|
||||
sodipodi:docname="cube_texture2.svg"
|
||||
inkscape:export-filename="cube_texture_512x512.png"
|
||||
inkscape:export-xdpi="245.75999"
|
||||
inkscape:export-ydpi="245.75999"
|
||||
inkscape:version="1.4 (e7c3feb1, 2024-10-09)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs10" />
|
||||
<sodipodi:namedview
|
||||
id="namedview10"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:zoom="1.5185118"
|
||||
inkscape:cx="255.18405"
|
||||
inkscape:cy="172.86662"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="964"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="25"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg10"
|
||||
showgrid="false" />
|
||||
<!-- Background Grid (optional, for visual aid) -->
|
||||
<rect
|
||||
x="0"
|
||||
y="0"
|
||||
width="1"
|
||||
height="1"
|
||||
fill="#f0f0f0"
|
||||
id="rect1" />
|
||||
<line
|
||||
x1="0.333"
|
||||
y1="0"
|
||||
x2="0.333"
|
||||
y2="1"
|
||||
stroke="#ccc"
|
||||
stroke-width="0.005"
|
||||
id="line1" />
|
||||
<line
|
||||
x1="0.666"
|
||||
y1="0"
|
||||
x2="0.666"
|
||||
y2="1"
|
||||
stroke="#ccc"
|
||||
stroke-width="0.005"
|
||||
id="line2" />
|
||||
<line
|
||||
y1="0.25"
|
||||
x1="0"
|
||||
y2="0.25"
|
||||
x2="1"
|
||||
stroke="#ccc"
|
||||
stroke-width="0.005"
|
||||
id="line3" />
|
||||
<line
|
||||
y1="0.5"
|
||||
x1="0"
|
||||
y2="0.5"
|
||||
x2="1"
|
||||
stroke="#ccc"
|
||||
stroke-width="0.005"
|
||||
id="line4" />
|
||||
<line
|
||||
y1="0.75"
|
||||
x1="0"
|
||||
y2="0.75"
|
||||
x2="1"
|
||||
stroke="#ccc"
|
||||
stroke-width="0.005"
|
||||
id="line5" />
|
||||
<!-- Front Face -->
|
||||
<rect
|
||||
x="0.333"
|
||||
y="0"
|
||||
width="0.333"
|
||||
height="0.25"
|
||||
fill="#ff0000"
|
||||
id="rect5" />
|
||||
<text
|
||||
x="0.5"
|
||||
y="0.125"
|
||||
text-anchor="middle"
|
||||
dominant-baseline="middle"
|
||||
font-size="0.1"
|
||||
fill="white"
|
||||
id="text5">Front</text>
|
||||
<!-- Back Face -->
|
||||
<rect
|
||||
x="0.333"
|
||||
y="0.5"
|
||||
width="0.333"
|
||||
height="0.25"
|
||||
fill="#00ff00"
|
||||
id="rect6" />
|
||||
<text
|
||||
x="0.5"
|
||||
y="0.625"
|
||||
text-anchor="middle"
|
||||
dominant-baseline="middle"
|
||||
font-size="0.1"
|
||||
fill="white"
|
||||
id="text6">Back</text>
|
||||
<!-- Top Face -->
|
||||
<rect
|
||||
x="0.666"
|
||||
y="0.25"
|
||||
width="0.333"
|
||||
height="0.25"
|
||||
fill="#0000ff"
|
||||
id="rect7" />
|
||||
<text
|
||||
x="0.833"
|
||||
y="0.375"
|
||||
text-anchor="middle"
|
||||
dominant-baseline="middle"
|
||||
font-size="0.1"
|
||||
fill="white"
|
||||
id="text7">Top</text>
|
||||
<!-- Bottom Face -->
|
||||
<rect
|
||||
x="0"
|
||||
y="0.25"
|
||||
width="0.333"
|
||||
height="0.25"
|
||||
fill="#ffff00"
|
||||
id="rect8" />
|
||||
<text
|
||||
x="0.15610458"
|
||||
y="0.37936932"
|
||||
text-anchor="middle"
|
||||
dominant-baseline="middle"
|
||||
font-size="0.0733811px"
|
||||
fill="#000000"
|
||||
id="text8"
|
||||
style="stroke-width:0.733811">Bottom</text>
|
||||
<!-- Right Face -->
|
||||
<rect
|
||||
x="0.333"
|
||||
y="0.25"
|
||||
width="0.333"
|
||||
height="0.25"
|
||||
fill="#ff00ff"
|
||||
id="rect9" />
|
||||
<text
|
||||
x="0.5"
|
||||
y="0.375"
|
||||
text-anchor="middle"
|
||||
dominant-baseline="middle"
|
||||
font-size="0.1"
|
||||
fill="white"
|
||||
id="text9">Right</text>
|
||||
<!-- Left Face -->
|
||||
<rect
|
||||
x="0.333"
|
||||
y="0.75"
|
||||
width="0.333"
|
||||
height="0.25"
|
||||
fill="#00ffff"
|
||||
id="rect10" />
|
||||
<text
|
||||
x="0.5"
|
||||
y="0.875"
|
||||
text-anchor="middle"
|
||||
dominant-baseline="middle"
|
||||
font-size="0.1"
|
||||
fill="black"
|
||||
id="text10">Left</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.7 KiB |
BIN
examples/assets/cube_with_morph_targets.glb
Normal file
BIN
examples/assets/cup/model.bin
Normal file
|
After Width: | Height: | Size: 960 KiB |
1
examples/assets/cup/model.gltf
Normal file
@@ -0,0 +1 @@
|
||||
{"asset":{"version":"2.0","generator":"babylon.js glTF exporter for 3dsmax 2021 v20210607.3"},"scene":0,"scenes":[{"nodes":[0]}],"nodes":[{"mesh":0,"translation":[0.0,-1.14751673,-5.015955E-08],"name":"Cylinder001"}],"meshes":[{"primitives":[{"attributes":{"POSITION":1,"NORMAL":2,"TEXCOORD_0":3},"indices":0,"material":0},{"attributes":{"POSITION":5,"NORMAL":6,"TEXCOORD_0":7},"indices":4,"material":1},{"attributes":{"POSITION":9,"NORMAL":10,"TEXCOORD_0":11},"indices":8,"material":2},{"attributes":{"POSITION":13,"NORMAL":14,"TEXCOORD_0":15},"indices":12,"material":3},{"attributes":{"POSITION":17,"NORMAL":18,"TEXCOORD_0":19},"indices":16,"material":4}],"name":"Cylinder001"}],"accessors":[{"bufferView":0,"componentType":5123,"count":858,"type":"SCALAR","name":"accessorIndices"},{"bufferView":1,"componentType":5126,"count":858,"max":[0.9673312,-0.0665806457,0.9673312],"min":[-0.9673312,-0.09678768,-0.9673312],"type":"VEC3","name":"accessorPositions"},{"bufferView":1,"byteOffset":10296,"componentType":5126,"count":858,"type":"VEC3","name":"accessorNormals"},{"bufferView":2,"componentType":5126,"count":858,"type":"VEC2","name":"accessorUVs"},{"bufferView":0,"byteOffset":1716,"componentType":5123,"count":14592,"type":"SCALAR","name":"accessorIndices"},{"bufferView":1,"byteOffset":20592,"componentType":5126,"count":14592,"max":[1.01214123,2.33892131,1.02725148],"min":[-1.01214123,-0.09678768,-1.01214123],"type":"VEC3","name":"accessorPositions"},{"bufferView":1,"byteOffset":195696,"componentType":5126,"count":14592,"type":"VEC3","name":"accessorNormals"},{"bufferView":2,"byteOffset":6864,"componentType":5126,"count":14592,"type":"VEC2","name":"accessorUVs"},{"bufferView":0,"byteOffset":30900,"componentType":5123,"count":1620,"type":"SCALAR","name":"accessorIndices"},{"bufferView":1,"byteOffset":370800,"componentType":5126,"count":1620,"max":[1.006612,2.3633275,1.006612],"min":[-1.006612,2.338921,-1.006612],"type":"VEC3","name":"accessorPositions"},{"bufferView":1,"byteOffset":390240,"componentType":5126,"count":1620,"type":"VEC3","name":"accessorNormals"},{"bufferView":2,"byteOffset":123600,"componentType":5126,"count":1620,"type":"VEC2","name":"accessorUVs"},{"bufferView":0,"byteOffset":34140,"componentType":5123,"count":318,"type":"SCALAR","name":"accessorIndices"},{"bufferView":1,"byteOffset":409680,"componentType":5126,"count":318,"max":[0.9454922,2.3548696,0.9454922],"min":[-0.9454921,0.0617354736,-0.945492268],"type":"VEC3","name":"accessorPositions"},{"bufferView":1,"byteOffset":413496,"componentType":5126,"count":318,"type":"VEC3","name":"accessorNormals"},{"bufferView":2,"byteOffset":136560,"componentType":5126,"count":318,"type":"VEC2","name":"accessorUVs"},{"bufferView":0,"byteOffset":34776,"componentType":5123,"count":11520,"type":"SCALAR","name":"accessorIndices"},{"bufferView":1,"byteOffset":417312,"componentType":5126,"count":11520,"max":[0.196413681,2.12139344,1.90955186],"min":[-0.196414649,0.165008187,1.00927675],"type":"VEC3","name":"accessorPositions"},{"bufferView":1,"byteOffset":555552,"componentType":5126,"count":11520,"type":"VEC3","name":"accessorNormals"},{"bufferView":2,"byteOffset":139104,"componentType":5126,"count":11520,"type":"VEC2","name":"accessorUVs"}],"bufferViews":[{"buffer":0,"byteLength":57816,"name":"bufferViewScalar"},{"buffer":0,"byteOffset":57816,"byteLength":693792,"byteStride":12,"name":"bufferViewFloatVec3"},{"buffer":0,"byteOffset":751608,"byteLength":231264,"byteStride":8,"name":"bufferViewFloatVec2"}],"buffers":[{"uri":"model.bin","byteLength":982872}],"materials":[{"pbrMetallicRoughness":{"metallicFactor":0.0,"roughnessFactor":0.9},"doubleSided":true,"name":"01 - Default"},{"pbrMetallicRoughness":{"baseColorTexture":{"index":0},"metallicFactor":0.0,"roughnessFactor":0.9},"doubleSided":true,"name":"02 - Default"},{"pbrMetallicRoughness":{"baseColorFactor":[0.0,1.0,0.117647067,1.0],"metallicFactor":0.0,"roughnessFactor":0.9},"doubleSided":true,"name":"03 - Default"},{"pbrMetallicRoughness":{"baseColorFactor":[0.2784314,0.0,0.9921569,1.0],"metallicFactor":0.0,"roughnessFactor":0.9},"doubleSided":true,"name":"04 - Default"},{"pbrMetallicRoughness":{"baseColorFactor":[0.9725491,0.776470661,0.0,1.0],"metallicFactor":0.0,"roughnessFactor":0.9},"doubleSided":true,"name":"05 - Default"}],"textures":[{"sampler":0,"source":0,"name":"texture.jpg"}],"images":[{"uri":"./texture.jpg"}],"samplers":[{"magFilter":9729,"minFilter":9987}]}
|
||||
BIN
examples/assets/cup/new.jpg
Normal file
|
After Width: | Height: | Size: 720 KiB |
BIN
examples/assets/cup/texture.jpg
Normal file
|
After Width: | Height: | Size: 8.2 MiB |
BIN
examples/assets/cup/texture_tmp.jpg
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
examples/assets/default_env_ibl.ktx
Normal file
BIN
examples/assets/default_env_skybox.ktx
Normal file
BIN
examples/assets/green_12x12.png
Normal file
|
After Width: | Height: | Size: 312 B |
BIN
examples/assets/image/texture.jpg
Normal file
|
After Width: | Height: | Size: 8.2 MiB |
BIN
examples/assets/models/digital-art-4x.bin
Normal file
270
examples/assets/models/digital-art-4x.param
Normal file
@@ -0,0 +1,270 @@
|
||||
7767517
|
||||
268 473
|
||||
Input input.1 0 1 data
|
||||
Convolution Conv_0 1 1 data 193 0=64 1=3 4=1 5=1 6=1728
|
||||
Split splitncnn_0 1 8 193 193_splitncnn_0 193_splitncnn_1 193_splitncnn_2 193_splitncnn_3 193_splitncnn_4 193_splitncnn_5 193_splitncnn_6 193_splitncnn_7
|
||||
Convolution Conv_1 1 1 193_splitncnn_7 195 0=32 1=3 4=1 5=1 6=18432 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_1 1 4 195 195_splitncnn_0 195_splitncnn_1 195_splitncnn_2 195_splitncnn_3
|
||||
Concat Concat_3 2 1 193_splitncnn_6 195_splitncnn_3 196
|
||||
Convolution Conv_4 1 1 196 198 0=32 1=3 4=1 5=1 6=27648 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_2 1 3 198 198_splitncnn_0 198_splitncnn_1 198_splitncnn_2
|
||||
Concat Concat_6 3 1 193_splitncnn_5 195_splitncnn_2 198_splitncnn_2 199
|
||||
Convolution Conv_7 1 1 199 201 0=32 1=3 4=1 5=1 6=36864 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_3 1 2 201 201_splitncnn_0 201_splitncnn_1
|
||||
Concat Concat_9 4 1 193_splitncnn_4 195_splitncnn_1 198_splitncnn_1 201_splitncnn_1 202
|
||||
Convolution Conv_10 1 1 202 204 0=32 1=3 4=1 5=1 6=46080 9=2 -23310=1,2.000000e-01
|
||||
Concat Concat_12 5 1 193_splitncnn_3 195_splitncnn_0 198_splitncnn_0 201_splitncnn_0 204 205
|
||||
Convolution Conv_13 1 1 205 206 0=64 1=3 4=1 5=1 6=110592
|
||||
Eltwise Add_16 2 1 206 193_splitncnn_2 209 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Split splitncnn_4 1 6 209 209_splitncnn_0 209_splitncnn_1 209_splitncnn_2 209_splitncnn_3 209_splitncnn_4 209_splitncnn_5
|
||||
Convolution Conv_17 1 1 209_splitncnn_5 211 0=32 1=3 4=1 5=1 6=18432 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_5 1 4 211 211_splitncnn_0 211_splitncnn_1 211_splitncnn_2 211_splitncnn_3
|
||||
Concat Concat_19 2 1 209_splitncnn_4 211_splitncnn_3 212
|
||||
Convolution Conv_20 1 1 212 214 0=32 1=3 4=1 5=1 6=27648 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_6 1 3 214 214_splitncnn_0 214_splitncnn_1 214_splitncnn_2
|
||||
Concat Concat_22 3 1 209_splitncnn_3 211_splitncnn_2 214_splitncnn_2 215
|
||||
Convolution Conv_23 1 1 215 217 0=32 1=3 4=1 5=1 6=36864 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_7 1 2 217 217_splitncnn_0 217_splitncnn_1
|
||||
Concat Concat_25 4 1 209_splitncnn_2 211_splitncnn_1 214_splitncnn_1 217_splitncnn_1 218
|
||||
Convolution Conv_26 1 1 218 220 0=32 1=3 4=1 5=1 6=46080 9=2 -23310=1,2.000000e-01
|
||||
Concat Concat_28 5 1 209_splitncnn_1 211_splitncnn_0 214_splitncnn_0 217_splitncnn_0 220 221
|
||||
Convolution Conv_29 1 1 221 222 0=64 1=3 4=1 5=1 6=110592
|
||||
Eltwise Add_32 2 1 222 209_splitncnn_0 225 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Split splitncnn_8 1 6 225 225_splitncnn_0 225_splitncnn_1 225_splitncnn_2 225_splitncnn_3 225_splitncnn_4 225_splitncnn_5
|
||||
Convolution Conv_33 1 1 225_splitncnn_5 227 0=32 1=3 4=1 5=1 6=18432 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_9 1 4 227 227_splitncnn_0 227_splitncnn_1 227_splitncnn_2 227_splitncnn_3
|
||||
Concat Concat_35 2 1 225_splitncnn_4 227_splitncnn_3 228
|
||||
Convolution Conv_36 1 1 228 230 0=32 1=3 4=1 5=1 6=27648 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_10 1 3 230 230_splitncnn_0 230_splitncnn_1 230_splitncnn_2
|
||||
Concat Concat_38 3 1 225_splitncnn_3 227_splitncnn_2 230_splitncnn_2 231
|
||||
Convolution Conv_39 1 1 231 233 0=32 1=3 4=1 5=1 6=36864 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_11 1 2 233 233_splitncnn_0 233_splitncnn_1
|
||||
Concat Concat_41 4 1 225_splitncnn_2 227_splitncnn_1 230_splitncnn_1 233_splitncnn_1 234
|
||||
Convolution Conv_42 1 1 234 236 0=32 1=3 4=1 5=1 6=46080 9=2 -23310=1,2.000000e-01
|
||||
Concat Concat_44 5 1 225_splitncnn_1 227_splitncnn_0 230_splitncnn_0 233_splitncnn_0 236 237
|
||||
Convolution Conv_45 1 1 237 238 0=64 1=3 4=1 5=1 6=110592
|
||||
Eltwise Add_48 2 1 238 225_splitncnn_0 241 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Eltwise Add_51 2 1 241 193_splitncnn_1 244 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Split splitncnn_12 1 7 244 244_splitncnn_0 244_splitncnn_1 244_splitncnn_2 244_splitncnn_3 244_splitncnn_4 244_splitncnn_5 244_splitncnn_6
|
||||
Convolution Conv_52 1 1 244_splitncnn_6 246 0=32 1=3 4=1 5=1 6=18432 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_13 1 4 246 246_splitncnn_0 246_splitncnn_1 246_splitncnn_2 246_splitncnn_3
|
||||
Concat Concat_54 2 1 244_splitncnn_5 246_splitncnn_3 247
|
||||
Convolution Conv_55 1 1 247 249 0=32 1=3 4=1 5=1 6=27648 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_14 1 3 249 249_splitncnn_0 249_splitncnn_1 249_splitncnn_2
|
||||
Concat Concat_57 3 1 244_splitncnn_4 246_splitncnn_2 249_splitncnn_2 250
|
||||
Convolution Conv_58 1 1 250 252 0=32 1=3 4=1 5=1 6=36864 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_15 1 2 252 252_splitncnn_0 252_splitncnn_1
|
||||
Concat Concat_60 4 1 244_splitncnn_3 246_splitncnn_1 249_splitncnn_1 252_splitncnn_1 253
|
||||
Convolution Conv_61 1 1 253 255 0=32 1=3 4=1 5=1 6=46080 9=2 -23310=1,2.000000e-01
|
||||
Concat Concat_63 5 1 244_splitncnn_2 246_splitncnn_0 249_splitncnn_0 252_splitncnn_0 255 256
|
||||
Convolution Conv_64 1 1 256 257 0=64 1=3 4=1 5=1 6=110592
|
||||
Eltwise Add_67 2 1 257 244_splitncnn_1 260 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Split splitncnn_16 1 6 260 260_splitncnn_0 260_splitncnn_1 260_splitncnn_2 260_splitncnn_3 260_splitncnn_4 260_splitncnn_5
|
||||
Convolution Conv_68 1 1 260_splitncnn_5 262 0=32 1=3 4=1 5=1 6=18432 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_17 1 4 262 262_splitncnn_0 262_splitncnn_1 262_splitncnn_2 262_splitncnn_3
|
||||
Concat Concat_70 2 1 260_splitncnn_4 262_splitncnn_3 263
|
||||
Convolution Conv_71 1 1 263 265 0=32 1=3 4=1 5=1 6=27648 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_18 1 3 265 265_splitncnn_0 265_splitncnn_1 265_splitncnn_2
|
||||
Concat Concat_73 3 1 260_splitncnn_3 262_splitncnn_2 265_splitncnn_2 266
|
||||
Convolution Conv_74 1 1 266 268 0=32 1=3 4=1 5=1 6=36864 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_19 1 2 268 268_splitncnn_0 268_splitncnn_1
|
||||
Concat Concat_76 4 1 260_splitncnn_2 262_splitncnn_1 265_splitncnn_1 268_splitncnn_1 269
|
||||
Convolution Conv_77 1 1 269 271 0=32 1=3 4=1 5=1 6=46080 9=2 -23310=1,2.000000e-01
|
||||
Concat Concat_79 5 1 260_splitncnn_1 262_splitncnn_0 265_splitncnn_0 268_splitncnn_0 271 272
|
||||
Convolution Conv_80 1 1 272 273 0=64 1=3 4=1 5=1 6=110592
|
||||
Eltwise Add_83 2 1 273 260_splitncnn_0 276 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Split splitncnn_20 1 6 276 276_splitncnn_0 276_splitncnn_1 276_splitncnn_2 276_splitncnn_3 276_splitncnn_4 276_splitncnn_5
|
||||
Convolution Conv_84 1 1 276_splitncnn_5 278 0=32 1=3 4=1 5=1 6=18432 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_21 1 4 278 278_splitncnn_0 278_splitncnn_1 278_splitncnn_2 278_splitncnn_3
|
||||
Concat Concat_86 2 1 276_splitncnn_4 278_splitncnn_3 279
|
||||
Convolution Conv_87 1 1 279 281 0=32 1=3 4=1 5=1 6=27648 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_22 1 3 281 281_splitncnn_0 281_splitncnn_1 281_splitncnn_2
|
||||
Concat Concat_89 3 1 276_splitncnn_3 278_splitncnn_2 281_splitncnn_2 282
|
||||
Convolution Conv_90 1 1 282 284 0=32 1=3 4=1 5=1 6=36864 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_23 1 2 284 284_splitncnn_0 284_splitncnn_1
|
||||
Concat Concat_92 4 1 276_splitncnn_2 278_splitncnn_1 281_splitncnn_1 284_splitncnn_1 285
|
||||
Convolution Conv_93 1 1 285 287 0=32 1=3 4=1 5=1 6=46080 9=2 -23310=1,2.000000e-01
|
||||
Concat Concat_95 5 1 276_splitncnn_1 278_splitncnn_0 281_splitncnn_0 284_splitncnn_0 287 288
|
||||
Convolution Conv_96 1 1 288 289 0=64 1=3 4=1 5=1 6=110592
|
||||
Eltwise Add_99 2 1 289 276_splitncnn_0 292 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Eltwise Add_102 2 1 292 244_splitncnn_0 295 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Split splitncnn_24 1 7 295 295_splitncnn_0 295_splitncnn_1 295_splitncnn_2 295_splitncnn_3 295_splitncnn_4 295_splitncnn_5 295_splitncnn_6
|
||||
Convolution Conv_103 1 1 295_splitncnn_6 297 0=32 1=3 4=1 5=1 6=18432 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_25 1 4 297 297_splitncnn_0 297_splitncnn_1 297_splitncnn_2 297_splitncnn_3
|
||||
Concat Concat_105 2 1 295_splitncnn_5 297_splitncnn_3 298
|
||||
Convolution Conv_106 1 1 298 300 0=32 1=3 4=1 5=1 6=27648 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_26 1 3 300 300_splitncnn_0 300_splitncnn_1 300_splitncnn_2
|
||||
Concat Concat_108 3 1 295_splitncnn_4 297_splitncnn_2 300_splitncnn_2 301
|
||||
Convolution Conv_109 1 1 301 303 0=32 1=3 4=1 5=1 6=36864 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_27 1 2 303 303_splitncnn_0 303_splitncnn_1
|
||||
Concat Concat_111 4 1 295_splitncnn_3 297_splitncnn_1 300_splitncnn_1 303_splitncnn_1 304
|
||||
Convolution Conv_112 1 1 304 306 0=32 1=3 4=1 5=1 6=46080 9=2 -23310=1,2.000000e-01
|
||||
Concat Concat_114 5 1 295_splitncnn_2 297_splitncnn_0 300_splitncnn_0 303_splitncnn_0 306 307
|
||||
Convolution Conv_115 1 1 307 308 0=64 1=3 4=1 5=1 6=110592
|
||||
Eltwise Add_118 2 1 308 295_splitncnn_1 311 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Split splitncnn_28 1 6 311 311_splitncnn_0 311_splitncnn_1 311_splitncnn_2 311_splitncnn_3 311_splitncnn_4 311_splitncnn_5
|
||||
Convolution Conv_119 1 1 311_splitncnn_5 313 0=32 1=3 4=1 5=1 6=18432 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_29 1 4 313 313_splitncnn_0 313_splitncnn_1 313_splitncnn_2 313_splitncnn_3
|
||||
Concat Concat_121 2 1 311_splitncnn_4 313_splitncnn_3 314
|
||||
Convolution Conv_122 1 1 314 316 0=32 1=3 4=1 5=1 6=27648 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_30 1 3 316 316_splitncnn_0 316_splitncnn_1 316_splitncnn_2
|
||||
Concat Concat_124 3 1 311_splitncnn_3 313_splitncnn_2 316_splitncnn_2 317
|
||||
Convolution Conv_125 1 1 317 319 0=32 1=3 4=1 5=1 6=36864 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_31 1 2 319 319_splitncnn_0 319_splitncnn_1
|
||||
Concat Concat_127 4 1 311_splitncnn_2 313_splitncnn_1 316_splitncnn_1 319_splitncnn_1 320
|
||||
Convolution Conv_128 1 1 320 322 0=32 1=3 4=1 5=1 6=46080 9=2 -23310=1,2.000000e-01
|
||||
Concat Concat_130 5 1 311_splitncnn_1 313_splitncnn_0 316_splitncnn_0 319_splitncnn_0 322 323
|
||||
Convolution Conv_131 1 1 323 324 0=64 1=3 4=1 5=1 6=110592
|
||||
Eltwise Add_134 2 1 324 311_splitncnn_0 327 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Split splitncnn_32 1 6 327 327_splitncnn_0 327_splitncnn_1 327_splitncnn_2 327_splitncnn_3 327_splitncnn_4 327_splitncnn_5
|
||||
Convolution Conv_135 1 1 327_splitncnn_5 329 0=32 1=3 4=1 5=1 6=18432 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_33 1 4 329 329_splitncnn_0 329_splitncnn_1 329_splitncnn_2 329_splitncnn_3
|
||||
Concat Concat_137 2 1 327_splitncnn_4 329_splitncnn_3 330
|
||||
Convolution Conv_138 1 1 330 332 0=32 1=3 4=1 5=1 6=27648 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_34 1 3 332 332_splitncnn_0 332_splitncnn_1 332_splitncnn_2
|
||||
Concat Concat_140 3 1 327_splitncnn_3 329_splitncnn_2 332_splitncnn_2 333
|
||||
Convolution Conv_141 1 1 333 335 0=32 1=3 4=1 5=1 6=36864 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_35 1 2 335 335_splitncnn_0 335_splitncnn_1
|
||||
Concat Concat_143 4 1 327_splitncnn_2 329_splitncnn_1 332_splitncnn_1 335_splitncnn_1 336
|
||||
Convolution Conv_144 1 1 336 338 0=32 1=3 4=1 5=1 6=46080 9=2 -23310=1,2.000000e-01
|
||||
Concat Concat_146 5 1 327_splitncnn_1 329_splitncnn_0 332_splitncnn_0 335_splitncnn_0 338 339
|
||||
Convolution Conv_147 1 1 339 340 0=64 1=3 4=1 5=1 6=110592
|
||||
Eltwise Add_150 2 1 340 327_splitncnn_0 343 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Eltwise Add_153 2 1 343 295_splitncnn_0 346 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Split splitncnn_36 1 7 346 346_splitncnn_0 346_splitncnn_1 346_splitncnn_2 346_splitncnn_3 346_splitncnn_4 346_splitncnn_5 346_splitncnn_6
|
||||
Convolution Conv_154 1 1 346_splitncnn_6 348 0=32 1=3 4=1 5=1 6=18432 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_37 1 4 348 348_splitncnn_0 348_splitncnn_1 348_splitncnn_2 348_splitncnn_3
|
||||
Concat Concat_156 2 1 346_splitncnn_5 348_splitncnn_3 349
|
||||
Convolution Conv_157 1 1 349 351 0=32 1=3 4=1 5=1 6=27648 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_38 1 3 351 351_splitncnn_0 351_splitncnn_1 351_splitncnn_2
|
||||
Concat Concat_159 3 1 346_splitncnn_4 348_splitncnn_2 351_splitncnn_2 352
|
||||
Convolution Conv_160 1 1 352 354 0=32 1=3 4=1 5=1 6=36864 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_39 1 2 354 354_splitncnn_0 354_splitncnn_1
|
||||
Concat Concat_162 4 1 346_splitncnn_3 348_splitncnn_1 351_splitncnn_1 354_splitncnn_1 355
|
||||
Convolution Conv_163 1 1 355 357 0=32 1=3 4=1 5=1 6=46080 9=2 -23310=1,2.000000e-01
|
||||
Concat Concat_165 5 1 346_splitncnn_2 348_splitncnn_0 351_splitncnn_0 354_splitncnn_0 357 358
|
||||
Convolution Conv_166 1 1 358 359 0=64 1=3 4=1 5=1 6=110592
|
||||
Eltwise Add_169 2 1 359 346_splitncnn_1 362 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Split splitncnn_40 1 6 362 362_splitncnn_0 362_splitncnn_1 362_splitncnn_2 362_splitncnn_3 362_splitncnn_4 362_splitncnn_5
|
||||
Convolution Conv_170 1 1 362_splitncnn_5 364 0=32 1=3 4=1 5=1 6=18432 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_41 1 4 364 364_splitncnn_0 364_splitncnn_1 364_splitncnn_2 364_splitncnn_3
|
||||
Concat Concat_172 2 1 362_splitncnn_4 364_splitncnn_3 365
|
||||
Convolution Conv_173 1 1 365 367 0=32 1=3 4=1 5=1 6=27648 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_42 1 3 367 367_splitncnn_0 367_splitncnn_1 367_splitncnn_2
|
||||
Concat Concat_175 3 1 362_splitncnn_3 364_splitncnn_2 367_splitncnn_2 368
|
||||
Convolution Conv_176 1 1 368 370 0=32 1=3 4=1 5=1 6=36864 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_43 1 2 370 370_splitncnn_0 370_splitncnn_1
|
||||
Concat Concat_178 4 1 362_splitncnn_2 364_splitncnn_1 367_splitncnn_1 370_splitncnn_1 371
|
||||
Convolution Conv_179 1 1 371 373 0=32 1=3 4=1 5=1 6=46080 9=2 -23310=1,2.000000e-01
|
||||
Concat Concat_181 5 1 362_splitncnn_1 364_splitncnn_0 367_splitncnn_0 370_splitncnn_0 373 374
|
||||
Convolution Conv_182 1 1 374 375 0=64 1=3 4=1 5=1 6=110592
|
||||
Eltwise Add_185 2 1 375 362_splitncnn_0 378 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Split splitncnn_44 1 6 378 378_splitncnn_0 378_splitncnn_1 378_splitncnn_2 378_splitncnn_3 378_splitncnn_4 378_splitncnn_5
|
||||
Convolution Conv_186 1 1 378_splitncnn_5 380 0=32 1=3 4=1 5=1 6=18432 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_45 1 4 380 380_splitncnn_0 380_splitncnn_1 380_splitncnn_2 380_splitncnn_3
|
||||
Concat Concat_188 2 1 378_splitncnn_4 380_splitncnn_3 381
|
||||
Convolution Conv_189 1 1 381 383 0=32 1=3 4=1 5=1 6=27648 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_46 1 3 383 383_splitncnn_0 383_splitncnn_1 383_splitncnn_2
|
||||
Concat Concat_191 3 1 378_splitncnn_3 380_splitncnn_2 383_splitncnn_2 384
|
||||
Convolution Conv_192 1 1 384 386 0=32 1=3 4=1 5=1 6=36864 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_47 1 2 386 386_splitncnn_0 386_splitncnn_1
|
||||
Concat Concat_194 4 1 378_splitncnn_2 380_splitncnn_1 383_splitncnn_1 386_splitncnn_1 387
|
||||
Convolution Conv_195 1 1 387 389 0=32 1=3 4=1 5=1 6=46080 9=2 -23310=1,2.000000e-01
|
||||
Concat Concat_197 5 1 378_splitncnn_1 380_splitncnn_0 383_splitncnn_0 386_splitncnn_0 389 390
|
||||
Convolution Conv_198 1 1 390 391 0=64 1=3 4=1 5=1 6=110592
|
||||
Eltwise Add_201 2 1 391 378_splitncnn_0 394 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Eltwise Add_204 2 1 394 346_splitncnn_0 397 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Split splitncnn_48 1 7 397 397_splitncnn_0 397_splitncnn_1 397_splitncnn_2 397_splitncnn_3 397_splitncnn_4 397_splitncnn_5 397_splitncnn_6
|
||||
Convolution Conv_205 1 1 397_splitncnn_6 399 0=32 1=3 4=1 5=1 6=18432 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_49 1 4 399 399_splitncnn_0 399_splitncnn_1 399_splitncnn_2 399_splitncnn_3
|
||||
Concat Concat_207 2 1 397_splitncnn_5 399_splitncnn_3 400
|
||||
Convolution Conv_208 1 1 400 402 0=32 1=3 4=1 5=1 6=27648 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_50 1 3 402 402_splitncnn_0 402_splitncnn_1 402_splitncnn_2
|
||||
Concat Concat_210 3 1 397_splitncnn_4 399_splitncnn_2 402_splitncnn_2 403
|
||||
Convolution Conv_211 1 1 403 405 0=32 1=3 4=1 5=1 6=36864 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_51 1 2 405 405_splitncnn_0 405_splitncnn_1
|
||||
Concat Concat_213 4 1 397_splitncnn_3 399_splitncnn_1 402_splitncnn_1 405_splitncnn_1 406
|
||||
Convolution Conv_214 1 1 406 408 0=32 1=3 4=1 5=1 6=46080 9=2 -23310=1,2.000000e-01
|
||||
Concat Concat_216 5 1 397_splitncnn_2 399_splitncnn_0 402_splitncnn_0 405_splitncnn_0 408 409
|
||||
Convolution Conv_217 1 1 409 410 0=64 1=3 4=1 5=1 6=110592
|
||||
Eltwise Add_220 2 1 410 397_splitncnn_1 413 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Split splitncnn_52 1 6 413 413_splitncnn_0 413_splitncnn_1 413_splitncnn_2 413_splitncnn_3 413_splitncnn_4 413_splitncnn_5
|
||||
Convolution Conv_221 1 1 413_splitncnn_5 415 0=32 1=3 4=1 5=1 6=18432 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_53 1 4 415 415_splitncnn_0 415_splitncnn_1 415_splitncnn_2 415_splitncnn_3
|
||||
Concat Concat_223 2 1 413_splitncnn_4 415_splitncnn_3 416
|
||||
Convolution Conv_224 1 1 416 418 0=32 1=3 4=1 5=1 6=27648 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_54 1 3 418 418_splitncnn_0 418_splitncnn_1 418_splitncnn_2
|
||||
Concat Concat_226 3 1 413_splitncnn_3 415_splitncnn_2 418_splitncnn_2 419
|
||||
Convolution Conv_227 1 1 419 421 0=32 1=3 4=1 5=1 6=36864 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_55 1 2 421 421_splitncnn_0 421_splitncnn_1
|
||||
Concat Concat_229 4 1 413_splitncnn_2 415_splitncnn_1 418_splitncnn_1 421_splitncnn_1 422
|
||||
Convolution Conv_230 1 1 422 424 0=32 1=3 4=1 5=1 6=46080 9=2 -23310=1,2.000000e-01
|
||||
Concat Concat_232 5 1 413_splitncnn_1 415_splitncnn_0 418_splitncnn_0 421_splitncnn_0 424 425
|
||||
Convolution Conv_233 1 1 425 426 0=64 1=3 4=1 5=1 6=110592
|
||||
Eltwise Add_236 2 1 426 413_splitncnn_0 429 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Split splitncnn_56 1 6 429 429_splitncnn_0 429_splitncnn_1 429_splitncnn_2 429_splitncnn_3 429_splitncnn_4 429_splitncnn_5
|
||||
Convolution Conv_237 1 1 429_splitncnn_5 431 0=32 1=3 4=1 5=1 6=18432 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_57 1 4 431 431_splitncnn_0 431_splitncnn_1 431_splitncnn_2 431_splitncnn_3
|
||||
Concat Concat_239 2 1 429_splitncnn_4 431_splitncnn_3 432
|
||||
Convolution Conv_240 1 1 432 434 0=32 1=3 4=1 5=1 6=27648 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_58 1 3 434 434_splitncnn_0 434_splitncnn_1 434_splitncnn_2
|
||||
Concat Concat_242 3 1 429_splitncnn_3 431_splitncnn_2 434_splitncnn_2 435
|
||||
Convolution Conv_243 1 1 435 437 0=32 1=3 4=1 5=1 6=36864 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_59 1 2 437 437_splitncnn_0 437_splitncnn_1
|
||||
Concat Concat_245 4 1 429_splitncnn_2 431_splitncnn_1 434_splitncnn_1 437_splitncnn_1 438
|
||||
Convolution Conv_246 1 1 438 440 0=32 1=3 4=1 5=1 6=46080 9=2 -23310=1,2.000000e-01
|
||||
Concat Concat_248 5 1 429_splitncnn_1 431_splitncnn_0 434_splitncnn_0 437_splitncnn_0 440 441
|
||||
Convolution Conv_249 1 1 441 442 0=64 1=3 4=1 5=1 6=110592
|
||||
Eltwise Add_252 2 1 442 429_splitncnn_0 445 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Eltwise Add_255 2 1 445 397_splitncnn_0 448 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Split splitncnn_60 1 7 448 448_splitncnn_0 448_splitncnn_1 448_splitncnn_2 448_splitncnn_3 448_splitncnn_4 448_splitncnn_5 448_splitncnn_6
|
||||
Convolution Conv_256 1 1 448_splitncnn_6 450 0=32 1=3 4=1 5=1 6=18432 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_61 1 4 450 450_splitncnn_0 450_splitncnn_1 450_splitncnn_2 450_splitncnn_3
|
||||
Concat Concat_258 2 1 448_splitncnn_5 450_splitncnn_3 451
|
||||
Convolution Conv_259 1 1 451 453 0=32 1=3 4=1 5=1 6=27648 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_62 1 3 453 453_splitncnn_0 453_splitncnn_1 453_splitncnn_2
|
||||
Concat Concat_261 3 1 448_splitncnn_4 450_splitncnn_2 453_splitncnn_2 454
|
||||
Convolution Conv_262 1 1 454 456 0=32 1=3 4=1 5=1 6=36864 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_63 1 2 456 456_splitncnn_0 456_splitncnn_1
|
||||
Concat Concat_264 4 1 448_splitncnn_3 450_splitncnn_1 453_splitncnn_1 456_splitncnn_1 457
|
||||
Convolution Conv_265 1 1 457 459 0=32 1=3 4=1 5=1 6=46080 9=2 -23310=1,2.000000e-01
|
||||
Concat Concat_267 5 1 448_splitncnn_2 450_splitncnn_0 453_splitncnn_0 456_splitncnn_0 459 460
|
||||
Convolution Conv_268 1 1 460 461 0=64 1=3 4=1 5=1 6=110592
|
||||
Eltwise Add_271 2 1 461 448_splitncnn_1 464 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Split splitncnn_64 1 6 464 464_splitncnn_0 464_splitncnn_1 464_splitncnn_2 464_splitncnn_3 464_splitncnn_4 464_splitncnn_5
|
||||
Convolution Conv_272 1 1 464_splitncnn_5 466 0=32 1=3 4=1 5=1 6=18432 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_65 1 4 466 466_splitncnn_0 466_splitncnn_1 466_splitncnn_2 466_splitncnn_3
|
||||
Concat Concat_274 2 1 464_splitncnn_4 466_splitncnn_3 467
|
||||
Convolution Conv_275 1 1 467 469 0=32 1=3 4=1 5=1 6=27648 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_66 1 3 469 469_splitncnn_0 469_splitncnn_1 469_splitncnn_2
|
||||
Concat Concat_277 3 1 464_splitncnn_3 466_splitncnn_2 469_splitncnn_2 470
|
||||
Convolution Conv_278 1 1 470 472 0=32 1=3 4=1 5=1 6=36864 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_67 1 2 472 472_splitncnn_0 472_splitncnn_1
|
||||
Concat Concat_280 4 1 464_splitncnn_2 466_splitncnn_1 469_splitncnn_1 472_splitncnn_1 473
|
||||
Convolution Conv_281 1 1 473 475 0=32 1=3 4=1 5=1 6=46080 9=2 -23310=1,2.000000e-01
|
||||
Concat Concat_283 5 1 464_splitncnn_1 466_splitncnn_0 469_splitncnn_0 472_splitncnn_0 475 476
|
||||
Convolution Conv_284 1 1 476 477 0=64 1=3 4=1 5=1 6=110592
|
||||
Eltwise Add_287 2 1 477 464_splitncnn_0 480 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Split splitncnn_68 1 6 480 480_splitncnn_0 480_splitncnn_1 480_splitncnn_2 480_splitncnn_3 480_splitncnn_4 480_splitncnn_5
|
||||
Convolution Conv_288 1 1 480_splitncnn_5 482 0=32 1=3 4=1 5=1 6=18432 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_69 1 4 482 482_splitncnn_0 482_splitncnn_1 482_splitncnn_2 482_splitncnn_3
|
||||
Concat Concat_290 2 1 480_splitncnn_4 482_splitncnn_3 483
|
||||
Convolution Conv_291 1 1 483 485 0=32 1=3 4=1 5=1 6=27648 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_70 1 3 485 485_splitncnn_0 485_splitncnn_1 485_splitncnn_2
|
||||
Concat Concat_293 3 1 480_splitncnn_3 482_splitncnn_2 485_splitncnn_2 486
|
||||
Convolution Conv_294 1 1 486 488 0=32 1=3 4=1 5=1 6=36864 9=2 -23310=1,2.000000e-01
|
||||
Split splitncnn_71 1 2 488 488_splitncnn_0 488_splitncnn_1
|
||||
Concat Concat_296 4 1 480_splitncnn_2 482_splitncnn_1 485_splitncnn_1 488_splitncnn_1 489
|
||||
Convolution Conv_297 1 1 489 491 0=32 1=3 4=1 5=1 6=46080 9=2 -23310=1,2.000000e-01
|
||||
Concat Concat_299 5 1 480_splitncnn_1 482_splitncnn_0 485_splitncnn_0 488_splitncnn_0 491 492
|
||||
Convolution Conv_300 1 1 492 493 0=64 1=3 4=1 5=1 6=110592
|
||||
Eltwise Add_303 2 1 493 480_splitncnn_0 496 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Eltwise Add_306 2 1 496 448_splitncnn_0 499 0=1 -23301=2,2.000000e-01,1.000000e+00
|
||||
Convolution Conv_307 1 1 499 500 0=64 1=3 4=1 5=1 6=36864
|
||||
BinaryOp Add_308 2 1 193_splitncnn_0 500 501
|
||||
Interp Resize_310 1 1 501 506 0=1 1=2.000000e+00 2=2.000000e+00
|
||||
Convolution Conv_311 1 1 506 508 0=64 1=3 4=1 5=1 6=36864 9=2 -23310=1,2.000000e-01
|
||||
Interp Resize_314 1 1 508 513 0=1 1=2.000000e+00 2=2.000000e+00
|
||||
Convolution Conv_315 1 1 513 515 0=64 1=3 4=1 5=1 6=36864 9=2 -23310=1,2.000000e-01
|
||||
Convolution Conv_317 1 1 515 517 0=64 1=3 4=1 5=1 6=36864 9=2 -23310=1,2.000000e-01
|
||||
Convolution Conv_319 1 1 517 output 0=3 1=3 4=1 5=1 6=1728
|
||||
BIN
examples/assets/models/high-fidelity-4x.bin
Normal file
1001
examples/assets/models/high-fidelity-4x.param
Normal file
BIN
examples/assets/models/model.bin
Normal file
|
After Width: | Height: | Size: 960 KiB |
1
examples/assets/models/model.gltf
Normal file
@@ -0,0 +1 @@
|
||||
{"asset":{"version":"2.0","generator":"babylon.js glTF exporter for 3dsmax 2021 v20210607.3"},"scene":0,"scenes":[{"nodes":[0]}],"nodes":[{"mesh":0,"translation":[0.0,-1.14751673,-5.015955E-08],"name":"Cylinder001"}],"meshes":[{"primitives":[{"attributes":{"POSITION":1,"NORMAL":2,"TEXCOORD_0":3},"indices":0,"material":0},{"attributes":{"POSITION":5,"NORMAL":6,"TEXCOORD_0":7},"indices":4,"material":1},{"attributes":{"POSITION":9,"NORMAL":10,"TEXCOORD_0":11},"indices":8,"material":2},{"attributes":{"POSITION":13,"NORMAL":14,"TEXCOORD_0":15},"indices":12,"material":3},{"attributes":{"POSITION":17,"NORMAL":18,"TEXCOORD_0":19},"indices":16,"material":4}],"name":"Cylinder001"}],"accessors":[{"bufferView":0,"componentType":5123,"count":858,"type":"SCALAR","name":"accessorIndices"},{"bufferView":1,"componentType":5126,"count":858,"max":[0.9673312,-0.0665806457,0.9673312],"min":[-0.9673312,-0.09678768,-0.9673312],"type":"VEC3","name":"accessorPositions"},{"bufferView":1,"byteOffset":10296,"componentType":5126,"count":858,"type":"VEC3","name":"accessorNormals"},{"bufferView":2,"componentType":5126,"count":858,"type":"VEC2","name":"accessorUVs"},{"bufferView":0,"byteOffset":1716,"componentType":5123,"count":14592,"type":"SCALAR","name":"accessorIndices"},{"bufferView":1,"byteOffset":20592,"componentType":5126,"count":14592,"max":[1.01214123,2.33892131,1.02725148],"min":[-1.01214123,-0.09678768,-1.01214123],"type":"VEC3","name":"accessorPositions"},{"bufferView":1,"byteOffset":195696,"componentType":5126,"count":14592,"type":"VEC3","name":"accessorNormals"},{"bufferView":2,"byteOffset":6864,"componentType":5126,"count":14592,"type":"VEC2","name":"accessorUVs"},{"bufferView":0,"byteOffset":30900,"componentType":5123,"count":1620,"type":"SCALAR","name":"accessorIndices"},{"bufferView":1,"byteOffset":370800,"componentType":5126,"count":1620,"max":[1.006612,2.3633275,1.006612],"min":[-1.006612,2.338921,-1.006612],"type":"VEC3","name":"accessorPositions"},{"bufferView":1,"byteOffset":390240,"componentType":5126,"count":1620,"type":"VEC3","name":"accessorNormals"},{"bufferView":2,"byteOffset":123600,"componentType":5126,"count":1620,"type":"VEC2","name":"accessorUVs"},{"bufferView":0,"byteOffset":34140,"componentType":5123,"count":318,"type":"SCALAR","name":"accessorIndices"},{"bufferView":1,"byteOffset":409680,"componentType":5126,"count":318,"max":[0.9454922,2.3548696,0.9454922],"min":[-0.9454921,0.0617354736,-0.945492268],"type":"VEC3","name":"accessorPositions"},{"bufferView":1,"byteOffset":413496,"componentType":5126,"count":318,"type":"VEC3","name":"accessorNormals"},{"bufferView":2,"byteOffset":136560,"componentType":5126,"count":318,"type":"VEC2","name":"accessorUVs"},{"bufferView":0,"byteOffset":34776,"componentType":5123,"count":11520,"type":"SCALAR","name":"accessorIndices"},{"bufferView":1,"byteOffset":417312,"componentType":5126,"count":11520,"max":[0.196413681,2.12139344,1.90955186],"min":[-0.196414649,0.165008187,1.00927675],"type":"VEC3","name":"accessorPositions"},{"bufferView":1,"byteOffset":555552,"componentType":5126,"count":11520,"type":"VEC3","name":"accessorNormals"},{"bufferView":2,"byteOffset":139104,"componentType":5126,"count":11520,"type":"VEC2","name":"accessorUVs"}],"bufferViews":[{"buffer":0,"byteLength":57816,"name":"bufferViewScalar"},{"buffer":0,"byteOffset":57816,"byteLength":693792,"byteStride":12,"name":"bufferViewFloatVec3"},{"buffer":0,"byteOffset":751608,"byteLength":231264,"byteStride":8,"name":"bufferViewFloatVec2"}],"buffers":[{"uri":"model.bin","byteLength":982872}],"materials":[{"pbrMetallicRoughness":{"metallicFactor":0.0,"roughnessFactor":0.9},"doubleSided":true,"name":"01 - Default"},{"pbrMetallicRoughness":{"baseColorTexture":{"index":0},"metallicFactor":0.0,"roughnessFactor":0.9},"doubleSided":true,"name":"02 - Default"},{"pbrMetallicRoughness":{"baseColorFactor":[0.0,1.0,0.117647067,1.0],"metallicFactor":0.0,"roughnessFactor":0.9},"doubleSided":true,"name":"03 - Default"},{"pbrMetallicRoughness":{"baseColorFactor":[0.2784314,0.0,0.9921569,1.0],"metallicFactor":0.0,"roughnessFactor":0.9},"doubleSided":true,"name":"04 - Default"},{"pbrMetallicRoughness":{"baseColorFactor":[0.9725491,0.776470661,0.0,1.0],"metallicFactor":0.0,"roughnessFactor":0.9},"doubleSided":true,"name":"05 - Default"}],"textures":[{"sampler":0,"source":0,"name":"texture.jpg"}],"images":[{"uri":"./texture.jpg"}],"samplers":[{"magFilter":9729,"minFilter":9987}]}
|
||||
BIN
examples/assets/models/remacri-4x.bin
Normal file
1372
examples/assets/models/remacri-4x.param
Normal file
BIN
examples/assets/models/texture.jpg
Normal file
|
After Width: | Height: | Size: 8.2 MiB |
BIN
examples/assets/models/ultramix-balanced-4x.bin
Normal file
1372
examples/assets/models/ultramix-balanced-4x.param
Normal file
BIN
examples/assets/models/ultrasharp-4x.bin
Normal file
1001
examples/assets/models/ultrasharp-4x.param
Normal file
BIN
examples/assets/models/upscayl-lite-4x.bin
Normal file
74
examples/assets/models/upscayl-lite-4x.param
Normal file
@@ -0,0 +1,74 @@
|
||||
7767517
|
||||
72 73
|
||||
Input input.1 0 1 data
|
||||
Split splitncnn_input0 1 2 data input_splitncnn_0 input_splitncnn_1
|
||||
Convolution Conv_0 1 1 input_splitncnn_1 102 0=64 1=3 4=1 5=1 6=1728
|
||||
PReLU PRelu_1 1 1 102 105 0=64
|
||||
Convolution Conv_2 1 1 105 106 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_3 1 1 106 109 0=64
|
||||
Convolution Conv_4 1 1 109 110 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_5 1 1 110 113 0=64
|
||||
Convolution Conv_6 1 1 113 114 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_7 1 1 114 117 0=64
|
||||
Convolution Conv_8 1 1 117 118 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_9 1 1 118 121 0=64
|
||||
Convolution Conv_10 1 1 121 122 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_11 1 1 122 125 0=64
|
||||
Convolution Conv_12 1 1 125 126 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_13 1 1 126 129 0=64
|
||||
Convolution Conv_14 1 1 129 130 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_15 1 1 130 133 0=64
|
||||
Convolution Conv_16 1 1 133 134 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_17 1 1 134 137 0=64
|
||||
Convolution Conv_18 1 1 137 138 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_19 1 1 138 141 0=64
|
||||
Convolution Conv_20 1 1 141 142 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_21 1 1 142 145 0=64
|
||||
Convolution Conv_22 1 1 145 146 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_23 1 1 146 149 0=64
|
||||
Convolution Conv_24 1 1 149 150 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_25 1 1 150 153 0=64
|
||||
Convolution Conv_26 1 1 153 154 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_27 1 1 154 157 0=64
|
||||
Convolution Conv_28 1 1 157 158 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_29 1 1 158 161 0=64
|
||||
Convolution Conv_30 1 1 161 162 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_31 1 1 162 165 0=64
|
||||
Convolution Conv_32 1 1 165 166 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_33 1 1 166 169 0=64
|
||||
Convolution Conv_34 1 1 169 170 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_35 1 1 170 173 0=64
|
||||
Convolution Conv_36 1 1 173 174 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_37 1 1 174 177 0=64
|
||||
Convolution Conv_38 1 1 177 178 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_39 1 1 178 181 0=64
|
||||
Convolution Conv_40 1 1 181 182 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_41 1 1 182 185 0=64
|
||||
Convolution Conv_42 1 1 185 186 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_43 1 1 186 189 0=64
|
||||
Convolution Conv_44 1 1 189 190 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_45 1 1 190 193 0=64
|
||||
Convolution Conv_46 1 1 193 194 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_47 1 1 194 197 0=64
|
||||
Convolution Conv_48 1 1 197 198 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_49 1 1 198 201 0=64
|
||||
Convolution Conv_50 1 1 201 202 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_51 1 1 202 205 0=64
|
||||
Convolution Conv_52 1 1 205 206 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_53 1 1 206 209 0=64
|
||||
Convolution Conv_54 1 1 209 210 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_55 1 1 210 213 0=64
|
||||
Convolution Conv_56 1 1 213 214 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_57 1 1 214 217 0=64
|
||||
Convolution Conv_58 1 1 217 218 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_59 1 1 218 221 0=64
|
||||
Convolution Conv_60 1 1 221 222 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_61 1 1 222 225 0=64
|
||||
Convolution Conv_62 1 1 225 226 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_63 1 1 226 229 0=64
|
||||
Convolution Conv_64 1 1 229 230 0=64 1=3 4=1 5=1 6=36864
|
||||
PReLU PRelu_65 1 1 230 233 0=64
|
||||
Convolution Conv_66 1 1 233 234 0=48 1=3 4=1 5=1 6=27648
|
||||
PixelShuffle DepthToSpace_67 1 1 234 235 0=4
|
||||
Interp Resize_68 1 1 input_splitncnn_0 240 0=1 1=4.000000e+00 2=4.000000e+00
|
||||
BinaryOp Add_69 2 1 235 240 output
|
||||
BIN
examples/assets/models/upscayl-standard-4x.bin
Normal file
1001
examples/assets/models/upscayl-standard-4x.param
Normal file
BIN
examples/assets/red_24x24.png
Normal file
|
After Width: | Height: | Size: 313 B |
BIN
examples/assets/solidcolor.filamat
Normal file
14
examples/assets/solidcolor.mat
Normal file
@@ -0,0 +1,14 @@
|
||||
material {
|
||||
name : SolidColor,
|
||||
shadingModel : unlit,
|
||||
culling : none,
|
||||
featureLevel : 1,
|
||||
vertexDomain: object
|
||||
}
|
||||
|
||||
fragment {
|
||||
void material(inout MaterialInputs material) {
|
||||
prepareMaterial(material);
|
||||
material.baseColor = vec4(0.1f, 0.5f, 0.9f, 1.0f);
|
||||
}
|
||||
}
|
||||
30
examples/assets/upscale_resize.sh
Executable file
@@ -0,0 +1,30 @@
|
||||
#!/bin/zsh
|
||||
setopt null_glob
|
||||
|
||||
INPUT="./images"
|
||||
OUTPUT="./images_output"
|
||||
MODELPATH="./models"
|
||||
MODELNAME="ultramix-balanced-4x"
|
||||
TARGET_WIDTH="4320"
|
||||
FORMAT="jpg" # 或 webp
|
||||
SCALE=3
|
||||
MAX_SIZE=$((20 * 1024 * 1024)) # 20MB
|
||||
|
||||
|
||||
./bin/mac/upscayl-bin -i "$INPUT" -o "$OUTPUT" -f $FORMAT -m $MODELPATH -n $MODELNAME -w $TARGET_WIDTH -j 4:8:4 -v
|
||||
|
||||
echo "\n===== 输入目录: $INPUT ====="
|
||||
for img in "$INPUT"/*.{png,jpg,jpeg}; do
|
||||
[ -e "$img" ] || continue
|
||||
size=$(stat -f%z "$img")
|
||||
res=$(sips -g pixelWidth -g pixelHeight "$img" 2>/dev/null | awk '/pixelWidth|pixelHeight/ {print $2}' | xargs | sed 's/ /x/')
|
||||
echo "$(basename "$img"): ${size} bytes, ${res}"
|
||||
done
|
||||
|
||||
echo "\n===== 输出目录: $OUTPUT ====="
|
||||
for img in "$OUTPUT"/*.{png,jpg,jpeg}; do
|
||||
[ -e "$img" ] || continue
|
||||
size=$(stat -f%z "$img")
|
||||
res=$(sips -g pixelWidth -g pixelHeight "$img" 2>/dev/null | awk '/pixelWidth|pixelHeight/ {print $2}' | xargs | sed 's/ /x/')
|
||||
echo "$(basename "$img"): ${size} bytes, ${res}"
|
||||
done
|
||||
114
examples/assets/upscale_to_8k.sh
Executable file
@@ -0,0 +1,114 @@
|
||||
#!/bin/zsh
|
||||
setopt null_glob
|
||||
|
||||
# 设置默认值或从环境变量获取
|
||||
INPUT="${INPUT_DIR:-./images}"
|
||||
OUTPUT="${OUTPUT_DIR:-./images_output}"
|
||||
MODELPATH="${MODELPATH:-./models}"
|
||||
MODELNAME="${MODELNAME:-ultramix-balanced-4x}"
|
||||
BIN_PATH="${BIN_PATH:-./bin/mac/upscayl-bin}"
|
||||
TARGET_WIDTH=4320
|
||||
TARGET_HEIGHT=7680
|
||||
FORMAT="jpg"
|
||||
THREADS="4:8:4"
|
||||
TARGET_SIZE=$((10 * 1024 * 1024)) # 10MB
|
||||
MAX_SIZE=$((20 * 1024 * 1024)) # 20MB
|
||||
|
||||
echo "===== 开始批量处理图片 ====="
|
||||
echo "输入目录: $INPUT"
|
||||
echo "输出目录: $OUTPUT"
|
||||
echo "模型路径: $MODELPATH"
|
||||
echo "模型名称: $MODELNAME"
|
||||
echo "二进制文件: $BIN_PATH"
|
||||
|
||||
# 确保输出目录存在
|
||||
mkdir -p "$OUTPUT"
|
||||
|
||||
# 循环对每个图片单独执行 upscayl-bin,输出路径为文件路径
|
||||
for img in "$INPUT"/*.{png,jpg,jpeg}; do
|
||||
[ -e "$img" ] || continue
|
||||
base=$(basename "$img")
|
||||
out_img="$OUTPUT/${base%.*}.$FORMAT"
|
||||
compress=10 # 0为无压缩,100为最大压缩
|
||||
try=1
|
||||
echo "\n==== 开始处理: $base ===="
|
||||
echo "输入文件: $img"
|
||||
echo "输出文件: $out_img"
|
||||
echo "模型: $MODELNAME, 模型路径: $MODELPATH"
|
||||
echo "格式: $FORMAT"
|
||||
|
||||
|
||||
# 获取原图宽高
|
||||
read orig_w orig_h <<< $(sips -g pixelWidth -g pixelHeight "$img" 2>/dev/null | awk '/pixelWidth/ {w=$2} /pixelHeight/ {h=$2} END{print w,h}')
|
||||
if [ "$orig_w" -lt "$orig_h" ]; then
|
||||
short=$orig_w
|
||||
long=$orig_h
|
||||
else
|
||||
short=$orig_h
|
||||
long=$orig_w
|
||||
fi
|
||||
echo "DEBUG: orig_w=$orig_w, orig_h=$orig_h, short=$short, long=$long"
|
||||
scale1=$(echo "scale=8; 4320/$short" | bc)
|
||||
scale2=$(echo "scale=8; 7680/$long" | bc)
|
||||
echo "DEBUG: scale1=$scale1, scale2=$scale2"
|
||||
# 取scale1和scale2的最大值
|
||||
scale=$(echo "$scale1 > $scale2" | bc -l)
|
||||
if [ "$scale" -eq 1 ]; then
|
||||
use_scale=$scale1
|
||||
else
|
||||
use_scale=$scale2
|
||||
fi
|
||||
use_scale=$(printf "%f" "$use_scale")
|
||||
echo "DEBUG: use_scale=$use_scale"
|
||||
# 保证不缩小
|
||||
scale_cmp=$(echo "$use_scale > 1" | bc -l)
|
||||
echo "DEBUG: scale_cmp=$scale_cmp"
|
||||
if [ "$scale_cmp" -eq 1 ]; then
|
||||
target_w=$(awk -v w="$orig_w" -v s="$use_scale" 'BEGIN{printf "%d", w*s+0.5}')
|
||||
target_h=$(awk -v h="$orig_h" -v s="$use_scale" 'BEGIN{printf "%d", h*s+0.5}')
|
||||
echo "原图分辨率: ${orig_w}x${orig_h}, 目标分辨率: ${target_w}x${target_h} (短边≥4320, 长边≥7680)"
|
||||
else
|
||||
target_w=$orig_w
|
||||
target_h=$orig_h
|
||||
echo "原图分辨率: ${orig_w}x${orig_h}, 已满足短边≥4320且长边≥7680,无需放大"
|
||||
fi
|
||||
|
||||
while true; do
|
||||
echo "尝试第 $try 次: compress=$compress"
|
||||
upscale_cmd="\"$BIN_PATH\" -i \"$img\" -o \"$out_img\" -f $FORMAT -m \"$MODELPATH\" -n $MODELNAME -r \"${target_w}x${target_h}\" -c $compress -j $THREADS -v"
|
||||
echo "执行命令: $upscale_cmd"
|
||||
eval $upscale_cmd
|
||||
if [ ! -f "$out_img" ]; then
|
||||
echo "$base: 未生成图片,compress=$compress"
|
||||
break
|
||||
fi
|
||||
size=$(stat -f%z "$out_img")
|
||||
res=$(sips -g pixelWidth -g pixelHeight "$out_img" 2>/dev/null | awk '/pixelWidth|pixelHeight/ {print $2}' | xargs | sed 's/ /x/')
|
||||
echo "$base: compress=$compress, size=${size} bytes, 分辨率=${res}"
|
||||
if [ $size -le $MAX_SIZE ] || [ $compress -ge 100 ]; then
|
||||
echo "$base: 满足大小要求,最终 compress=$compress"
|
||||
break
|
||||
fi
|
||||
# compress 每次递增10,最大不超过100
|
||||
compress=$((compress + 10))
|
||||
[ $compress -gt 100 ] && compress=100
|
||||
try=$((try+1))
|
||||
[ $try -gt 10 ] && echo "$base: 达到最大尝试次数,停止调整" && break
|
||||
done
|
||||
done
|
||||
|
||||
echo "\n===== 输入目录: $INPUT ====="
|
||||
for img in "$INPUT"/*.{png,jpg,jpeg}; do
|
||||
[ -e "$img" ] || continue
|
||||
size=$(stat -f%z "$img")
|
||||
res=$(sips -g pixelWidth -g pixelHeight "$img" 2>/dev/null | awk '/pixelWidth|pixelHeight/ {print $2}' | xargs | sed 's/ /x/')
|
||||
echo "$(basename "$img"): ${size} bytes, ${res}"
|
||||
done
|
||||
|
||||
echo "\n===== 输出目录: $OUTPUT ====="
|
||||
for img in "$OUTPUT"/*.{png,jpg,jpeg}; do
|
||||
[ -e "$img" ] || continue
|
||||
size=$(stat -f%z "$img")
|
||||
res=$(sips -g pixelWidth -g pixelHeight "$img" 2>/dev/null | awk '/pixelWidth|pixelHeight/ {print $2}' | xargs | sed 's/ /x/')
|
||||
echo "$(basename "$img"): ${size} bytes, ${res}"
|
||||
done
|
||||
131
examples/assets/upscale_to_8k_single.sh
Executable file
@@ -0,0 +1,131 @@
|
||||
#!/bin/zsh
|
||||
setopt null_glob
|
||||
|
||||
# 从环境变量或参数获取配置
|
||||
INPUT_FILE="${INPUT_FILE:-$1}"
|
||||
OUTPUT_FILE="${OUTPUT_FILE:-$2}"
|
||||
MODELPATH="${MODELPATH:-./models}"
|
||||
MODELNAME="${MODELNAME:-ultramix-balanced-4x}"
|
||||
BIN_PATH="${BIN_PATH:-./bin/mac/upscayl-bin}"
|
||||
TARGET_WIDTH=4320
|
||||
TARGET_HEIGHT=7680
|
||||
FORMAT="jpg"
|
||||
THREADS="4:8:4"
|
||||
TARGET_SIZE=$((10 * 1024 * 1024)) # 10MB
|
||||
MAX_SIZE=$((20 * 1024 * 1024)) # 20MB
|
||||
|
||||
# 检查输入参数
|
||||
if [ -z "$INPUT_FILE" ] || [ -z "$OUTPUT_FILE" ]; then
|
||||
echo "错误: 需要指定输入和输出文件路径"
|
||||
echo "用法: $0 <输入文件> <输出文件>"
|
||||
echo "或者设置环境变量 INPUT_FILE 和 OUTPUT_FILE"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -f "$INPUT_FILE" ]; then
|
||||
echo "错误: 输入文件不存在: $INPUT_FILE"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "===== 开始处理单张图片 ====="
|
||||
echo "输入文件: $INPUT_FILE"
|
||||
echo "输出文件: $OUTPUT_FILE"
|
||||
echo "模型路径: $MODELPATH"
|
||||
echo "模型名称: $MODELNAME"
|
||||
echo "二进制文件: $BIN_PATH"
|
||||
|
||||
# 确保输出目录存在
|
||||
output_dir=$(dirname "$OUTPUT_FILE")
|
||||
mkdir -p "$output_dir"
|
||||
|
||||
base=$(basename "$INPUT_FILE")
|
||||
compress=10 # 0为无压缩,100为最大压缩
|
||||
try=1
|
||||
|
||||
echo "\n==== 开始处理: $base ===="
|
||||
echo "输入文件: $INPUT_FILE"
|
||||
echo "输出文件: $OUTPUT_FILE"
|
||||
echo "模型: $MODELNAME, 模型路径: $MODELPATH"
|
||||
echo "格式: $FORMAT"
|
||||
|
||||
# 获取原图宽高
|
||||
read orig_w orig_h <<< $(sips -g pixelWidth -g pixelHeight "$INPUT_FILE" 2>/dev/null | awk '/pixelWidth/ {w=$2} /pixelHeight/ {h=$2} END{print w,h}')
|
||||
if [ "$orig_w" -lt "$orig_h" ]; then
|
||||
short=$orig_w
|
||||
long=$orig_h
|
||||
else
|
||||
short=$orig_h
|
||||
long=$orig_w
|
||||
fi
|
||||
echo "DEBUG: orig_w=$orig_w, orig_h=$orig_h, short=$short, long=$long"
|
||||
|
||||
scale1=$(echo "scale=8; 4320/$short" | bc)
|
||||
scale2=$(echo "scale=8; 7680/$long" | bc)
|
||||
echo "DEBUG: scale1=$scale1, scale2=$scale2"
|
||||
|
||||
# 取scale1和scale2的最大值
|
||||
scale=$(echo "$scale1 > $scale2" | bc -l)
|
||||
if [ "$scale" -eq 1 ]; then
|
||||
use_scale=$scale1
|
||||
else
|
||||
use_scale=$scale2
|
||||
fi
|
||||
use_scale=$(printf "%f" "$use_scale")
|
||||
echo "DEBUG: use_scale=$use_scale"
|
||||
|
||||
# 保证不缩小
|
||||
scale_cmp=$(echo "$use_scale > 1" | bc -l)
|
||||
echo "DEBUG: scale_cmp=$scale_cmp"
|
||||
if [ "$scale_cmp" -eq 1 ]; then
|
||||
target_w=$(awk -v w="$orig_w" -v s="$use_scale" 'BEGIN{printf "%d", w*s+0.5}')
|
||||
target_h=$(awk -v h="$orig_h" -v s="$use_scale" 'BEGIN{printf "%d", h*s+0.5}')
|
||||
echo "原图分辨率: ${orig_w}x${orig_h}, 目标分辨率: ${target_w}x${target_h} (短边≥4320, 长边≥7680)"
|
||||
else
|
||||
target_w=$orig_w
|
||||
target_h=$orig_h
|
||||
echo "原图分辨率: ${orig_w}x${orig_h}, 已满足短边≥4320且长边≥7680,无需放大"
|
||||
fi
|
||||
|
||||
# 处理图片,循环调整压缩率直到满足大小要求
|
||||
while true; do
|
||||
echo "尝试第 $try 次: compress=$compress"
|
||||
upscale_cmd="\"$BIN_PATH\" -i \"$INPUT_FILE\" -o \"$OUTPUT_FILE\" -f $FORMAT -m \"$MODELPATH\" -n $MODELNAME -r \"${target_w}x${target_h}\" -c $compress -j $THREADS -v"
|
||||
echo "执行命令: $upscale_cmd"
|
||||
eval $upscale_cmd
|
||||
|
||||
if [ ! -f "$OUTPUT_FILE" ]; then
|
||||
echo "$base: 未生成图片,compress=$compress"
|
||||
echo "处理失败"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
size=$(stat -f%z "$OUTPUT_FILE")
|
||||
res=$(sips -g pixelWidth -g pixelHeight "$OUTPUT_FILE" 2>/dev/null | awk '/pixelWidth|pixelHeight/ {print $2}' | xargs | sed 's/ /x/')
|
||||
echo "$base: compress=$compress, size=${size} bytes, 分辨率=${res}"
|
||||
|
||||
if [ $size -le $MAX_SIZE ] || [ $compress -ge 100 ]; then
|
||||
echo "$base: 满足大小要求,最终 compress=$compress"
|
||||
break
|
||||
fi
|
||||
|
||||
# compress 每次递增10,最大不超过100
|
||||
compress=$((compress + 10))
|
||||
[ $compress -gt 100 ] && compress=100
|
||||
try=$((try+1))
|
||||
[ $try -gt 10 ] && echo "$base: 达到最大尝试次数,停止调整" && break
|
||||
done
|
||||
|
||||
echo "\n===== 处理完成 ====="
|
||||
if [ -f "$OUTPUT_FILE" ]; then
|
||||
input_size=$(stat -f%z "$INPUT_FILE")
|
||||
output_size=$(stat -f%z "$OUTPUT_FILE")
|
||||
input_res=$(sips -g pixelWidth -g pixelHeight "$INPUT_FILE" 2>/dev/null | awk '/pixelWidth|pixelHeight/ {print $2}' | xargs | sed 's/ /x/')
|
||||
output_res=$(sips -g pixelWidth -g pixelHeight "$OUTPUT_FILE" 2>/dev/null | awk '/pixelWidth|pixelHeight/ {print $2}' | xargs | sed 's/ /x/')
|
||||
|
||||
echo "输入: $(basename "$INPUT_FILE") - ${input_size} bytes, ${input_res}"
|
||||
echo "输出: $(basename "$OUTPUT_FILE") - ${output_size} bytes, ${output_res}"
|
||||
echo "处理成功完成!"
|
||||
else
|
||||
echo "处理失败:未生成输出文件"
|
||||
exit 1
|
||||
fi
|
||||
4
examples/dart/cli_headless/.gitignore
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
# https://dart.dev/guides/libraries/private-files
|
||||
# Created by `dart pub`
|
||||
.dart_tool/
|
||||
output/**
|
||||
3
examples/dart/cli_headless/CHANGELOG.md
Normal file
@@ -0,0 +1,3 @@
|
||||
## 1.0.0
|
||||
|
||||
- Initial version.
|
||||