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
|
||||
v 0 0.5 0
|
||||
v 0.500000 -0.5 0.000000
|
||||
v 0.482963 -0.5 0.129410
|
||||
v 0.433013 -0.5 0.250000
|
||||
v 0.353553 -0.5 0.353553
|
||||
v 0.250000 -0.5 0.433013
|
||||
v 0.129410 -0.5 0.482963
|
||||
v 0.000000 -0.5 0.500000
|
||||
v -0.129410 -0.5 0.482963
|
||||
v -0.250000 -0.5 0.433013
|
||||
v -0.353553 -0.5 0.353553
|
||||
v -0.433013 -0.5 0.250000
|
||||
v -0.482963 -0.5 0.129410
|
||||
v -0.500000 -0.5 0.000000
|
||||
v -0.482963 -0.5 -0.129410
|
||||
v -0.433013 -0.5 -0.250000
|
||||
v -0.353553 -0.5 -0.353553
|
||||
v -0.250000 -0.5 -0.433013
|
||||
v -0.129410 -0.5 -0.482963
|
||||
v -0.000000 -0.5 -0.500000
|
||||
v 0.129410 -0.5 -0.482963
|
||||
v 0.250000 -0.5 -0.433013
|
||||
v 0.353553 -0.5 -0.353553
|
||||
v 0.433013 -0.5 -0.250000
|
||||
v 0.482963 -0.5 -0.129410
|
||||
v 0.000000 0.500000 0.000000
|
||||
v 0.500000 -0.500000 0.000000
|
||||
v 0.482963 -0.500000 0.129410
|
||||
v 0.433013 -0.500000 0.250000
|
||||
v 0.353553 -0.500000 0.353553
|
||||
v 0.250000 -0.500000 0.433013
|
||||
v 0.129410 -0.500000 0.482963
|
||||
v 0.000000 -0.500000 0.500000
|
||||
v -0.129410 -0.500000 0.482963
|
||||
v -0.250000 -0.500000 0.433013
|
||||
v -0.353553 -0.500000 0.353553
|
||||
v -0.433013 -0.500000 0.250000
|
||||
v -0.482963 -0.500000 0.129410
|
||||
v -0.500000 -0.500000 0.000000
|
||||
v -0.482963 -0.500000 -0.129410
|
||||
v -0.433013 -0.500000 -0.250000
|
||||
v -0.353553 -0.500000 -0.353553
|
||||
v -0.250000 -0.500000 -0.433013
|
||||
v -0.129410 -0.500000 -0.482963
|
||||
v -0.000000 -0.500000 -0.500000
|
||||
v 0.129410 -0.500000 -0.482963
|
||||
v 0.250000 -0.500000 -0.433013
|
||||
v 0.353553 -0.500000 -0.353553
|
||||
v 0.433013 -0.500000 -0.250000
|
||||
v 0.482963 -0.500000 -0.129410
|
||||
v 0.000000 -0.500000 0.000000
|
||||
f 1 3 2
|
||||
f 1 4 3
|
||||
f 1 5 4
|
||||
@@ -48,7 +49,6 @@ f 1 23 22
|
||||
f 1 24 23
|
||||
f 1 25 24
|
||||
f 1 2 25
|
||||
v 0 -0.5 0
|
||||
f 26 2 3
|
||||
f 26 3 4
|
||||
f 26 4 5
|
||||
|
||||
+10
-10
@@ -1,15 +1,15 @@
|
||||
# Diamond (octahedron)
|
||||
v 0 0.5 0
|
||||
v 0.5 0 -0.5
|
||||
v 0.5 0 0.5
|
||||
v -0.5 0 0.5
|
||||
v -0.5 0 -0.5
|
||||
v 0 -0.5 0
|
||||
v 0.000000 0.500000 0.000000
|
||||
v 0.500000 0.000000 -0.500000
|
||||
v 0.500000 0.000000 0.500000
|
||||
v -0.500000 0.000000 0.500000
|
||||
v -0.500000 0.000000 -0.500000
|
||||
v 0.000000 -0.500000 0.000000
|
||||
f 1 5 2
|
||||
f 1 2 3
|
||||
f 1 3 4
|
||||
f 1 4 5
|
||||
f 6 2 5
|
||||
f 6 3 2
|
||||
f 6 4 3
|
||||
f 6 5 4
|
||||
f 6 5 2
|
||||
f 6 2 3
|
||||
f 6 3 4
|
||||
f 6 4 5
|
||||
|
||||
+9
-8
@@ -1,11 +1,12 @@
|
||||
# Pyramid
|
||||
v 0 0.5 0
|
||||
v -0.5 -0.5 -0.5
|
||||
v 0.5 -0.5 -0.5
|
||||
v 0.5 -0.5 0.5
|
||||
v -0.5 -0.5 0.5
|
||||
v 0.000000 0.500000 0.000000
|
||||
v -0.500000 -0.500000 -0.500000
|
||||
v 0.500000 -0.500000 -0.500000
|
||||
v 0.500000 -0.500000 0.500000
|
||||
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 1 3 4
|
||||
f 1 4 5
|
||||
f 1 5 2
|
||||
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)
|
||||
{
|
||||
var grid = ProceduralMesh.CreateGrid(20, 1.0f, new Vector3(0.4f, 0.4f, 0.45f));
|
||||
|
||||
// Floor
|
||||
world.Entity("Floor")
|
||||
.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(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)
|
||||
var torusKnot = LoadMesh("Content/torusknot.obj", new Vector3(0.9f, 0.7f, 0.3f));
|
||||
world.Entity("TorusKnot")
|
||||
|
||||
@@ -138,7 +138,7 @@ public sealed unsafe class VulkanRenderer : IRenderer, Engine.Graphics.IScreensh
|
||||
}
|
||||
|
||||
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));
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user