opengl: Revamp multi-texturing.

This commit is contained in:
Rod Kay
2025-10-05 16:22:49 +11:00
parent 8a2a562a8b
commit 3e11a52f5d
48 changed files with 226 additions and 188 deletions

View File

@@ -35,7 +35,7 @@ is
the_human_graphics_Model : constant openGL.Model.any.view
:= openGL.Model.any.new_Model (Model => openGL.to_Asset ("./assets/opengl/model/human.obj"),
Texture => openGL.to_Asset ("./assets/opengl/texture/wooden-crate.jpg"),
texture_Details => openGL.texture_Set.to_Details ([1 => openGL.to_Asset ("./assets/opengl/texture/wooden-crate.jpg")]),
texture_Details => openGL.texture_Set.to_Set ([1 => openGL.to_Asset ("./assets/opengl/texture/wooden-crate.jpg")]),
Texture_is_lucid => False);
the_human_physics_Model : constant physics.Model.view
@@ -54,7 +54,7 @@ is
the_cobra_graphics_Model : aliased constant openGL.Model.any.view
:= openGL.Model.any.new_Model (Model => openGL.to_Asset ("./assets/oolite_cobra3.obj"),
Texture => openGL.to_Asset ("./assets/oolite_cobra3_diffuse.png"),
texture_Details => openGL.texture_Set.to_Details ([1 => openGL.to_Asset ("./assets/oolite_cobra3_diffuse.png")]),
texture_Details => openGL.texture_Set.to_Set ([1 => openGL.to_Asset ("./assets/oolite_cobra3_diffuse.png")]),
Texture_is_lucid => False);
the_cobra_physics_Model : constant physics.Model.view

View File

@@ -47,7 +47,7 @@ is
Model => openGL.to_Asset ("./box_1_bone.dae"),
-- Model => openGL.to_Asset ("./box_2_bone.dae"),
Texture => openGL.null_Asset,
texture_Details => openGL.texture_Set.to_Details ([1 => openGL.to_Asset ("./assets/opengl/textures/wooden-crate.jpg")]),
texture_Details => openGL.texture_Set.to_Set ([1 => openGL.to_Asset ("./assets/opengl/textures/wooden-crate.jpg")]),
Texture_is_lucid => False);
the_Rig : aliased gel.Rig.item;

View File

