diff --git a/public/nintendo-ds/license.txt b/public/nintendo-ds/license.txt new file mode 100644 index 0000000..2bbee98 --- /dev/null +++ b/public/nintendo-ds/license.txt @@ -0,0 +1,11 @@ +Model Information: +* title: Nintendo DS +* source: https://sketchfab.com/3d-models/nintendo-ds-934fdde060874d5c99b40cdf1dbb37f2 +* author: solal.sblt (https://sketchfab.com/Solal.Sebillotte) + +Model License: +* license type: CC-BY-4.0 (http://creativecommons.org/licenses/by/4.0/) +* requirements: Author must be credited. Commercial use is allowed. + +If you use this 3D model in your project be sure to copy paste this credit wherever you share it: +This work is based on "Nintendo DS" (https://sketchfab.com/3d-models/nintendo-ds-934fdde060874d5c99b40cdf1dbb37f2) by solal.sblt (https://sketchfab.com/Solal.Sebillotte) licensed under CC-BY-4.0 (http://creativecommons.org/licenses/by/4.0/) \ No newline at end of file diff --git a/public/nintendo-ds/scene.bin b/public/nintendo-ds/scene.bin new file mode 100644 index 0000000..9d4a755 Binary files /dev/null and b/public/nintendo-ds/scene.bin differ diff --git a/public/nintendo-ds/scene.gltf b/public/nintendo-ds/scene.gltf new file mode 100644 index 0000000..8fee985 --- /dev/null +++ b/public/nintendo-ds/scene.gltf @@ -0,0 +1,1706 @@ +{ + "accessors": [ + { + "bufferView": 2, + "componentType": 5126, + "count": 256, + "max": [ + 0.003685247153043747, 0.0012006270699203014, 0.003685247153043747 + ], + "min": [ + -0.003685247153043747, -0.0011087656021118164, -0.0036852452903985977 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 3072, + "componentType": 5126, + "count": 256, + "max": [1.0, 0.996528148651123, 1.0], + "min": [-1.0, -1.0, -1.0], + "type": "VEC3" + }, + { + "bufferView": 1, + "componentType": 5126, + "count": 256, + "max": [0.8511358499526978, 0.7143253684043884], + "min": [0.7952355742454529, 0.6604272127151489], + "type": "VEC2" + }, + { + "bufferView": 0, + "componentType": 5125, + "count": 1332, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 6144, + "componentType": 5126, + "count": 256, + "max": [ + 0.003685247153043747, 0.0012006266042590141, 0.003685247153043747 + ], + "min": [ + -0.003685247153043747, -0.0011087660677731037, -0.0036852462217211723 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 9216, + "componentType": 5126, + "count": 256, + "max": [1.0, 0.996528148651123, 1.0], + "min": [-1.0, -1.0, -1.0], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 2048, + "componentType": 5126, + "count": 256, + "max": [0.907051146030426, 0.6593194007873535], + "min": [0.8511508107185364, 0.6054208874702454], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 5328, + "componentType": 5125, + "count": 1332, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 12288, + "componentType": 5126, + "count": 11362, + "max": [0.06650000065565109, 0.004247849807143211, 0.0693383440375328], + "min": [ + -0.06650000065565109, -0.003952499479055405, -0.004786074161529541 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 148632, + "componentType": 5126, + "count": 11362, + "max": [0.9991406798362732, 1.0, 1.0], + "min": [-1.0, -1.0, -1.0], + "type": "VEC3" + }, + { + "bufferView": 3, + "componentType": 5126, + "count": 11362, + "max": [1.0, 1.0, 1.0, 1.0], + "min": [-1.0, -1.0, -1.0, -1.0], + "type": "VEC4" + }, + { + "bufferView": 1, + "byteOffset": 4096, + "componentType": 5126, + "count": 11362, + "max": [1.0, 1.0], + "min": [-5.414565240613456e-9, 0.08102530241012573], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 94992, + "componentType": 5126, + "count": 11362, + "max": [1.0, 1.0], + "min": [-5.414565240613456e-9, 0.08102530241012573], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 185888, + "componentType": 5126, + "count": 11362, + "max": [1.0, 1.0], + "min": [-5.414565240613456e-9, 0.08102530241012573], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 276784, + "componentType": 5126, + "count": 11362, + "max": [1.017048716545105, 0.945860743522644], + "min": [0.23486998677253723, 0.06718564033508301], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 367680, + "componentType": 5126, + "count": 11362, + "max": [1.0, 1.0], + "min": [-5.414565240613456e-9, 0.08102530241012573], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 10656, + "componentType": 5125, + "count": 44529, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 284976, + "componentType": 5126, + "count": 172, + "max": [ + 0.030319975689053535, -0.0001641707494854927, 0.05846783518791199 + ], + "min": [ + -0.030320066958665848, -0.0001644152944209054, 0.01437666080892086 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 287040, + "componentType": 5126, + "count": 172, + "max": [0.815692126750946, -0.46981021761894226, 0.8159803152084351], + "min": [-0.697921097278595, -1.0, -0.8139834403991699], + "type": "VEC3" + }, + { + "bufferView": 3, + "byteOffset": 181792, + "componentType": 5126, + "count": 172, + "max": [1.0, 0.8815797567367554, 0.453093558549881, 1.0], + "min": [-1.0, -0.8794383406639099, -0.9996353387832642, -1.0], + "type": "VEC4" + }, + { + "bufferView": 1, + "byteOffset": 458576, + "componentType": 5126, + "count": 172, + "max": [0.9990425109863281, 0.39580559730529785], + "min": [0.0009574337163940072, 0.0013481378555297852], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 459952, + "componentType": 5126, + "count": 172, + "max": [0.5970842838287354, 0.3951408267021179], + "min": [0.3719750940799713, 0.11630934476852417], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 461328, + "componentType": 5126, + "count": 172, + "max": [0.9990425109863281, 0.39580559730529785], + "min": [0.0009574337163940072, 0.0013481378555297852], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 462704, + "componentType": 5126, + "count": 172, + "max": [0.9990425109863281, 0.39580559730529785], + "min": [0.0009574337163940072, 0.0013481378555297852], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 464080, + "componentType": 5126, + "count": 172, + "max": [0.9990425109863281, 0.39580559730529785], + "min": [0.0009574337163940072, 0.0013481378555297852], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 465456, + "componentType": 5126, + "count": 172, + "max": [0.9990425109863281, 0.39580559730529785], + "min": [0.0009574337163940072, 0.0013481378555297852], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 188772, + "componentType": 5125, + "count": 591, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 289104, + "componentType": 5126, + "count": 256, + "max": [ + 0.0018481574952602386, 0.000938998069614172, 0.0018481574952602386 + ], + "min": [ + -0.0018481574952602386, -0.0008896081708371639, -0.0018481574952602386 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 292176, + "componentType": 5126, + "count": 256, + "max": [1.0, 0.996528148651123, 1.0], + "min": [-1.0, -1.0, -1.0], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 466832, + "componentType": 5126, + "count": 256, + "max": [0.5854395031929016, 0.5513797998428345], + "min": [0.5694469213485718, 0.5359599590301514], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 191136, + "componentType": 5125, + "count": 1332, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 295248, + "componentType": 5126, + "count": 1888, + "max": [0.06650000065565109, 0.004648088943213224, 0.004837951622903347], + "min": [ + -0.06650000065565109, -0.0038614626973867416, -0.004837951622903347 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 317904, + "componentType": 5126, + "count": 1888, + "max": [1.0, 0.9990490674972534, 1.0], + "min": [-1.0, -1.0, -1.0], + "type": "VEC3" + }, + { + "bufferView": 3, + "byteOffset": 184544, + "componentType": 5126, + "count": 1888, + "max": [0.7663471102714539, 1.0, 0.9992668628692627, 1.0], + "min": [-0.7663471102714539, -1.0, -1.0, -1.0], + "type": "VEC4" + }, + { + "bufferView": 1, + "byteOffset": 468880, + "componentType": 5126, + "count": 1888, + "max": [0.37812599539756775, 0.3951408267021179], + "min": [0.033506907522678375, 0.24947750568389893], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 483984, + "componentType": 5126, + "count": 1888, + "max": [0.37812599539756775, 0.3951408267021179], + "min": [0.033506907522678375, 0.24947750568389893], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 499088, + "componentType": 5126, + "count": 1888, + "max": [0.37812599539756775, 0.3951408267021179], + "min": [0.033506907522678375, 0.24947750568389893], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 514192, + "componentType": 5126, + "count": 1888, + "max": [0.37812599539756775, 0.3951408267021179], + "min": [0.033506907522678375, 0.24947750568389893], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 529296, + "componentType": 5126, + "count": 1888, + "max": [0.37812599539756775, 0.3951408267021179], + "min": [0.033506907522678375, 0.24947750568389893], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 196464, + "componentType": 5125, + "count": 9276, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 340560, + "componentType": 5126, + "count": 40, + "max": [0.057932112365961075, 0.004563519731163979, 0.002610582858324051], + "min": [ + 0.056727804243564606, 0.0040124934166669846, -0.002610582858324051 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 341040, + "componentType": 5126, + "count": 40, + "max": [0.0, 0.9990490674972534, 0.4226062595844269], + "min": [0.0, 0.906313419342041, -0.4226062595844269], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 544400, + "componentType": 5126, + "count": 40, + "max": [0.29307717084884644, 0.35587912797927856], + "min": [0.2690790593624115, 0.3503437042236328], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 544720, + "componentType": 5126, + "count": 40, + "max": [0.29307717084884644, 0.35587912797927856], + "min": [0.2690790593624115, 0.3503437042236328], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 233568, + "componentType": 5125, + "count": 114, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 341520, + "componentType": 5126, + "count": 40, + "max": [0.06044044345617294, 0.004563519731163979, 0.002610582858324051], + "min": [0.05924428254365921, 0.00401249248534441, -0.002610582858324051], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 342000, + "componentType": 5126, + "count": 40, + "max": [0.0, 0.9990490674972534, 0.4226062595844269], + "min": [0.0, 0.906313419342041, -0.4226062595844269], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 545040, + "componentType": 5126, + "count": 40, + "max": [0.29307714104652405, 0.3674081563949585], + "min": [0.2690790593624115, 0.36191022396087646], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 545360, + "componentType": 5126, + "count": 40, + "max": [0.29307714104652405, 0.3674081563949585], + "min": [0.2690790593624115, 0.36191022396087646], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 234024, + "componentType": 5125, + "count": 114, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 342480, + "componentType": 5126, + "count": 256, + "max": [ + 0.0018481574952602386, 0.0009389985352754593, 0.0018481574952602386 + ], + "min": [ + -0.0018481574952602386, -0.0008896077051758766, -0.0018481574952602386 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 345552, + "componentType": 5126, + "count": 256, + "max": [1.0, 0.996528148651123, 1.0], + "min": [-1.0, -1.0, -1.0], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 545680, + "componentType": 5126, + "count": 256, + "max": [0.5854395031929016, 0.5833094120025635], + "min": [0.5694469213485718, 0.5678895115852356], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 234480, + "componentType": 5125, + "count": 1332, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 348624, + "componentType": 5126, + "count": 998, + "max": [0.06650000810623169, 0.0052455998957157135, 0.004708603024482727], + "min": [ + -0.0664999932050705, -0.005578718148171902, -0.004967300221323967 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 360600, + "componentType": 5126, + "count": 998, + "max": [0.9977352023124695, 0.98802649974823, 0.9948822259902954], + "min": [-0.9977349042892456, -0.9968603253364563, -0.9949309229850769], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 547728, + "componentType": 5126, + "count": 998, + "max": [0.7083333730697632, 0.5833333730697632], + "min": [0.2916666269302368, 0.16666662693023682], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 239808, + "componentType": 5125, + "count": 4080, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 372576, + "componentType": 5126, + "count": 736, + "max": [0.00912686437368393, 0.0020940317772328854, 0.009059183299541473], + "min": [ + -0.009122472256422043, -0.001908174715936184, -0.009056758135557175 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 381408, + "componentType": 5126, + "count": 736, + "max": [0.9939521551132202, 0.9998176097869873, 0.993920087814331], + "min": [-0.9939521551132202, -1.0, -0.993920087814331], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 555712, + "componentType": 5126, + "count": 736, + "max": [0.17979435622692108, 0.7690768241882324], + "min": [0.05108383670449257, 0.6483345031738281], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 256128, + "componentType": 5125, + "count": 4404, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 390240, + "componentType": 5126, + "count": 1265, + "max": [0.03261723741889, 0.004648247733712196, 0.013763006776571274], + "min": [-0.03261723741889, -0.004648548550903797, -0.014365006238222122], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 405420, + "componentType": 5126, + "count": 1265, + "max": [0.9983537793159485, 0.9978854060173035, 0.9980639219284058], + "min": [-1.0, -0.9992697238922119, -0.9997667670249939], + "type": "VEC3" + }, + { + "bufferView": 3, + "byteOffset": 214752, + "componentType": 5126, + "count": 1265, + "max": [0.9475970268249512, 0.9983395934104919, 0.999273955821991, 1.0], + "min": [ + -0.9960687160491943, -0.999975323677063, -0.9999293088912964, -1.0 + ], + "type": "VEC4" + }, + { + "bufferView": 1, + "byteOffset": 561600, + "componentType": 5126, + "count": 1265, + "max": [0.9067453145980835, 0.49799180030822754], + "min": [0.19788941740989685, 0.0], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 571720, + "componentType": 5126, + "count": 1265, + "max": [0.9067453145980835, 0.49799180030822754], + "min": [0.19788941740989685, 0.0], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 581840, + "componentType": 5126, + "count": 1265, + "max": [0.9067453145980835, 0.49799180030822754], + "min": [0.19788941740989685, 0.0], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 591960, + "componentType": 5126, + "count": 1265, + "max": [0.9067453145980835, 0.49799180030822754], + "min": [0.19788941740989685, 0.0], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 273744, + "componentType": 5125, + "count": 6240, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 420600, + "componentType": 5126, + "count": 188, + "max": [0.016136465594172478, 0.0024298876523971558, 0.01076492853462696], + "min": [ + -0.01613646186888218, -0.0024298876523971558, -0.01076492853462696 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 422856, + "componentType": 5126, + "count": 188, + "max": [0.9898691773414612, 0.9898691773414612, 0.9898691773414612], + "min": [-0.9898691773414612, -0.9898691773414612, -0.9898691773414612], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 602080, + "componentType": 5126, + "count": 188, + "max": [0.8750000596046448, 1.0], + "min": [0.125, 0.0], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 298704, + "componentType": 5125, + "count": 900, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 425112, + "componentType": 5126, + "count": 15123, + "max": [0.06649336218833923, 0.010352063924074173, 0.03592536225914955], + "min": [ + -0.06649336218833923, -0.007067822851240635, -0.03821156546473503 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 606588, + "componentType": 5126, + "count": 15123, + "max": [1.0, 1.0, 1.0], + "min": [-1.0, -1.0, -1.0], + "type": "VEC3" + }, + { + "bufferView": 3, + "byteOffset": 234992, + "componentType": 5126, + "count": 15123, + "max": [0.9927666783332825, 1.0, 1.0, 1.0], + "min": [-0.9999958276748657, -1.0, -1.0, -1.0], + "type": "VEC4" + }, + { + "bufferView": 1, + "byteOffset": 603584, + "componentType": 5126, + "count": 15123, + "max": [0.9108594655990601, 1.0], + "min": [2.6434276989562022e-9, 0.03543156385421753], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 724568, + "componentType": 5126, + "count": 15123, + "max": [0.9108594655990601, 1.0], + "min": [2.6434276989562022e-9, 0.03543156385421753], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 845552, + "componentType": 5126, + "count": 15123, + "max": [0.9108594655990601, 1.0], + "min": [2.6434276989562022e-9, 0.03543156385421753], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 966536, + "componentType": 5126, + "count": 15123, + "max": [0.9944818019866943, 0.999202311038971], + "min": [0.06625834852457047, 0.2420717477798462], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 1087520, + "componentType": 5126, + "count": 15123, + "max": [0.9108594655990601, 1.0], + "min": [2.6434276989562022e-9, 0.03543156385421753], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 302304, + "componentType": 5125, + "count": 69432, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 788064, + "componentType": 5126, + "count": 244, + "max": [0.030747918412089348, 0.009580670855939388, 0.023873966187238693], + "min": [ + -0.030747918412089348, 0.009566948749125004, -0.022242967039346695 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 790992, + "componentType": 5126, + "count": 244, + "max": [0.7057875990867615, 0.9978592991828918, 0.7071068286895752], + "min": [-0.7058875560760498, 0.5761815309524536, -0.7071068286895752], + "type": "VEC3" + }, + { + "bufferView": 3, + "byteOffset": 476960, + "componentType": 5126, + "count": 244, + "max": [1.0, 0.7665534615516663, 0.9628547430038452, 1.0], + "min": [ + -0.9979236721992493, -0.7666947841644287, -0.6258649230003357, -1.0 + ], + "type": "VEC4" + }, + { + "bufferView": 1, + "byteOffset": 1208504, + "componentType": 5126, + "count": 244, + "max": [0.9997649788856506, 0.9989709854125977], + "min": [-0.0009579062461853027, 0.36087095737457275], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 1210456, + "componentType": 5126, + "count": 244, + "max": [0.8007103204727173, 0.4979286193847656], + "min": [-9.704403947097262e-10, 0.004081249237060547], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 1212408, + "componentType": 5126, + "count": 244, + "max": [0.9997649788856506, 0.9989709854125977], + "min": [-0.0009579062461853027, 0.36087095737457275], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 1214360, + "componentType": 5126, + "count": 244, + "max": [0.9997649788856506, 0.9989709854125977], + "min": [-0.0009579062461853027, 0.36087095737457275], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 1216312, + "componentType": 5126, + "count": 244, + "max": [0.9997649788856506, 0.9989709854125977], + "min": [-0.0009579062461853027, 0.36087095737457275], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 1218264, + "componentType": 5126, + "count": 244, + "max": [0.9997649788856506, 0.9989709854125977], + "min": [-0.0009579062461853027, 0.36087095737457275], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 580032, + "componentType": 5125, + "count": 1008, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 793920, + "componentType": 5126, + "count": 256, + "max": [ + 0.003685247153043747, 0.0012006263714283705, 0.003685247153043747 + ], + "min": [ + -0.003685247153043747, -0.0011087663006037474, -0.003685247153043747 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 796992, + "componentType": 5126, + "count": 256, + "max": [1.0, 0.996528148651123, 1.0], + "min": [-1.0, -1.0, -1.0], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 1220216, + "componentType": 5126, + "count": 256, + "max": [0.9079015254974365, 0.7700240612030029], + "min": [0.8520011901855469, 0.7161256074905396], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 584064, + "componentType": 5125, + "count": 1332, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 800064, + "componentType": 5126, + "count": 256, + "max": [ + 0.003685247153043747, 0.0012006270699203014, 0.003685247153043747 + ], + "min": [ + -0.003685247153043747, -0.0011087656021118164, -0.0036852452903985977 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 803136, + "componentType": 5126, + "count": 256, + "max": [1.0, 0.996528148651123, 1.0], + "min": [-1.0, -1.0, -1.0], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 1222264, + "componentType": 5126, + "count": 256, + "max": [0.9649506211280823, 0.7151453495025635], + "min": [0.9090503454208374, 0.6612471342086792], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 589392, + "componentType": 5125, + "count": 1332, + "type": "SCALAR" + } + ], + "asset": { + "extras": { + "author": "solal.sblt (https://sketchfab.com/Solal.Sebillotte)", + "license": "CC-BY-4.0 (http://creativecommons.org/licenses/by/4.0/)", + "source": "https://sketchfab.com/3d-models/nintendo-ds-934fdde060874d5c99b40cdf1dbb37f2", + "title": "Nintendo DS" + }, + "generator": "Sketchfab-16.16.0", + "version": "2.0" + }, + "bufferViews": [ + { + "buffer": 0, + "byteLength": 594720, + "name": "floatBufferViews", + "target": 34963 + }, + { + "buffer": 0, + "byteLength": 1224312, + "byteOffset": 594720, + "byteStride": 8, + "name": "floatBufferViews", + "target": 34962 + }, + { + "buffer": 0, + "byteLength": 806208, + "byteOffset": 1819032, + "byteStride": 12, + "name": "floatBufferViews", + "target": 34962 + }, + { + "buffer": 0, + "byteLength": 480864, + "byteOffset": 2625240, + "byteStride": 16, + "name": "floatBufferViews", + "target": 34962 + } + ], + "buffers": [ + { + "byteLength": 3106104, + "uri": "scene.bin" + } + ], + "extensionsUsed": [ + "KHR_materials_transmission", + "KHR_materials_emissive_strength" + ], + "images": [ + { + "uri": "textures/button_general.001_baseColor.png" + }, + { + "uri": "textures/top.002_baseColor.png" + }, + { + "uri": "textures/top.002_metallicRoughness.png" + }, + { + "uri": "textures/top.002_normal.png" + }, + { + "uri": "textures/screen_up.002_baseColor.png" + }, + { + "uri": "textures/screen_up.002_metallicRoughness.png" + }, + { + "uri": "textures/screen_up.002_normal.png" + }, + { + "uri": "textures/base.002_baseColor.png" + }, + { + "uri": "textures/base.002_metallicRoughness.png" + }, + { + "uri": "textures/base.002_normal.png" + }, + { + "uri": "textures/screen_down.002_baseColor.png" + }, + { + "uri": "textures/screen_down.002_metallicRoughness.png" + }, + { + "uri": "textures/screen_down.002_normal.png" + } + ], + "materials": [ + { + "doubleSided": true, + "name": "button_general.001", + "pbrMetallicRoughness": { + "baseColorTexture": { + "index": 0 + }, + "metallicFactor": 0.0, + "roughnessFactor": 0.75 + } + }, + { + "doubleSided": true, + "name": "top.002", + "normalTexture": { + "index": 3, + "texCoord": 2 + }, + "pbrMetallicRoughness": { + "baseColorTexture": { + "index": 1 + }, + "metallicFactor": 0.245455, + "metallicRoughnessTexture": { + "index": 2, + "texCoord": 1 + } + } + }, + { + "doubleSided": true, + "emissiveFactor": [0.5, 0.5, 0.5], + "emissiveTexture": { + "index": 4 + }, + "name": "screen_up.002", + "normalTexture": { + "index": 6 + }, + "pbrMetallicRoughness": { + "baseColorTexture": { + "index": 4 + }, + "metallicFactor": 0.0, + "metallicRoughnessTexture": { + "index": 5 + } + } + }, + { + "alphaMode": "BLEND", + "doubleSided": true, + "extensions": { + "KHR_materials_transmission": { + "transmissionFactor": 0.99 + } + }, + "name": "neon.001", + "pbrMetallicRoughness": { + "baseColorFactor": [0.8, 0.8, 0.8, 0.25], + "metallicFactor": 0.0, + "roughnessFactor": 0.1 + } + }, + { + "doubleSided": true, + "emissiveFactor": [0.0512686, 1.0, 0.0], + "extensions": { + "KHR_materials_emissive_strength": { + "emissiveStrength": 10.0 + } + }, + "name": "neon_droite.001", + "pbrMetallicRoughness": { + "baseColorFactor": [0.0512699, 1.0, 0.0, 1.0], + "metallicFactor": 0.0, + "roughnessFactor": 0.5 + } + }, + { + "doubleSided": true, + "name": "base.002", + "normalTexture": { + "index": 9 + }, + "pbrMetallicRoughness": { + "baseColorTexture": { + "index": 7 + }, + "metallicFactor": 0.245455, + "metallicRoughnessTexture": { + "index": 8 + } + } + }, + { + "doubleSided": true, + "name": "base.002_0", + "normalTexture": { + "index": 9, + "texCoord": 2 + }, + "pbrMetallicRoughness": { + "baseColorTexture": { + "index": 7 + }, + "metallicFactor": 0.245455, + "metallicRoughnessTexture": { + "index": 8, + "texCoord": 1 + } + } + }, + { + "doubleSided": true, + "emissiveFactor": [0.5, 0.5, 0.5], + "emissiveTexture": { + "index": 10 + }, + "name": "screen_down.002", + "normalTexture": { + "index": 12, + "scale": 0.8 + }, + "pbrMetallicRoughness": { + "baseColorTexture": { + "index": 10 + }, + "metallicFactor": 0.0, + "metallicRoughnessTexture": { + "index": 11 + } + } + } + ], + "meshes": [ + { + "name": "Object_0", + "primitives": [ + { + "attributes": { + "NORMAL": 1, + "POSITION": 0, + "TEXCOORD_0": 2 + }, + "indices": 3, + "material": 0, + "mode": 4 + } + ] + }, + { + "name": "Object_1", + "primitives": [ + { + "attributes": { + "NORMAL": 5, + "POSITION": 4, + "TEXCOORD_0": 6 + }, + "indices": 7, + "material": 0, + "mode": 4 + } + ] + }, + { + "name": "Object_2", + "primitives": [ + { + "attributes": { + "NORMAL": 9, + "POSITION": 8, + "TANGENT": 10, + "TEXCOORD_0": 11, + "TEXCOORD_1": 12, + "TEXCOORD_2": 13, + "TEXCOORD_3": 14, + "TEXCOORD_4": 15 + }, + "indices": 16, + "material": 1, + "mode": 4 + } + ] + }, + { + "name": "Object_3", + "primitives": [ + { + "attributes": { + "NORMAL": 18, + "POSITION": 17, + "TANGENT": 19, + "TEXCOORD_0": 20, + "TEXCOORD_1": 21, + "TEXCOORD_2": 22, + "TEXCOORD_3": 23, + "TEXCOORD_4": 24, + "TEXCOORD_5": 25 + }, + "indices": 26, + "material": 2, + "mode": 4 + } + ] + }, + { + "name": "Object_4", + "primitives": [ + { + "attributes": { + "NORMAL": 28, + "POSITION": 27, + "TEXCOORD_0": 29 + }, + "indices": 30, + "material": 0, + "mode": 4 + } + ] + }, + { + "name": "Object_5", + "primitives": [ + { + "attributes": { + "NORMAL": 32, + "POSITION": 31, + "TANGENT": 33, + "TEXCOORD_0": 34, + "TEXCOORD_1": 35, + "TEXCOORD_2": 36, + "TEXCOORD_3": 37, + "TEXCOORD_4": 38 + }, + "indices": 39, + "material": 1, + "mode": 4 + } + ] + }, + { + "name": "Object_6", + "primitives": [ + { + "attributes": { + "NORMAL": 41, + "POSITION": 40, + "TEXCOORD_0": 42, + "TEXCOORD_1": 43 + }, + "indices": 44, + "material": 3, + "mode": 4 + } + ] + }, + { + "name": "Object_7", + "primitives": [ + { + "attributes": { + "NORMAL": 46, + "POSITION": 45, + "TEXCOORD_0": 47, + "TEXCOORD_1": 48 + }, + "indices": 49, + "material": 4, + "mode": 4 + } + ] + }, + { + "name": "Object_8", + "primitives": [ + { + "attributes": { + "NORMAL": 51, + "POSITION": 50, + "TEXCOORD_0": 52 + }, + "indices": 53, + "material": 0, + "mode": 4 + } + ] + }, + { + "name": "Object_9", + "primitives": [ + { + "attributes": { + "NORMAL": 55, + "POSITION": 54, + "TEXCOORD_0": 56 + }, + "indices": 57, + "material": 0, + "mode": 4 + } + ] + }, + { + "name": "Object_10", + "primitives": [ + { + "attributes": { + "NORMAL": 59, + "POSITION": 58, + "TEXCOORD_0": 60 + }, + "indices": 61, + "material": 0, + "mode": 4 + } + ] + }, + { + "name": "Object_11", + "primitives": [ + { + "attributes": { + "NORMAL": 63, + "POSITION": 62, + "TANGENT": 64, + "TEXCOORD_0": 65, + "TEXCOORD_1": 66, + "TEXCOORD_2": 67, + "TEXCOORD_3": 68 + }, + "indices": 69, + "material": 5, + "mode": 4 + } + ] + }, + { + "name": "Object_12", + "primitives": [ + { + "attributes": { + "NORMAL": 71, + "POSITION": 70, + "TEXCOORD_0": 72 + }, + "indices": 73, + "material": 0, + "mode": 4 + } + ] + }, + { + "name": "Object_13", + "primitives": [ + { + "attributes": { + "NORMAL": 75, + "POSITION": 74, + "TANGENT": 76, + "TEXCOORD_0": 77, + "TEXCOORD_1": 78, + "TEXCOORD_2": 79, + "TEXCOORD_3": 80, + "TEXCOORD_4": 81 + }, + "indices": 82, + "material": 6, + "mode": 4 + } + ] + }, + { + "name": "Object_14", + "primitives": [ + { + "attributes": { + "NORMAL": 84, + "POSITION": 83, + "TANGENT": 85, + "TEXCOORD_0": 86, + "TEXCOORD_1": 87, + "TEXCOORD_2": 88, + "TEXCOORD_3": 89, + "TEXCOORD_4": 90, + "TEXCOORD_5": 91 + }, + "indices": 92, + "material": 7, + "mode": 4 + } + ] + }, + { + "name": "Object_15", + "primitives": [ + { + "attributes": { + "NORMAL": 94, + "POSITION": 93, + "TEXCOORD_0": 95 + }, + "indices": 96, + "material": 0, + "mode": 4 + } + ] + }, + { + "name": "Object_16", + "primitives": [ + { + "attributes": { + "NORMAL": 98, + "POSITION": 97, + "TEXCOORD_0": 99 + }, + "indices": 100, + "material": 0, + "mode": 4 + } + ] + } + ], + "nodes": [ + { + "children": [1], + "matrix": [ + 1.0, 0.0, 0.0, 0.0, 0.0, 2.220446049250313e-16, -1.0, 0.0, 0.0, 1.0, + 2.220446049250313e-16, 0.0, 0.0, 0.0, 0.0, 1.0 + ], + "name": "Sketchfab_model" + }, + { + "children": [2], + "name": "root" + }, + { + "children": [3, 5, 7, 10, 12, 16, 18, 20, 22, 24, 26, 29, 31], + "matrix": [ + 1.0, 0.0, 0.0, 0.0, 0.0, 2.220446049250313e-16, 1.0, 0.0, 0.0, -1.0, + 2.220446049250313e-16, 0.0, 0.0, 0.0, 0.0, 1.0 + ], + "name": "GLTF_SceneRootNode" + }, + { + "children": [4], + "matrix": [ + 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, + 0.04307664930820465, -0.0033270781859755516, 0.025810634717345238, 1.0 + ], + "name": "Y.001_0" + }, + { + "mesh": 0, + "name": "Object_4" + }, + { + "children": [6], + "matrix": [ + 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, + 0.05071074143052101, -0.0033270777203142643, 0.018176544457674026, 1.0 + ], + "name": "X.001_1" + }, + { + "mesh": 1, + "name": "Object_6" + }, + { + "children": [8, 9], + "matrix": [ + 1.0, 0.0, -0.0, 0.0, -0.0, -0.5000000312423103, -0.8660253857466814, + 0.0, 0.0, 0.8660253857466814, -0.5000000312423103, 0.0, 0.0, 0.0, 0.0, + 1.0 + ], + "name": "TOP.001_2" + }, + { + "mesh": 2, + "name": "Object_8" + }, + { + "mesh": 3, + "name": "Object_9" + }, + { + "children": [11], + "matrix": [ + 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, + 0.04126448929309845, -0.0036410638131201267, 0.050385165959596634, 1.0 + ], + "name": "START.001_3" + }, + { + "mesh": 4, + "name": "Object_11" + }, + { + "children": [13, 14, 15], + "matrix": [ + 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, + 0.000169381033629179, 0.0002211146056652069, 1.0 + ], + "name": "SIDES.001_4" + }, + { + "mesh": 5, + "name": "Object_13" + }, + { + "mesh": 6, + "name": "Object_14" + }, + { + "mesh": 7, + "name": "Object_15" + }, + { + "children": [17], + "matrix": [ + 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, + 0.04126448929309845, -0.003641064278781414, 0.058039043098688126, 1.0 + ], + "name": "SELECT.001_5" + }, + { + "mesh": 8, + "name": "Object_17" + }, + { + "children": [19], + "matrix": [ + 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, + -0.012239721603691578, 0.00035046340781264007, 1.0 + ], + "name": "LR.001_6" + }, + { + "mesh": 9, + "name": "Object_19" + }, + { + "children": [21], + "matrix": [ + 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, + -0.050947532057762146, -0.004068218171596527, 0.02888382226228714, 1.0 + ], + "name": "PAD.001_7" + }, + { + "mesh": 10, + "name": "Object_21" + }, + { + "children": [23], + "matrix": [ + 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, + -0.012254326604306698, 0.056136567145586014, 1.0 + ], + "name": "GBACARD.001_8" + }, + { + "mesh": 11, + "name": "Object_23" + }, + { + "children": [25], + "matrix": [ + 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, + -0.00012543333286885172, -0.013035766780376434, 0.00474785640835762, 1.0 + ], + "name": "DSCARD.001_9" + }, + { + "mesh": 12, + "name": "Object_25" + }, + { + "children": [27, 28], + "matrix": [ + 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, + 6.6414886532584205e-6, -0.010716892778873444, 0.033634208142757416, 1.0 + ], + "name": "BASE.001_10" + }, + { + "mesh": 13, + "name": "Object_27" + }, + { + "mesh": 14, + "name": "Object_28" + }, + { + "children": [30], + "matrix": [ + 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, + 0.05071074143052101, -0.0033270774874836206, 0.03346468508243561, 1.0 + ], + "name": "B.001_11" + }, + { + "mesh": 15, + "name": "Object_30" + }, + { + "children": [32], + "matrix": [ + 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, + 0.05834483355283737, -0.0033270781859755516, 0.025810634717345238, 1.0 + ], + "name": "A.001_12" + }, + { + "mesh": 16, + "name": "Object_32" + } + ], + "samplers": [ + { + "magFilter": 9729, + "minFilter": 9987, + "wrapS": 10497, + "wrapT": 10497 + } + ], + "scene": 0, + "scenes": [ + { + "name": "Sketchfab_Scene", + "nodes": [0] + } + ], + "textures": [ + { + "sampler": 0, + "source": 0 + }, + { + "sampler": 0, + "source": 1 + }, + { + "sampler": 0, + "source": 2 + }, + { + "sampler": 0, + "source": 3 + }, + { + "sampler": 0, + "source": 4 + }, + { + "sampler": 0, + "source": 5 + }, + { + "sampler": 0, + "source": 6 + }, + { + "sampler": 0, + "source": 7 + }, + { + "sampler": 0, + "source": 8 + }, + { + "sampler": 0, + "source": 9 + }, + { + "sampler": 0, + "source": 10 + }, + { + "sampler": 0, + "source": 11 + }, + { + "sampler": 0, + "source": 12 + } + ] +} diff --git a/public/nintendo-ds/textures/base.002_baseColor.png b/public/nintendo-ds/textures/base.002_baseColor.png new file mode 100644 index 0000000..15a9ada Binary files /dev/null and b/public/nintendo-ds/textures/base.002_baseColor.png differ diff --git a/public/nintendo-ds/textures/base.002_metallicRoughness.png b/public/nintendo-ds/textures/base.002_metallicRoughness.png new file mode 100644 index 0000000..8f04f9f Binary files /dev/null and b/public/nintendo-ds/textures/base.002_metallicRoughness.png differ diff --git a/public/nintendo-ds/textures/base.002_normal.png b/public/nintendo-ds/textures/base.002_normal.png new file mode 100644 index 0000000..acf7c40 Binary files /dev/null and b/public/nintendo-ds/textures/base.002_normal.png differ diff --git a/public/nintendo-ds/textures/button_general.001_baseColor.png b/public/nintendo-ds/textures/button_general.001_baseColor.png new file mode 100644 index 0000000..e638c5a Binary files /dev/null and b/public/nintendo-ds/textures/button_general.001_baseColor.png differ diff --git a/public/nintendo-ds/textures/screen_down.002_baseColor.png b/public/nintendo-ds/textures/screen_down.002_baseColor.png new file mode 100644 index 0000000..28c494b Binary files /dev/null and b/public/nintendo-ds/textures/screen_down.002_baseColor.png differ diff --git a/public/nintendo-ds/textures/screen_down.002_metallicRoughness.png b/public/nintendo-ds/textures/screen_down.002_metallicRoughness.png new file mode 100644 index 0000000..3aab83c Binary files /dev/null and b/public/nintendo-ds/textures/screen_down.002_metallicRoughness.png differ diff --git a/public/nintendo-ds/textures/screen_down.002_normal.png b/public/nintendo-ds/textures/screen_down.002_normal.png new file mode 100644 index 0000000..afff3ee Binary files /dev/null and b/public/nintendo-ds/textures/screen_down.002_normal.png differ diff --git a/public/nintendo-ds/textures/screen_up.002_baseColor.png b/public/nintendo-ds/textures/screen_up.002_baseColor.png new file mode 100644 index 0000000..2d1f2d1 Binary files /dev/null and b/public/nintendo-ds/textures/screen_up.002_baseColor.png differ diff --git a/public/nintendo-ds/textures/screen_up.002_metallicRoughness.png b/public/nintendo-ds/textures/screen_up.002_metallicRoughness.png new file mode 100644 index 0000000..c112f9c Binary files /dev/null and b/public/nintendo-ds/textures/screen_up.002_metallicRoughness.png differ diff --git a/public/nintendo-ds/textures/screen_up.002_normal.png b/public/nintendo-ds/textures/screen_up.002_normal.png new file mode 100644 index 0000000..a256089 Binary files /dev/null and b/public/nintendo-ds/textures/screen_up.002_normal.png differ diff --git a/public/nintendo-ds/textures/top.002_baseColor.png b/public/nintendo-ds/textures/top.002_baseColor.png new file mode 100644 index 0000000..3bce53e Binary files /dev/null and b/public/nintendo-ds/textures/top.002_baseColor.png differ diff --git a/public/nintendo-ds/textures/top.002_metallicRoughness.png b/public/nintendo-ds/textures/top.002_metallicRoughness.png new file mode 100644 index 0000000..9955471 Binary files /dev/null and b/public/nintendo-ds/textures/top.002_metallicRoughness.png differ diff --git a/public/nintendo-ds/textures/top.002_normal.png b/public/nintendo-ds/textures/top.002_normal.png new file mode 100644 index 0000000..d3610bf Binary files /dev/null and b/public/nintendo-ds/textures/top.002_normal.png differ diff --git a/src/main.ts b/src/main.ts index 9caad1a..92736e4 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,11 +1,13 @@ import "./style.css"; import * as THREE from "three"; +import { GLTFLoader } from "three/addons/loaders/GLTFLoader.js"; import { OrbitControls } from "three/addons/controls/OrbitControls.js"; const scene = new THREE.Scene(); const camera = new THREE.PerspectiveCamera(75, 0, 0.001, 1000); const renderer = new THREE.WebGLRenderer(); +renderer.setClearColor(0xffffff); const controls = new OrbitControls(camera, renderer.domElement); @@ -14,15 +16,30 @@ const handleResize = () => { camera.updateProjectionMatrix(); renderer.setSize(window.innerWidth, window.innerHeight); -} +}; window.addEventListener("resize", handleResize, false); handleResize(); +// load nds model +const loader = new GLTFLoader(); +const nds = await loader.loadAsync("/nintendo-ds/scene.gltf"); +nds.scene.scale.set(50, 50, 50); +scene.add(nds.scene); +// create light +const color = 0xffffff; +const intensity = 3; +const ambient = new THREE.AmbientLight(color, intensity); +scene.add(ambient); + +const directional = new THREE.DirectionalLight(color, intensity); +directional.target = nds.scene; +directional.position.set(0, 100, 0); +scene.add(directional); renderer.setAnimationLoop(() => { controls.update(); - + renderer.render(scene, camera); });