File tree Expand file tree Collapse file tree 14 files changed +563
-0
lines changed Expand file tree Collapse file tree 14 files changed +563
-0
lines changed Original file line number Diff line number Diff line change 1+ path_settings {
2+ path: "**"
3+ profile: "Default"
4+ }
5+ profiles {
6+ name: "Default"
7+ platforms {
8+ os: OS_ID_GENERIC
9+ formats {
10+ format: TEXTURE_FORMAT_RGBA
11+ compression_level: BEST
12+ compression_type: COMPRESSION_TYPE_DEFAULT
13+ }
14+ mipmaps: false
15+ max_texture_size: 0
16+ premultiply_alpha: true
17+ }
18+ }
Original file line number Diff line number Diff line change 1+ #version 140
2+
3+ // Inputs should match the vertex shader's outputs.
4+ in vec2 var_texcoord0;
5+
6+ // The texture to sample.
7+ uniform lowp sampler2D texture0;
8+
9+ // The final color of the fragment.
10+ out lowp vec4 final_color;
11+
12+ uniform fs_uniforms
13+ {
14+ mediump vec4 tint;
15+ };
16+
17+ void main()
18+ {
19+ // Pre-multiply alpha since all runtime textures already are
20+ vec4 tint_pm = vec4 (tint.xyz * tint.w, tint.w);
21+
22+ // Sample the texture at the fragment's texture coordinates.
23+ vec4 color = texture(texture0, var_texcoord0.xy) * tint_pm;
24+
25+ // Output the sampled color.
26+ final_color = color;
27+ }
Original file line number Diff line number Diff line change 1+ name: "unlit"
2+ tags: "model"
3+ vertex_program: "/assets/materials/unlit.vp"
4+ fragment_program: "/assets/materials/unlit.fp"
5+ vertex_space: VERTEX_SPACE_LOCAL
6+ vertex_constants {
7+ name: "mtx_view"
8+ type: CONSTANT_TYPE_VIEW
9+ }
10+ vertex_constants {
11+ name: "mtx_proj"
12+ type: CONSTANT_TYPE_PROJECTION
13+ }
14+ fragment_constants {
15+ name: "tint"
16+ type: CONSTANT_TYPE_USER
17+ value {
18+ x: 1.0
19+ y: 1.0
20+ z: 1.0
21+ w: 1.0
22+ }
23+ }
24+ samplers {
25+ name: "texture0"
26+ wrap_u: WRAP_MODE_CLAMP_TO_EDGE
27+ wrap_v: WRAP_MODE_CLAMP_TO_EDGE
28+ filter_min: FILTER_MODE_MIN_LINEAR
29+ filter_mag: FILTER_MODE_MAG_LINEAR
30+ max_anisotropy: 0.0
31+ }
Original file line number Diff line number Diff line change 1+ #version 140
2+
3+ // The model's vertex position and texture coordinates.
4+ in vec4 position;
5+ in vec2 texcoord0;
6+
7+ // The model's world matrix.
8+ in mat4 mtx_world;
9+
10+ // The projection and view matrices.
11+ uniform general_vp
12+ {
13+ mat4 mtx_view;
14+ mat4 mtx_proj;
15+ };
16+
17+ // The output of a vertex shader are passed to the fragment shader.
18+ // The texture coordinates of the vertex.
19+ out vec2 var_texcoord0;
20+
21+ void main()
22+ {
23+ // Pass the texture coordinates to the fragment shader.
24+ var_texcoord0 = texcoord0;
25+
26+ // Transform the vertex position to clip space.
27+ gl_Position = mtx_proj * mtx_view * mtx_world * vec4(position.xyz, 1.0);
28+ }
Original file line number Diff line number Diff line change 1+
2+
3+ Prototype Kit (1.0)
4+
5+ Created/distributed by Kenney (www.kenney.nl)
6+ Creation date: 28-08-2024 09:59
7+
8+ ------------------------------
9+
10+ License: (Creative Commons Zero, CC0)
11+ http://creativecommons.org/publicdomain/zero/1.0/
12+
13+ You can use this content for personal, educational, and commercial purposes.
14+
15+ Support by crediting 'Kenney' or 'www.kenney.nl' (this is not a requirement)
16+
17+ ------------------------------
18+
19+ • Website : www.kenney.nl
20+ • Donate : www.kenney.nl/donate
21+
22+ • Patreon : patreon.com/kenney
23+
24+ Follow on social media for updates:
25+
26+ • Twitter: twitter.com/KenneyNL
27+ • Instagram: instagram.com/kenney_nl
28+ • Mastodon: mastodon.gamedev.place/@kenney
Original file line number Diff line number Diff line change 1+ ---
2+ tags : model
3+ title : AABB
4+ brief : This example demonstrates how to use the `model.get_aabb()` function in a 3D scene.
5+ scripts : aabb.script
6+ author : Artsiom Trubchyk
7+ ---
8+
9+ This example shows how to work with Axis-Aligned Bounding Boxes (AABB) in a 3D scene. The setup consists of falling cubes that are dynamically tracked by a camera using their combined bounding box. The example demonstrates:
10+
11+ * How to create and manage a dynamic bounding box that updates with moving objects
12+ * Using ` model.get_aabb() ` to get object bounds
13+ * Camera positioning based on bounding box size
14+ * Dynamic object spawning with factory
15+ * Smooth camera transitions
16+
17+ Press SPACE or click to spawn new cubes. The camera will automatically adjust to keep all objects in view based on their combined bounding box.
18+
19+ The models used in this example are from Kenney's [ Prototype Kit] ( https://kenney.nl/assets/prototype-kit ) , licensed under CC0.
Original file line number Diff line number Diff line change 1+ name: "gltf"
2+ scale_along_z: 1
3+ embedded_instances {
4+ id: "camera"
5+ data: "embedded_components {\n"
6+ " id: \"camera\"\n"
7+ " type: \"camera\"\n"
8+ " data: \"aspect_ratio: 1.0\\n"
9+ "fov: 0.7854\\n"
10+ "near_z: 0.1\\n"
11+ "far_z: 1000.0\\n"
12+ "auto_aspect_ratio: 1\\n"
13+ "\"\n"
14+ "}\n"
15+ ""
16+ position {
17+ x: 1.6733184
18+ y: 0.87541014
19+ z: -2.2133834
20+ }
21+ rotation {
22+ x: -0.041512698
23+ y: 0.93996596
24+ z: 0.12374887
25+ w: 0.31532025
26+ }
27+ }
28+ embedded_instances {
29+ id: "main"
30+ data: "components {\n"
31+ " id: \"aabb\"\n"
32+ " component: \"/example/aabb.script\"\n"
33+ "}\n"
34+ "embedded_components {\n"
35+ " id: \"factory_box1\"\n"
36+ " type: \"factory\"\n"
37+ " data: \"prototype: \\\"/example/box1.go\\\"\\n"
38+ "\"\n"
39+ "}\n"
40+ "embedded_components {\n"
41+ " id: \"factory_box2\"\n"
42+ " type: \"factory\"\n"
43+ " data: \"prototype: \\\"/example/box2.go\\\"\\n"
44+ "\"\n"
45+ "}\n"
46+ ""
47+ }
48+ embedded_instances {
49+ id: "ground"
50+ data: "embedded_components {\n"
51+ " id: \"sprite\"\n"
52+ " type: \"sprite\"\n"
53+ " data: \"default_animation: \\\"anim\\\"\\n"
54+ "material: \\\"/builtins/materials/sprite.material\\\"\\n"
55+ "size {\\n"
56+ " x: 40.0\\n"
57+ " y: 40.0\\n"
58+ "}\\n"
59+ "size_mode: SIZE_MODE_MANUAL\\n"
60+ "textures {\\n"
61+ " sampler: \\\"texture_sampler\\\"\\n"
62+ " texture: \\\"/builtins/graphics/particle_blob.tilesource\\\"\\n"
63+ "}\\n"
64+ "\"\n"
65+ " rotation {\n"
66+ " x: 0.70710677\n"
67+ " w: 0.70710677\n"
68+ " }\n"
69+ "}\n"
70+ "embedded_components {\n"
71+ " id: \"collisionobject\"\n"
72+ " type: \"collisionobject\"\n"
73+ " data: \"type: COLLISION_OBJECT_TYPE_STATIC\\n"
74+ "mass: 0.0\\n"
75+ "friction: 0.8\\n"
76+ "restitution: 0.2\\n"
77+ "group: \\\"default\\\"\\n"
78+ "mask: \\\"default\\\"\\n"
79+ "embedded_collision_shape {\\n"
80+ " shapes {\\n"
81+ " shape_type: TYPE_BOX\\n"
82+ " position {\\n"
83+ " y: -0.25\\n"
84+ " }\\n"
85+ " rotation {\\n"
86+ " }\\n"
87+ " index: 0\\n"
88+ " count: 3\\n"
89+ " }\\n"
90+ " data: 50.0\\n"
91+ " data: 0.25\\n"
92+ " data: 50.0\\n"
93+ "}\\n"
94+ "\"\n"
95+ "}\n"
96+ ""
97+ }
You can’t perform that action at this time.
0 commit comments