added cyls.fart sample scene, removed hard-coded scene from Scene-load.cc; reading from a file is working!
git-svn-id: svn://anubis/fart/trunk@176 7f9b0f55-74a9-4bce-be96-3c2cd072584d
This commit is contained in:
parent
10500d08aa
commit
56a5fa6166
1
.todo
1
.todo
@ -1,6 +1,7 @@
|
|||||||
FART To-Do List
|
FART To-Do List
|
||||||
===============
|
===============
|
||||||
- Make verbose default
|
- Make verbose default
|
||||||
|
- Material definitions
|
||||||
- Recurse for reflection
|
- Recurse for reflection
|
||||||
- Continue for transparency
|
- Continue for transparency
|
||||||
- Scan for cameras before scene items
|
- Scan for cameras before scene items
|
||||||
|
@ -14,112 +14,6 @@ void Scene::load(const char * filename)
|
|||||||
{
|
{
|
||||||
refptr<Node> node = parse(filename);
|
refptr<Node> node = parse(filename);
|
||||||
processNode(node);
|
processNode(node);
|
||||||
|
|
||||||
#if 0
|
|
||||||
refptr<Material> m = new Material();
|
|
||||||
refptr<Shape> shape = new Sphere(0.5);
|
|
||||||
shape->setTransform(m_transforms.top());
|
|
||||||
shape->setMaterial(m);
|
|
||||||
m_shapes.push_back(shape);
|
|
||||||
|
|
||||||
refptr<Light> light = new PointLight();
|
|
||||||
light->setPosition(Vector(2, -1, 2));
|
|
||||||
m_lights.push_back(light);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
Transform transform;
|
|
||||||
|
|
||||||
refptr<Material> m = new Material();
|
|
||||||
m->setDiffuseColor(Color::white);
|
|
||||||
m->setAmbientColor(Color::white);
|
|
||||||
refptr<Shape> shape = new Plane(0, 0, 1, 2);
|
|
||||||
shape->setTransform(transform);
|
|
||||||
shape->setMaterial(m);
|
|
||||||
m_shapes.push_back(shape);
|
|
||||||
|
|
||||||
transform.translate(1.0, 5.0, 0.5);
|
|
||||||
m = new Material();
|
|
||||||
m->setDiffuseColor(Color::red);
|
|
||||||
m->setAmbientColor(Color::red);
|
|
||||||
shape = new Sphere(1.0);
|
|
||||||
shape->setTransform(transform);
|
|
||||||
shape->setMaterial(m);
|
|
||||||
m_shapes.push_back(shape);
|
|
||||||
transform.translate(-1.0, -5.0, -0.5);
|
|
||||||
|
|
||||||
transform.translate(-1, 3, -0.5);
|
|
||||||
refptr<Shape> shape1 = new Sphere(0.8);
|
|
||||||
shape1->setMaterial(m);
|
|
||||||
shape1->setTransform(transform);
|
|
||||||
refptr<Shape> shape2 = new Box(new Vector(2, 2, 0.6));
|
|
||||||
m = new Material();
|
|
||||||
m->setDiffuseColor(Color::magenta);
|
|
||||||
m->setAmbientColor(Color::magenta);
|
|
||||||
shape2->setMaterial(m);
|
|
||||||
transform.rotate(20, 0, 1, 0);
|
|
||||||
shape2->setTransform(transform);
|
|
||||||
shape = new Intersect(shape1, shape2);
|
|
||||||
m_shapes.push_back(shape);
|
|
||||||
transform.rotate(-20, 0, 1, 0);
|
|
||||||
transform.translate(1, -3, 0.5);
|
|
||||||
|
|
||||||
transform.translate(1.5, 3.2, -0.7);
|
|
||||||
transform.rotate(15, 0, 0, 1);
|
|
||||||
m = new Material();
|
|
||||||
m->setDiffuseColor(Color::magenta);
|
|
||||||
m->setAmbientColor(Color::magenta);
|
|
||||||
shape1 = new Box(new Vector(1, 1, 1));
|
|
||||||
shape1->setMaterial(m);
|
|
||||||
shape1->setTransform(transform);
|
|
||||||
m = new Material();
|
|
||||||
m->setDiffuseColor(Color::yellow);
|
|
||||||
m->setAmbientColor(Color::yellow);
|
|
||||||
shape2 = new Sphere(0.6);
|
|
||||||
transform.translate(-0.5, -0.5, 0.5);
|
|
||||||
shape2->setTransform(transform);
|
|
||||||
shape2->setMaterial(m);
|
|
||||||
shape = new Subtract(shape1, shape2);
|
|
||||||
m_shapes.push_back(shape);
|
|
||||||
transform.rotate(-15, 0, 0, 1);
|
|
||||||
transform.translate(-1.0, -2.7, 0.2);
|
|
||||||
|
|
||||||
transform.translate(1, 5, -1.5);
|
|
||||||
m = new Material();
|
|
||||||
m->setDiffuseColor(Color::blue);
|
|
||||||
m->setAmbientColor(Color::blue);
|
|
||||||
shape = new Box(new Vector(1.8, 1.8, 0.5));
|
|
||||||
shape->setTransform(transform);
|
|
||||||
shape->setMaterial(m);
|
|
||||||
m_shapes.push_back(shape);
|
|
||||||
transform.translate(-1, -5, 1.5);
|
|
||||||
|
|
||||||
transform.translate(-0.5, 6.5, 1.5);
|
|
||||||
transform.rotate(45, 1, 0, 0);
|
|
||||||
m = new Material();
|
|
||||||
m->setDiffuseColor(Color::cyan);
|
|
||||||
m->setAmbientColor(Color::cyan);
|
|
||||||
shape = new Cyl(1.0, 0.0, 2.0);
|
|
||||||
shape->setTransform(transform);
|
|
||||||
shape->setMaterial(m);
|
|
||||||
m_shapes.push_back(shape);
|
|
||||||
transform.rotate(-45, 1, 0, 0);
|
|
||||||
transform.translate(0.5, -6.5, -1.5);
|
|
||||||
|
|
||||||
transform.translate(-2.0, 5.0, 1.5);
|
|
||||||
transform.rotate(45, 0, 0, 1);
|
|
||||||
transform.rotate(45, 1, 0, 0);
|
|
||||||
m = new Material();
|
|
||||||
m->setDiffuseColor(Color::yellow);
|
|
||||||
m->setAmbientColor(Color::yellow);
|
|
||||||
shape = new Box(new Vector(1, 1, 1));
|
|
||||||
shape->setTransform(transform);
|
|
||||||
shape->setMaterial(m);
|
|
||||||
m_shapes.push_back(shape);
|
|
||||||
transform.rotate(-45, 1, 0, 0);
|
|
||||||
transform.rotate(-45, 0, 0, 1);
|
|
||||||
transform.translate(2.0, -5.0, -1.5);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Scene::processNode(refptr<Node> node)
|
void Scene::processNode(refptr<Node> node)
|
||||||
|
49
scenes/cyls.fart
Normal file
49
scenes/cyls.fart
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
|
||||||
|
scene
|
||||||
|
{
|
||||||
|
options
|
||||||
|
{
|
||||||
|
width 800
|
||||||
|
height 600
|
||||||
|
multisample 3
|
||||||
|
}
|
||||||
|
|
||||||
|
camera
|
||||||
|
{
|
||||||
|
position <1.5, -1, 2.5>
|
||||||
|
look_at <0, 0, 2>
|
||||||
|
up <0, 0, 1>
|
||||||
|
}
|
||||||
|
|
||||||
|
light
|
||||||
|
{
|
||||||
|
position <3, -8, 5>
|
||||||
|
}
|
||||||
|
|
||||||
|
plane
|
||||||
|
{
|
||||||
|
position <0, 0, 1>, 0
|
||||||
|
material
|
||||||
|
{
|
||||||
|
color <0.4, 0.9, 0.9>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
translate <0, 0, 2>
|
||||||
|
{
|
||||||
|
box
|
||||||
|
{
|
||||||
|
size <0.4, 0.4, 0.4>
|
||||||
|
material
|
||||||
|
{
|
||||||
|
color <1.0, 0.6, 0>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
cyl { size <0.2, 0, 0.3> translate <0, 0, 0.3> }
|
||||||
|
cyl { size <0.2, 0, 0.3> rotate 90, <1, 0, 0> translate <0, 0, 0.3> }
|
||||||
|
cyl { size <0.2, 0, 0.3> rotate -90, <1, 0, 0> translate <0, 0, 0.3> }
|
||||||
|
cyl { size <0.2, 0, 0.3> rotate 180, <1, 0, 0> translate <0, 0, 0.3> }
|
||||||
|
cyl { size <0.2, 0, 0.3> rotate 90, <0, 1, 0> translate <0, 0, 0.3> }
|
||||||
|
cyl { size <0.2, 0, 0.3> rotate -90, <0, 1, 0> translate <0, 0, 0.3> }
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user