new video, starting a project from scratch

Leave a Comment

dtEntity particle system editor

Showing the new capabilities of the dtEntity property editor: the switch property can be used to create a tree of properties

Leave a Comment

dtEntity multi screen editing

I have finished a first implementation of multi screen capabilities for dtEntity. It is now possible to open additional windows from JavaScript or C++. The input handler handles events on a per-window basis, which makes it easy to write separate motion models for each screen. Windows are addressed by their context id. The main screen has context id 0, the openWindow function returns the context id of the newly created window. InputHandler.getKey(“k”, 0) would return true if the main window was focused and the k key pressed.

I also did some work on the integration of osgManipulator. There are some issues with the draggers not being picked when they are not the nearest intersection, also it is not yet possible to manipulate more than one object at once. But still this seems to have promise.

Leave a Comment

dtEntity project

This blog has been stale for a long time because I don’t have a lot of free time since our daughter was born. But now I want to revive it to keep a log of my development work on dtEntity, the simulation framework I have worked on for the last two years.

I have done some posts to the OpenSceneGraph homepage to announce it, but did not get a lot of feedback yet. I think this is maybe because there were a number of similar projects in the past that got stale, and people are affraid to commit to a project that could go down any time. I hope to get over this by doing consistent work on the project and adding useful features.

So what is dtEntity? As I already said, it is a simulation framework. It is tightly integrated with OpenSceneGraph. It adds an entity model that composes simulation entities from loosely coupled components.

I have posted a couple of videos to youtube which demonstrate the capabilities. There are a lot of things that I can’t show in the video that I think make developing with dtEntity nice that I want to write about in this blog.

Today I spent a lot of time integrating osgManipulator. I already have implemented translate / rotate / scale tools usingĀ  JavaScript that work like those in Blender. But it seems that all other game editors use editing widgets like 3DS Max, so I don’t want to go out of line here. I will probably commit to the svn tomorrow.

Leave a Comment

Java phone app Circuit Trainer

I’ve created a small app for my java phone that rings at predefined intervals. You can use it for circuit training, boxing, cardio training or whatever.
You can choose up to four intervals (I don’t think more are useful) and the phone will count down these intervals and notify you with a ringing sound once the period is over.

screen

Here’s a zip file containing the jar and jad. Check your phone’s manual on how to install them. Please remove the “.pptx” – extension from the file, wordpress does not allow me to upload zip files.

CircuitTrainer.zip

And here is the source:

CircuitTrainer_src.zip

I’m happy for feedback on the app!

Comments (1)

Navigation mesh library for Delta 3D

dtnavmeshzip – rename to .zip

Thread

Leave a Comment

Re-enabled comments

Re-enabled comments. Let’s see…

Leave a Comment

OpenSceneGraph Delaunay Triangulation

I had a hard time getting delaunay triangulation to work with OpenSceneGraph, mainly because the example osgdelaunay.cpp is overly complicated. So here is a “Hello World” for getting delaunay triangulation to work with OpenSceneGraph.

// create a square area
osg::Vec3Array* points = new osg::Vec3Array;
points->push_back(osg::Vec3(-1, -1, 0));
points->push_back(osg::Vec3(-1,  1, 0));
points->push_back(osg::Vec3( 1, -1, 0));
points->push_back(osg::Vec3( 1,  1, 0));

// create triangulator and set the points as the area
osg::ref_ptr<osgUtil::DelaunayTriangulator> trig = new osgUtil::DelaunayTriangulator();
trig->setInputPointArray(points);

// create a triangular constraint
osg::Vec3Array* bounds = new osg::Vec3Array;
bounds->push_back(osg::Vec3(-0.5f, -0.5f, 0));
bounds->push_back(osg::Vec3(-0.5f, 0.5f, 0));
bounds->push_back(osg::Vec3(0.5f, 0.5f, 0));
osg::ref_ptr<osgUtil::DelaunayConstraint> constraint = new osgUtil::DelaunayConstraint;
constraint->setVertexArray(bounds);
constraint->addPrimitiveSet(new osg::DrawArrays(osg::PrimitiveSet::LINE_LOOP,0,3) );

// add constraint to triangulator
trig->addInputConstraint(constraint.get());

trig->triangulate();

// remove triangle from mesh
trig->removeInternalTriangles(constraint.get());

// put triangulated mesh into OSG geometry
osg::Geometry* gm = new osg::Geometry;
gm->setVertexArray(points);
gm->addPrimitiveSet(trig->getTriangles());
osg::Vec4Array* colors = new osg::Vec4Array(1);
colors->push_back(osg::Vec4(1,0,1,1));
gm->setColorArray(colors);
gm->setColorBinding(osg::Geometry::BIND_OVERALL);

//create geometry and add it to scene graph
osg::Geode* geode = new osg::Geode();
geode->addDrawable(gm);

GetMatrixNode()->addChild(geode);

// use EdgeCollector to re-extract triangles from mesh
osgUtil::EdgeCollector ec;
ec.setGeometry(gm->asGeometry());

// loop through each triangle and print its vertex values
BOOST_FOREACH(osg::ref_ptr<osgUtil::EdgeCollector::Triangle> tri, ec._triangleSet) {
   std::cout << "TRIANGLE Points: ";
   std::cout << tri->_p1->_vertex<< ", ";
   std::cout << tri->_p2->_vertex<< ", ";
   std::cout << tri->_p3->_vertex << "\n";
}

Comments off

Moved the blog

To save some money I moved the blog from my last provider to wordpress.
I tried to take most files and images with me but I think I got lazy in the end.
Also I disallowed comments. When I moved the blog, the data file was 70 kb articles and 15 mb spam.

Also:
I moved IRL, this time from Vienna to Bremen.

My last job was as a network programmer working on the java game Perfect 11. It is a free online soccer game which can be found here.
Screenshot:

Now I work at Rheinmetall Detec as an AI and game engine programmer. I am allowed to play with Delta 3D all day, which is a lot of fun.

Leave a Comment

New Job

I now work at Softobis in Vienna, Austria as a network games programmer.

Leave a Comment

Older Posts »
Follow

Get every new post delivered to your Inbox.