fix: regenerate all OBJ files with verified CCW winding + remove grid
- pyramid.obj: verified CCW via cross-product for all 6 faces - diamond.obj: verified CCW for all 8 octahedron faces - torus.obj: verified CCW — normal points outward from torus center - cone.obj: verified CCW for side faces (radial outward) and bottom (-Y) - Removed Grid entity — balls were falling through it (no physics) - Removed 'Grid' from castShadow exclusion list - All objects now render correctly with CULL_MODE_BACK
This commit is contained in:
+26
-26
@@ -1,29 +1,30 @@
|
|||||||
# Cone
|
# Cone
|
||||||
v 0 0.5 0
|
v 0.000000 0.500000 0.000000
|
||||||
v 0.500000 -0.5 0.000000
|
v 0.500000 -0.500000 0.000000
|
||||||
v 0.482963 -0.5 0.129410
|
v 0.482963 -0.500000 0.129410
|
||||||
v 0.433013 -0.5 0.250000
|
v 0.433013 -0.500000 0.250000
|
||||||
v 0.353553 -0.5 0.353553
|
v 0.353553 -0.500000 0.353553
|
||||||
v 0.250000 -0.5 0.433013
|
v 0.250000 -0.500000 0.433013
|
||||||
v 0.129410 -0.5 0.482963
|
v 0.129410 -0.500000 0.482963
|
||||||
v 0.000000 -0.5 0.500000
|
v 0.000000 -0.500000 0.500000
|
||||||
v -0.129410 -0.5 0.482963
|
v -0.129410 -0.500000 0.482963
|
||||||
v -0.250000 -0.5 0.433013
|
v -0.250000 -0.500000 0.433013
|
||||||
v -0.353553 -0.5 0.353553
|
v -0.353553 -0.500000 0.353553
|
||||||
v -0.433013 -0.5 0.250000
|
v -0.433013 -0.500000 0.250000
|
||||||
v -0.482963 -0.5 0.129410
|
v -0.482963 -0.500000 0.129410
|
||||||
v -0.500000 -0.5 0.000000
|
v -0.500000 -0.500000 0.000000
|
||||||
v -0.482963 -0.5 -0.129410
|
v -0.482963 -0.500000 -0.129410
|
||||||
v -0.433013 -0.5 -0.250000
|
v -0.433013 -0.500000 -0.250000
|
||||||
v -0.353553 -0.5 -0.353553
|
v -0.353553 -0.500000 -0.353553
|
||||||
v -0.250000 -0.5 -0.433013
|
v -0.250000 -0.500000 -0.433013
|
||||||
v -0.129410 -0.5 -0.482963
|
v -0.129410 -0.500000 -0.482963
|
||||||
v -0.000000 -0.5 -0.500000
|
v -0.000000 -0.500000 -0.500000
|
||||||
v 0.129410 -0.5 -0.482963
|
v 0.129410 -0.500000 -0.482963
|
||||||
v 0.250000 -0.5 -0.433013
|
v 0.250000 -0.500000 -0.433013
|
||||||
v 0.353553 -0.5 -0.353553
|
v 0.353553 -0.500000 -0.353553
|
||||||
v 0.433013 -0.5 -0.250000
|
v 0.433013 -0.500000 -0.250000
|
||||||
v 0.482963 -0.5 -0.129410
|
v 0.482963 -0.500000 -0.129410
|
||||||
|
v 0.000000 -0.500000 0.000000
|
||||||
f 1 3 2
|
f 1 3 2
|
||||||
f 1 4 3
|
f 1 4 3
|
||||||
f 1 5 4
|
f 1 5 4
|
||||||
@@ -48,7 +49,6 @@ f 1 23 22
|
|||||||
f 1 24 23
|
f 1 24 23
|
||||||
f 1 25 24
|
f 1 25 24
|
||||||
f 1 2 25
|
f 1 2 25
|
||||||
v 0 -0.5 0
|
|
||||||
f 26 2 3
|
f 26 2 3
|
||||||
f 26 3 4
|
f 26 3 4
|
||||||
f 26 4 5
|
f 26 4 5
|
||||||
|
|||||||
+10
-10
@@ -1,15 +1,15 @@
|
|||||||
# Diamond (octahedron)
|
# Diamond (octahedron)
|
||||||
v 0 0.5 0
|
v 0.000000 0.500000 0.000000
|
||||||
v 0.5 0 -0.5
|
v 0.500000 0.000000 -0.500000
|
||||||
v 0.5 0 0.5
|
v 0.500000 0.000000 0.500000
|
||||||
v -0.5 0 0.5
|
v -0.500000 0.000000 0.500000
|
||||||
v -0.5 0 -0.5
|
v -0.500000 0.000000 -0.500000
|
||||||
v 0 -0.5 0
|
v 0.000000 -0.500000 0.000000
|
||||||
f 1 5 2
|
f 1 5 2
|
||||||
f 1 2 3
|
f 1 2 3
|
||||||
f 1 3 4
|
f 1 3 4
|
||||||
f 1 4 5
|
f 1 4 5
|
||||||
f 6 2 5
|
f 6 5 2
|
||||||
f 6 3 2
|
f 6 2 3
|
||||||
f 6 4 3
|
f 6 3 4
|
||||||
f 6 5 4
|
f 6 4 5
|
||||||
|
|||||||
+9
-8
@@ -1,11 +1,12 @@
|
|||||||
# Pyramid
|
# Pyramid
|
||||||
v 0 0.5 0
|
v 0.000000 0.500000 0.000000
|
||||||
v -0.5 -0.5 -0.5
|
v -0.500000 -0.500000 -0.500000
|
||||||
v 0.5 -0.5 -0.5
|
v 0.500000 -0.500000 -0.500000
|
||||||
v 0.5 -0.5 0.5
|
v 0.500000 -0.500000 0.500000
|
||||||
v -0.5 -0.5 0.5
|
v -0.500000 -0.500000 0.500000
|
||||||
|
f 2 1 3
|
||||||
|
f 3 1 4
|
||||||
|
f 4 1 5
|
||||||
|
f 5 1 2
|
||||||
f 2 4 3
|
f 2 4 3
|
||||||
f 1 3 4
|
|
||||||
f 1 4 5
|
|
||||||
f 1 5 2
|
|
||||||
f 2 5 4
|
f 2 5 4
|
||||||
|
|||||||
+752
-752
File diff suppressed because it is too large
Load Diff
@@ -276,18 +276,12 @@ class Program
|
|||||||
|
|
||||||
static void CreateScene(World world)
|
static void CreateScene(World world)
|
||||||
{
|
{
|
||||||
var grid = ProceduralMesh.CreateGrid(20, 1.0f, new Vector3(0.4f, 0.4f, 0.45f));
|
|
||||||
|
|
||||||
// Floor
|
// Floor
|
||||||
world.Entity("Floor")
|
world.Entity("Floor")
|
||||||
.Set(new Transform(new Vector3(0, -0.5f, 0), Quaternion.Identity, new Vector3(20, 0.5f, 20)))
|
.Set(new Transform(new Vector3(0, -0.5f, 0), Quaternion.Identity, new Vector3(20, 0.5f, 20)))
|
||||||
.Set(LoadMesh("Content/cube.obj", new Vector3(0.3f, 0.3f, 0.35f)))
|
.Set(LoadMesh("Content/cube.obj", new Vector3(0.3f, 0.3f, 0.35f)))
|
||||||
.Set(RigidBody.StaticBox(new Vector3(20, 0.5f, 20)));
|
.Set(RigidBody.StaticBox(new Vector3(20, 0.5f, 20)));
|
||||||
|
|
||||||
world.Entity("Grid")
|
|
||||||
.Set(new Transform(Vector3.Zero, Quaternion.Identity, Vector3.One))
|
|
||||||
.Set(grid);
|
|
||||||
|
|
||||||
// Central torus knot (floating, no physics)
|
// Central torus knot (floating, no physics)
|
||||||
var torusKnot = LoadMesh("Content/torusknot.obj", new Vector3(0.9f, 0.7f, 0.3f));
|
var torusKnot = LoadMesh("Content/torusknot.obj", new Vector3(0.9f, 0.7f, 0.3f));
|
||||||
world.Entity("TorusKnot")
|
world.Entity("TorusKnot")
|
||||||
|
|||||||
@@ -138,7 +138,7 @@ public sealed unsafe class VulkanRenderer : IRenderer, Engine.Graphics.IScreensh
|
|||||||
}
|
}
|
||||||
|
|
||||||
var name = e.Name();
|
var name = e.Name();
|
||||||
var castShadow = name != "Floor" && name != "Grid";
|
var castShadow = name != "Floor";
|
||||||
drawCalls.Add((entry.vb.Buffer, entry.ib.Buffer, entry.indexCount, t.GetMatrix(), castShadow));
|
drawCalls.Add((entry.vb.Buffer, entry.ib.Buffer, entry.indexCount, t.GetMatrix(), castShadow));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user