resolves #23 and #26

This commit is contained in:
2025-11-25 09:21:22 +02:00
parent 2f93b11b28
commit 87ab335897
16 changed files with 651 additions and 103 deletions

Before

Width:  |  Height:  |  Size: 730 KiB

After

Width:  |  Height:  |  Size: 730 KiB

Before

Width:  |  Height:  |  Size: 232 KiB

After

Width:  |  Height:  |  Size: 232 KiB

Before

Width:  |  Height:  |  Size: 260 KiB

After

Width:  |  Height:  |  Size: 260 KiB

Before

Width:  |  Height:  |  Size: 253 KiB

After

Width:  |  Height:  |  Size: 253 KiB

Before

Width:  |  Height:  |  Size: 8.9 KiB

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 817 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 812 KiB

Binary file not shown.
+608
View File
@@ -0,0 +1,608 @@
{
"asset":{
"generator":"Khronos glTF Blender I/O v4.4.55",
"version":"2.0"
},
"scene":0,
"scenes":[
{
"name":"Scene",
"nodes":[
0,
1,
2,
3,
4
]
}
],
"nodes":[
{
"mesh":0,
"name":"floor"
},
{
"mesh":1,
"name":"tunnel"
},
{
"mesh":2,
"name":"door"
},
{
"mesh":3,
"name":"surface"
},
{
"mesh":4,
"name":"wall"
}
],
"materials":[
{
"doubleSided":true,
"name":"floor",
"normalTexture":{
"index":0
},
"pbrMetallicRoughness":{
"baseColorTexture":{
"index":1
},
"metallicFactor":0,
"roughnessFactor":0.5
}
},
{
"doubleSided":true,
"name":"grass",
"normalTexture":{
"index":2
},
"pbrMetallicRoughness":{
"baseColorTexture":{
"index":3
},
"metallicFactor":0,
"roughnessFactor":0.5
}
},
{
"alphaMode":"BLEND",
"doubleSided":true,
"name":"arrow",
"pbrMetallicRoughness":{
"baseColorTexture":{
"index":4
},
"metallicFactor":0,
"roughnessFactor":0.5
}
}
],
"meshes":[
{
"name":"Plane.003",
"primitives":[
{
"attributes":{
"POSITION":0,
"NORMAL":1,
"TEXCOORD_0":2
},
"indices":3,
"material":0
}
]
},
{
"name":"Sphere.001",
"primitives":[
{
"attributes":{
"POSITION":4,
"NORMAL":5,
"TEXCOORD_0":6
},
"indices":7,
"material":1
},
{
"attributes":{
"POSITION":8,
"NORMAL":9,
"TEXCOORD_0":10
},
"indices":3,
"material":2
},
{
"attributes":{
"POSITION":11,
"NORMAL":12,
"TEXCOORD_0":13
},
"indices":14,
"material":0
}
]
},
{
"name":"Sphere.002",
"primitives":[
{
"attributes":{
"POSITION":15,
"NORMAL":16,
"TEXCOORD_0":17
},
"indices":3,
"material":2
}
]
},
{
"name":"Plane.002",
"primitives":[
{
"attributes":{
"POSITION":18,
"NORMAL":19,
"TEXCOORD_0":20
},
"indices":3,
"material":1
}
]
},
{
"name":"Plane.019",
"primitives":[
{
"attributes":{
"POSITION":21,
"NORMAL":22,
"TEXCOORD_0":23
},
"indices":24,
"material":1
}
]
}
],
"textures":[
{
"sampler":0,
"source":0
},
{
"sampler":0,
"source":1
},
{
"sampler":0,
"source":2
},
{
"sampler":0,
"source":3
},
{
"sampler":0,
"source":4
}
],
"images":[
{
"mimeType":"image/jpeg",
"name":"paving-n",
"uri":"paving-n.jpg"
},
{
"mimeType":"image/jpeg",
"name":"paving-d",
"uri":"paving-d.jpg"
},
{
"mimeType":"image/jpeg",
"name":"grass-n",
"uri":"grass-n.jpg"
},
{
"mimeType":"image/jpeg",
"name":"grass-d",
"uri":"grass-d.jpg"
},
{
"mimeType":"image/png",
"name":"arrow",
"uri":"arrow.png"
}
],
"accessors":[
{
"bufferView":0,
"componentType":5126,
"count":4,
"max":[
0.6000000238418579,
0,
0.6000000238418579
],
"min":[
-0.6000000238418579,
0,
-0.6000000238418579
],
"type":"VEC3"
},
{
"bufferView":1,
"componentType":5126,
"count":4,
"type":"VEC3"
},
{
"bufferView":2,
"componentType":5126,
"count":4,
"type":"VEC2"
},
{
"bufferView":3,
"componentType":5123,
"count":6,
"type":"SCALAR"
},
{
"bufferView":4,
"componentType":5126,
"count":24,
"max":[
0.8999999761581421,
0.45000001788139343,
1.2000000476837158
],
"min":[
-0.9000000953674316,
0,
5.960464477539063e-08
],
"type":"VEC3"
},
{
"bufferView":5,
"componentType":5126,
"count":24,
"type":"VEC3"
},
{
"bufferView":6,
"componentType":5126,
"count":24,
"type":"VEC2"
},
{
"bufferView":7,
"componentType":5123,
"count":36,
"type":"SCALAR"
},
{
"bufferView":8,
"componentType":5126,
"count":4,
"max":[
0.12514901161193848,
0.014072217047214508,
0.7251490354537964
],
"min":[
-0.12514901161193848,
0.014072217047214508,
0.47485098242759705
],
"type":"VEC3"
},
{
"bufferView":9,
"componentType":5126,
"count":4,
"type":"VEC3"
},
{
"bufferView":10,
"componentType":5126,
"count":4,
"type":"VEC2"
},
{
"bufferView":11,
"componentType":5126,
"count":5,
"max":[
0.6000000238418579,
0,
1.2000000476837158
],
"min":[
-0.6000000238418579,
0,
-5.960464477539063e-08
],
"type":"VEC3"
},
{
"bufferView":12,
"componentType":5126,
"count":5,
"type":"VEC3"
},
{
"bufferView":13,
"componentType":5126,
"count":5,
"type":"VEC2"
},
{
"bufferView":14,
"componentType":5123,
"count":9,
"type":"SCALAR"
},
{
"bufferView":15,
"componentType":5126,
"count":4,
"max":[
0.12281588464975357,
0.02271566540002823,
0.12903428077697754
],
"min":[
-0.12748214602470398,
0.02271566540002823,
-0.1212637722492218
],
"type":"VEC3"
},
{
"bufferView":16,
"componentType":5126,
"count":4,
"type":"VEC3"
},
{
"bufferView":17,
"componentType":5126,
"count":4,
"type":"VEC2"
},
{
"bufferView":18,
"componentType":5126,
"count":4,
"max":[
0.6000000238418579,
-0.009999999776482582,
0.6000000238418579
],
"min":[
-0.6000000238418579,
-0.009999999776482582,
-0.6000000238418579
],
"type":"VEC3"
},
{
"bufferView":19,
"componentType":5126,
"count":4,
"type":"VEC3"
},
{
"bufferView":20,
"componentType":5126,
"count":4,
"type":"VEC2"
},
{
"bufferView":21,
"componentType":5126,
"count":18,
"max":[
0.8999999165534973,
0.44999998807907104,
0.30000007152557373
],
"min":[
-0.8999999165534973,
0,
-1.043081283569336e-07
],
"type":"VEC3"
},
{
"bufferView":22,
"componentType":5126,
"count":18,
"type":"VEC3"
},
{
"bufferView":23,
"componentType":5126,
"count":18,
"type":"VEC2"
},
{
"bufferView":24,
"componentType":5123,
"count":30,
"type":"SCALAR"
}
],
"bufferViews":[
{
"buffer":0,
"byteLength":48,
"byteOffset":0,
"target":34962
},
{
"buffer":0,
"byteLength":48,
"byteOffset":48,
"target":34962
},
{
"buffer":0,
"byteLength":32,
"byteOffset":96,
"target":34962
},
{
"buffer":0,
"byteLength":12,
"byteOffset":128,
"target":34963
},
{
"buffer":0,
"byteLength":288,
"byteOffset":140,
"target":34962
},
{
"buffer":0,
"byteLength":288,
"byteOffset":428,
"target":34962
},
{
"buffer":0,
"byteLength":192,
"byteOffset":716,
"target":34962
},
{
"buffer":0,
"byteLength":72,
"byteOffset":908,
"target":34963
},
{
"buffer":0,
"byteLength":48,
"byteOffset":980,
"target":34962
},
{
"buffer":0,
"byteLength":48,
"byteOffset":1028,
"target":34962
},
{
"buffer":0,
"byteLength":32,
"byteOffset":1076,
"target":34962
},
{
"buffer":0,
"byteLength":60,
"byteOffset":1108,
"target":34962
},
{
"buffer":0,
"byteLength":60,
"byteOffset":1168,
"target":34962
},
{
"buffer":0,
"byteLength":40,
"byteOffset":1228,
"target":34962
},
{
"buffer":0,
"byteLength":18,
"byteOffset":1268,
"target":34963
},
{
"buffer":0,
"byteLength":48,
"byteOffset":1288,
"target":34962
},
{
"buffer":0,
"byteLength":48,
"byteOffset":1336,
"target":34962
},
{
"buffer":0,
"byteLength":32,
"byteOffset":1384,
"target":34962
},
{
"buffer":0,
"byteLength":48,
"byteOffset":1416,
"target":34962
},
{
"buffer":0,
"byteLength":48,
"byteOffset":1464,
"target":34962
},
{
"buffer":0,
"byteLength":32,
"byteOffset":1512,
"target":34962
},
{
"buffer":0,
"byteLength":216,
"byteOffset":1544,
"target":34962
},
{
"buffer":0,
"byteLength":216,
"byteOffset":1760,
"target":34962
},
{
"buffer":0,
"byteLength":144,
"byteOffset":1976,
"target":34962
},
{
"buffer":0,
"byteLength":60,
"byteOffset":2120,
"target":34963
}
],
"samplers":[
{
"magFilter":9729,
"minFilter":9987
}
],
"buffers":[
{
"byteLength":2180,
"uri":"quiz-s2.bin"
}
]
}
@@ -19,8 +19,7 @@
1,
2,
3,
4,
5
4
]
}
],
@@ -39,20 +38,11 @@
},
{
"mesh":3,
"name":"old-floor"
"name":"surface"
},
{
"mesh":4,
"name":"wall"
},
{
"mesh":5,
"name":"tunnel.001",
"translation":[
0,
0,
0.6000000238418579
]
}
],
"materials":[
@@ -105,6 +95,10 @@
{
"doubleSided":true,
"name":"Material.001",
"normalTexture":{
"index":5,
"scale":0.10000000149011612
},
"pbrMetallicRoughness":{
"baseColorFactor":[
0.800000011920929,
@@ -112,8 +106,8 @@
0.800000011920929,
1
],
"metallicFactor":0.9378530979156494,
"roughnessFactor":0.02542373538017273
"metallicFactor":0.9283594489097595,
"roughnessFactor":0
}
}
],
@@ -196,20 +190,6 @@
"material":1
}
]
},
{
"name":"Plane.001",
"primitives":[
{
"attributes":{
"POSITION":23,
"NORMAL":24,
"TEXCOORD_0":25
},
"indices":26,
"material":1
}
]
}
],
"textures":[
@@ -240,6 +220,10 @@
{
"sampler":0,
"source":4
},
{
"sampler":0,
"source":5
}
],
"images":[
@@ -267,6 +251,11 @@
"mimeType":"image/png",
"name":"arrow",
"uri":"arrow.png"
},
{
"mimeType":"image/jpeg",
"name":"waternormals",
"uri":"waternormals.jpg"
}
],
"accessors":[
@@ -403,10 +392,10 @@
{
"bufferView":15,
"componentType":5126,
"count":24,
"count":4,
"max":[
0.6000000238418579,
0.10999999940395355,
0.07000000029802322,
0.6000000238418579
],
"min":[
@@ -419,19 +408,19 @@
{
"bufferView":16,
"componentType":5126,
"count":24,
"count":4,
"type":"VEC3"
},
{
"bufferView":17,
"componentType":5126,
"count":24,
"count":4,
"type":"VEC2"
},
{
"bufferView":18,
"componentType":5123,
"count":36,
"count":6,
"type":"SCALAR"
},
{
@@ -467,40 +456,6 @@
"componentType":5123,
"count":54,
"type":"SCALAR"
},
{
"bufferView":23,
"componentType":5126,
"count":12,
"max":[
0.6000000834465027,
0.8000000715255737,
0.600000262260437
],
"min":[
-0.6000000834465027,
0,
-0.6000001430511475
],
"type":"VEC3"
},
{
"bufferView":24,
"componentType":5126,
"count":12,
"type":"VEC3"
},
{
"bufferView":25,
"componentType":5126,
"count":12,
"type":"VEC2"
},
{
"bufferView":26,
"componentType":5123,
"count":18,
"type":"SCALAR"
}
],
"bufferViews":[
@@ -596,74 +551,50 @@
},
{
"buffer":0,
"byteLength":288,
"byteLength":48,
"byteOffset":23304,
"target":34962
},
{
"buffer":0,
"byteLength":288,
"byteOffset":23592,
"byteLength":48,
"byteOffset":23352,
"target":34962
},
{
"buffer":0,
"byteLength":192,
"byteOffset":23880,
"byteLength":32,
"byteOffset":23400,
"target":34962
},
{
"buffer":0,
"byteLength":72,
"byteOffset":24072,
"byteLength":12,
"byteOffset":23432,
"target":34963
},
{
"buffer":0,
"byteLength":432,
"byteOffset":24144,
"byteOffset":23444,
"target":34962
},
{
"buffer":0,
"byteLength":432,
"byteOffset":24576,
"byteOffset":23876,
"target":34962
},
{
"buffer":0,
"byteLength":288,
"byteOffset":25008,
"byteOffset":24308,
"target":34962
},
{
"buffer":0,
"byteLength":108,
"byteOffset":25296,
"target":34963
},
{
"buffer":0,
"byteLength":144,
"byteOffset":25404,
"target":34962
},
{
"buffer":0,
"byteLength":144,
"byteOffset":25548,
"target":34962
},
{
"buffer":0,
"byteLength":96,
"byteOffset":25692,
"target":34962
},
{
"buffer":0,
"byteLength":36,
"byteOffset":25788,
"byteOffset":24596,
"target":34963
}
],
@@ -675,7 +606,7 @@
],
"buffers":[
{
"byteLength":25824,
"byteLength":24704,
"uri":"quiz.bin"
}
]
Binary file not shown.

After

Width:  |  Height:  |  Size: 397 KiB

@@ -39,11 +39,20 @@
<v-checkbox v-model="modelValue.shuffle" hide-details label="Shuffle questions"></v-checkbox>
<v-number-input density="compact" label="Correct answer points" v-model="modelValue.questionPoints"></v-number-input>
<v-number-input density="compact" label="Wrong answer penalty points" v-model="modelValue.questionPenalty"></v-number-input>
<v-select v-model="modelValue.style" :items="styles" density="compact" label="VIsual style"></v-select>
</template>
<script>
export default {
props:['modelValue'],
data(){
return {
styles:[
{ title: 'Lake reeds', value: 'quiz.gltf' },
{ title: 'Grass and pavement pathway', value: 'quiz-s2.gltf' }
]
}
},
mounted(){
this.modelValue.questions ??= [];
this.modelValue.questionPoints ??= 10;