Modelling changes

This commit is contained in:
STP
2023-11-28 17:09:35 -05:00
parent 2bc964cd2d
commit 776bfb57f2
5 changed files with 1178 additions and 48 deletions

1102
obj/cat.obj Normal file

File diff suppressed because it is too large Load Diff

48
rhai/mesh.rhai Normal file
View File

@@ -0,0 +1,48 @@
let scene = Scene();
let material = Material(V(0.2,0.2,0.2), V(0.2, 0.2, 0.2), 10.0);
scene.addMaterial("material", material);
let material2 = Material(V(0.2,0.7,0.2), V(0.2, 0.2, 0.2), 10.0);
scene.addMaterial("mat2", material2);
let camera = Camera(P(0.0,0.0,2.0), P(0.0,0.0,0.0), V(0.0,1.0,0.0));
scene.addCamera("Cam", camera);
let falloff = V(0.0,0.0,0.0);
let light = Light(P(6.0,6.0,6.0), V(0.4,0.4,0.4), falloff);
scene.addLight("white", light);
// let light = Light(P(2.0,0.0,0.0), V(0.0,1.0,0.0), V(0.1, 0.01, 0.001));
// scene.addLight("green", light);
// let light = Light(P(-2.0,0.0,0.0), V(1.0,0.0,0.0), V(0.1, 0.01, 0.001));
// scene.addLight("red", light);
let light = Ambient(V(0.3,0.3,0.3));
scene.addLight("ambient", light);
let tri = TriangleUnit();
let tri_node = Node(tri, material);
tri_node.active(true);
scene.addNode("tri", tri_node);
let sphere = SphereUnit();
let sphere_node = Node(sphere, material);
sphere_node.translate(0.0,0.0,0.0);
sphere_node.active(false);
scene.addNode("sphere", sphere_node);
let ground = SphereUnit();
let ground_node = Node(ground, material2);
let scale = 2.0;
ground_node.translate(0.0,-scale*2.0,0.0);
ground_node.scale(scale,scale,scale);
ground_node.active(false);
scene.addNode("ground", ground_node);
// let mesh = Mesh("obj/cat.obj");
// let mesh_node = Node(mesh, material);
// mesh_node.active(false);
// scene.addNode("mesh", mesh_node);
scene

View File

@@ -30,17 +30,17 @@ let light = Ambient(V(0.1,0.1,0.1));
scene.addLight("ambient", light);
let sphere = Sphere(P(0.0,0.0,0.0), 1.0, material);
let sphere_node = Node(sphere);
let sphere = Sphere(P(0.0,0.0,0.0), 1.0 );
let sphere_node = Node(sphere, material);
scene.addNode("sphere", sphere_node);
//let mesh = Mesh("obj/cow.obj", material);
//let mesh = Mesh("obj/cow.obj" );
//let mesh_node = Node(mesh);
//scene.addNode("mesh", mesh_node);
for i in 0..6 {
let sphere = Sphere(P(0.0,0.0,0.0), 2.0, material);
let sphere_node = Node(sphere);
let sphere = Sphere(P(0.0,0.0,0.0), 2.0 );
let sphere_node = Node(sphere, material);
sphere_node.translate(2.0*cos(i.to_float()), -4.0, 2.0*sin(i.to_float()));
scene.addNode(i.to_string(), sphere_node);
}
@@ -48,15 +48,15 @@ for i in 0..6 {
// child.translate(V(1.0,1.0,1.0));
//scene.addNode(child);
let cube = CubeUnit(material);
let cube_node = Node(cube);
let cube = CubeUnit();
let cube_node = Node(cube, material);
scene.addNode("cube", cube_node);
//let gnonom = Gnonom(material);
//let gnonom = Gnonom();
//let gnonom_node = Node(gnonom);
//scene.addNode("gnonom", gnonom_node);
//let cylinder = Cylinder(2.0,1.0, material);
//let cylinder = Cylinder(2.0,1.0 );
//let cylinder_node = Node(cylinder);
//cylinder_node.scale(1.0,1.0,1.0);
//scene.addNode("cylinder",cylinder_node);

View File

@@ -31,31 +31,33 @@ scene.addLight("red", light);
let material = Material(V(0.2,0.2,0.2), V(0.2, 0.8, 0.8), 10.0);
scene.addMaterial("bluegreen", material);
let steiner = Steiner( material);
let steiner_node = Node(steiner);
let steiner = Steiner();
let steiner_node = Node(steiner, material);
scene.addNode("steiner", steiner_node);
let steiner2 = Steiner2( material);
let steiner2_node = Node(steiner2);
let steiner2 = Steiner2();
let steiner2_node = Node(steiner2, material2);
scene.addNode("steiner2", steiner2_node);
let crosscap = CrossCap(material);
let crosscap_node = Node(crosscap);
let crosscap = CrossCap();
let crosscap_node = Node(crosscap, material);
scene.addNode("crosscap", crosscap_node);
let (p,q) = (1.0,1.0);
let crosscap2 = CrossCap2( material);
let crosscap2_node = Node(crosscap2);
let p = 1.0;
let q = 1.0;
let crosscap2 = CrossCap2(p, q);
let crosscap2_node = Node(crosscap2, material);
scene.addNode("crosscap2", crosscap2_node);
let k = 1.0;
let roman = Roman(k, material);
let roman_node = Node(roman);
scene.addNode("sphere", roman_node);
let k = 0.5;
let roman = Roman(k );
let roman_node = Node(roman, material);
scene.addNode("roman", roman_node);
let (inner_rad, outer_rad) = (0.5, 0.5);
let torus = Torus(inner_rad, outer_rad, material);
let torus_node = Node(torus);
scene.addNode("sphere", torus_node);
let inner_rad = 1.0;
let outer_rad = 0.5;
let torus = Torus(inner_rad, outer_rad );
let torus_node = Node(torus, material);
scene.addNode("torus", torus_node);
scene

View File

@@ -1,22 +0,0 @@
let scene = Scene();
let material = Material(V(0.2,0.2,0.2), V(0.2, 0.8, 0.8), 10.0);
//let ambient = Light(P(10.0,0.0,0.0), V(1.0,1.0,1.0), V(0.0, 0.0, 0.0));
//scene.addLight(ambient);
let light = Light(P(0.0,0.0,2.0), V(0.0,0.0,1.0), V(0.1, 0.01, 0.001));
scene.addLight("blue", light);
let light = Light(P(2.0,0.0,0.0), V(0.0,1.0,0.0), V(0.1, 0.01, 0.001));
scene.addLight("green", light);
let light = Light(P(-2.0,0.0,0.0), V(1.0,0.0,0.0), V(0.1, 0.01, 0.001));
scene.addLight("red", light);
let light = Ambient(V(0.1,0.1,0.1));
scene.addLight("ambient", light);
let stein = Steiner(material);
let stein_node = Node(stein);
scene.addNode("stein", stein_node);
scene