This commit is contained in:
spatialfree 2022-10-31 00:08:52 -04:00
parent 69cd36781b
commit 901c86eddd
2 changed files with 52 additions and 36 deletions

BIN
add/houseleek_plant.glb Normal file

Binary file not shown.

View file

@ -14,13 +14,39 @@ public class Space {
Material matFloor = new Material(Shader.Default); Material matFloor = new Material(Shader.Default);
Model shed = Model.FromFile("shed/shed.glb", Shader.FromFile("/shaders/room.hlsl")); Model shed = Model.FromFile("shed/shed.glb", Shader.FromFile("/shaders/room.hlsl"));
Model leek = Model.FromFile("houseleek_plant.glb", Shader.FromFile("/shaders/room.hlsl"));
Mesh cube = Mesh.Cube; Mesh cube = Mesh.Cube;
Solid floor; Solid floor;
public Space() { public Space() {
buffer = new MaterialBuffer<BufferData>(3); // index buffer = new MaterialBuffer<BufferData>(3); // index
// recenter the nodes in the leek model
// so that the leek is centered at the origin
// and the scale is 1
Vec3 center = new Vec3(0, 0, 0);
foreach (ModelNode node in leek.Nodes) {
if (node.Mesh != null) {
// average the vertices to find the center
foreach (Vertex vertex in node.Mesh.GetVerts()) {
center += vertex.pos;
}
center /= node.Mesh.VertCount;
}
node.LocalTransform = Matrix.TS(
Vec3.Zero,
1f
);
// node.ModelTransform = Matrix.TS(
// new Vec3(0, 0, 0),
// 1f
// );
}
leek.RootNode.LocalTransform = Matrix.TS(
-center,
1f
);
floor = new Solid(World.BoundsPose.position, Quat.Identity, SolidType.Immovable); floor = new Solid(World.BoundsPose.position, Quat.Identity, SolidType.Immovable);
scale = 64f; scale = 64f;
@ -78,16 +104,6 @@ public class Space {
shed.Draw(Matrix.Identity); shed.Draw(Matrix.Identity);
leek.Draw(Matrix.TRS(new Vec3(2.5f, 0, -2.5f) * 1.2f, Quat.FromAngles(180f, 30f, 0f), 1.2f));
// draw a grid of cube pillars spaced out evenly along the XZ plane
// for (int i = 0; i < 20; i++) {
// for (int j = 0; j < 20; j++) {
// float x = i * 4 - 20;
// float z = j * 4 - 20;
// float y = 0;
// Matrix m = Matrix.TRS(new Vec3(x, y, z), Quat.Identity, new Vec3(0.25f, 6f, 0.25f));
// cube.Draw(matFloor, m);
// }
// }
} }
} }