@@ -97,7 +97,7 @@ is
Col => 1,
Heights => openGL.Model.terrain.height_Map_view (gl_Heights),
color_Map => terrain_Texture,
texture_Details => texture_Set.to_Details ([1 => terrain_Texture]),
texture_Details => texture_Set.to_Set ([1 => terrain_Texture]),
Tiling => (s => (0.0, 1.0),
t => (0.0, 1.0)));
@@ -170,7 +170,7 @@ begin
the_ball_Model : constant openGL.Model.sphere.lit_colored_textured.view
:= openGL.Model.sphere.lit_colored_textured.new_Sphere (Radius => 1.0,
Image => openGL.to_Asset ("assets/gel/golf_green-16x16.tga"),
texture_Details => texture_Set.to_Details ([1 => openGL.to_Asset ("assets/gel/Face1.bmp")]));
texture_Details => texture_Set.to_Set ([1 => openGL.to_Asset ("assets/gel/Face1.bmp")]));
the_Ball : constant gel.Sprite.view
:= gel.Sprite.forge.new_Sprite (Name => "demo.Ball",
World => the_Applet.gui_World.all'Access,
@@ -182,7 +182,7 @@ begin
the_cone_Model : constant openGL.Model.any.view
:= openGL.Model.any.new_Model (Model => openGL.to_Asset ("assets/gel/model/unit_cone.obj"),
Texture => openGL.to_Asset ("assets/gel/Face1.bmp"),
texture_Details => texture_Set.to_Details ([1 => openGL.to_Asset ("assets/gel/Face1.bmp")]),
texture_Details => texture_Set.to_Set ([1 => openGL.to_Asset ("assets/gel/Face1.bmp")]),
Texture_is_lucid => False);
the_cone_physics_Model : constant physics.Model.view
@@ -198,7 +198,7 @@ begin
the_cylinder_Model : constant openGL.Model.any.view
:= openGL.Model.any.new_Model (Model => openGL.to_Asset ("assets/gel/model/unit_cylinder.obj"),
Texture => openGL.to_Asset ("assets/gel/Face1.bmp"),
texture_Details => texture_Set.to_Details ([1 => openGL.to_Asset ("assets/gel/Face1.bmp")]),
texture_Details => texture_Set.to_Set ([1 => openGL.to_Asset ("assets/gel/Face1.bmp")]),
Texture_is_lucid => False);
the_cylinder_physics_Model : constant physics.Model.view
@@ -216,7 +216,7 @@ begin
the_capsule_Model : constant openGL.Model.capsule.textured.view
:= openGL.Model.capsule.textured.new_Capsule (Radius => 0.5,
Height => 2.0,
texture_Details => texture_Set.to_Details ([1 => openGL.to_Asset ("assets/gel/Face1.bmp")]),
texture_Details => texture_Set.to_Set ([1 => openGL.to_Asset ("assets/gel/Face1.bmp")]),
Image => openGL.to_Asset ("assets/gel/Face1.bmp"));

View File

@@ -154,7 +154,7 @@ is
then
the_graphics_Model := openGL.Model.sphere.lit_colored_textured.new_Sphere (Radius,
Color => Color,
texture_Details => openGL.texture_Set.to_Details ([1 => Texture]),
texture_Details => openGL.texture_Set.to_Set ([1 => Texture]),
Image => Texture).all'Access;
else
the_graphics_Model := openGL.Model.circle.colored.new_circle (Radius,
@@ -164,13 +164,7 @@ is
else
the_graphics_Model := openGL.Model.circle.lit_textured.new_Circle (Radius,
texture_Details => (Fades => [1 => 0.0, others => <>],
texture_Applies => [1 => True, others => <>],
Textures => [1 => Texture, others => <>],
Objects => [others => <>],
texture_Count => 1,
texture_Tilings => [others => (S => 1.0, T => 1.0)],
Animation => null)).all'Access;
texture_Details => openGL.texture_Set.to_Set ([1 => Texture])).all'Access;
end if;
return gel.Sprite.Forge.new_Sprite (Name,
@@ -221,13 +215,16 @@ is
(Color, openGL.Opaque)).all'Access;
else
the_graphics_Model := openGL.Model.polygon.lit_textured.new_Polygon (vertex_Sites => openGL.Vector_2_array (Vertices),
texture_Details => (Fades => [1 => 0.0, others => <>],
Textures => [1 => Texture, others => <>],
Objects => [others => <>],
texture_Count => 1,
texture_Tilings => texture_Tiling,
texture_Applies => [others => True],
Animation => null)).all'Access;
texture_Details => openGL.texture_Set.to_Set (texture_Assets => [1 => Texture],
texture_Tilings => texture_Tiling,
Animation => null)).all'Access;
-- texture_Details => (Fades => [1 => 0.0, others => <>],
-- Textures => [1 => Texture, others => <>],
-- Objects => [others => <>],
-- texture_Count => 1,
-- texture_Tilings => texture_Tiling,
-- texture_Applies => [others => True],
-- Animation => null)).all'Access;
end if;
return gel.Sprite.Forge.new_Sprite (Name,
@@ -318,7 +315,7 @@ is
the_graphics_Model := openGL.Model.sphere.lit_colored_textured.new_Sphere (Radius,
lat_Count => lat_Count,
long_Count => long_Count,
texture_Details => openGL.texture_Set.to_Details ([1 => Texture]),
texture_Details => openGL.texture_Set.to_Set ([1 => Texture]),
Image => Texture).all'Access;
else
the_graphics_Model := openGL.Model.sphere.lit_colored.new_Sphere (Radius,
@@ -337,7 +334,7 @@ is
the_graphics_Model := openGL.Model.sphere.textured.new_Sphere (Radius,
lat_Count => lat_Count,
long_Count => long_Count,
texture_Details => openGL.texture_Set.to_Details ([1 => Texture]),
texture_Details => openGL.texture_Set.to_Set ([1 => Texture]),
Image => Texture).all'Access;
end if;
end if;
@@ -371,7 +368,7 @@ is
begin
the_graphics_Model := openGL.Model.sphere.textured.new_Sphere (Radius,
lat_Count => 180,
texture_Details => openGL.texture_Set.to_Details ([1 => Texture]),
texture_Details => openGL.texture_Set.to_Set ([1 => Texture]),
Image => Texture,
is_Skysphere => True).all'Access;
return gel.Sprite.Forge.new_Sprite ("skysphere_Sprite",
@@ -449,7 +446,7 @@ is
Lower => (texture_Name => Texture),
Left => (texture_Name => Texture),
Right => (texture_Name => Texture)],
texture_Details => openGL.texture_Set.to_Details ([1 => Texture]));
texture_Details => openGL.texture_Set.to_Set ([1 => Texture]));
the_box_physics_Model : constant physics.Model.view
:= physics.Model.Forge.new_physics_Model (shape_Info => (Kind => physics.Model.Cube,
half_Extents => Size / 2.0),
@@ -486,7 +483,7 @@ is
Height => Size (2)),
Plane => openGL.Model.Billboard.xy,
Texture => Texture,
texture_Details => openGL.texture_Set.to_Details ([1 => Texture]));
texture_Details => openGL.texture_Set.to_Set ([1 => Texture]));
the_billboard_physics_Model : constant physics.Model.view
:= physics.Model.Forge.new_physics_Model (shape_Info => (Kind => physics.Model.Cube,
@@ -527,7 +524,7 @@ is
Plane => openGL.Model.Billboard.xy,
Texture => Texture,
Color => Color,
texture_Details => openGL.texture_Set.to_Details ([1 => Texture]));
texture_Details => openGL.texture_Set.to_Set ([1 => Texture]));
the_billboard_physics_Model : constant physics.Model.view
:= physics.Model.Forge.new_physics_Model (shape_Info => (Kind => physics.Model.Cube,
half_Extents => Size / 2.0),
@@ -690,7 +687,7 @@ is
:= openGL.Model.Text.lit_colored.new_Text (Text => Text,
Font => Font,
Color => (Color, openGL.Opaque),
texture_Details => openGL.texture_Set.to_Details ([1 => the_Texture]),
texture_Details => openGL.texture_Set.to_Set ([1 => the_Texture]),
Centered => True);
the_physics_Model : physics.Model.view;

View File

@@ -479,7 +479,7 @@ is
Model => openGL.to_Asset ("assets/gel/collada/mh-human-dae.dae"),
-- model => gel.to_Asset ("assets/gel/collada/alfieri.dae"),
Texture => openGL.null_Asset, -- gel.to_Asset ("assets/collada/gel-human-texture.tga"),
texture_Details => openGL.texture_Set.to_Details ([1 => openGL.to_Asset ("./assets/gel/Face1.bmp")]),
texture_Details => openGL.texture_Set.to_Set ([1 => openGL.to_Asset ("./assets/gel/Face1.bmp")]),
Texture_is_lucid => False);
begin
Self.bone_Sprites (the_Bone) := gel.Sprite.forge.new_Sprite (Name => sprite_Name,

View File

@@ -705,7 +705,7 @@ is
the_human_graphics_Model : aliased openGL.Model.any.view
:= openGL.Model.any.new_Model (Model => to_Asset (model_Name.all),
Texture => openGL.null_Asset, -- gel.to_Asset ("assets/collada/gel-human-texture.tga"),
texture_Details => openGL.texture_Set.to_Details ([1 => openGL.to_Asset ("./assets/opengl/texture/wooden-crate.jpg")]),
texture_Details => openGL.texture_Set.to_Set ([1 => openGL.to_Asset ("./assets/opengl/texture/wooden-crate.jpg")]),
Texture_is_lucid => False);
the_physics_Model : constant standard.physics.Model.view