First Grass Renders

September 28th, 2009 art, experiment 1 comment


Short Grass
Long Grass
Here are some first grass attempts for a piece I’m working on. There are 4,096 blades of grass with about 15 circular segments per blade. The are built with VBO’s running at about 50fps. I would love to get a few more FPS with some optimization.

watch HD here

Diggin 3D Worms

September 27th, 2009 art, experiment 1 comment

3d Worms
Big One
Working on some grass for a piece I’m working on. This is my first time generating 3d geometry for a worm/grass. Oh man this is fun.

Normals

September 22nd, 2009 experiment, research 1 comment

Normals Sphere
Finally got normals working for the height map. Brad helped me a ton with the math, thanks brad :). After making sure I had the right points its was pretty simple.

Here is an example to calculate normals for a grid in OpenFrameworks. Obviously this can be applied to any other language.
grid

The image above we have four points on a plane. We need three of those points:

ofxVec3f p1(x1, y1, z1);
ofxVec3f p2(x2, y2, z2);
ofxVec3f p3(x3, y3, z3);

We now need a vector from p1 to p2 and p1 to p3.

ofxVec3f v1 = p1 - p2;
ofxVec3f v2 = p1 - p3;

We need the cross product of v1 and v2. This will give us our normal vector. Next we normalize that vector scale it and add p1.

ofxVec3f normalVec = v1.cross(v2);
normalVec.normalize();
normalVec *= 50.0;
normalVec += p1;

Now render from p1 to normal vector.

ofSetColor(255, 0, 0);
glVertex3f(normalVec.x, normalVec.y, normalVec.z);
glVertex3f(p1.x, p1.y, p1.z);

New Camera Mount

September 21st, 2009 life no comments

New Camera Mount
Just got this new mount – it is great so excited :)

Scrolling Terrain

September 14th, 2009 experiment no comments


The terrain is now scrolling. I’m not using a VBO so its a bit slow but that’s an easy fix. I now want to try and apply a sphere to the grid.

Terrain Height Maps

September 12th, 2009 experiment no comments

These are some terrain height maps built from NOAA’s Planetary Maps. The images are super high res about 2000×1500 pixels, the geometry is calculated and a display list is used for rendering. I think next im going to try and create a VBO out of the geometry so that I can alter the map in realtime.
Voyager and Galileo data
Voyager and Galileo data
Europa