Posts

Showing posts from 2008

RoomBuilder V1

Image
Just to cheer myself up, I thought I'd post some screenshots of room models created in the original version of RoomBuilder, rendered in Cinema4D XL. These were done a few years ago. Time flies eh? A Georgian style door. A more modern look. A poor paint job! One final one, with a few plants and textures added (not from RoomBuilder).

Straight Skeleton Madness (a plea for help)

Image
After completing my work on boolean path operations, I have moved on to looking at algorithms for offsetting polygons. One of the ones that stands out is known as the 'straight skeleton' algorithm. This computes a set of connected paths which describe the position of verticies as the polygon offset size is altered. Unfortunately, it's only directly applicable to straight line paths (with mitre joins), but that's good enough for now. The algorithm is straightforward for convex polygons, but gets a little bit more complex when dealing with concave points, since this can lead to the creation of sub paths. In theory, while the straight skeleton is not directly applicable to offsetting, it produces a structure which can be used to calculate an offset path. As an aside, the straight skeleton of a polygon is ideal for determining its 'roof structure' - which will be of use elsewhere in my software. Progress on my .NET straight skeleton code has been slow but fairly dec...

Milestone: .Net Boolean Path Engine

Well, today I am celebrating bit of a milestone with regard to my graphics project. I finally have an operational 2D vector path engine which is capable of boolean operations. It supports union, intersection and subtraction of bezier and straight line paths with holes and seems to be working really well, at long last! One of the things that has really helped develop this engine is the vast suite of unit tests. It's amazing just how many tricky path operations you can devise that can really stress the engine. What may originally seem a relatively simple task reveals itself to have many complications with several degenerate or special cases. There have been a number of 'what if?' test cases I have thrown at the engine that have revealed areas that need to be improved. Particularly tricky problems include: subtraction of a subpath from a path, e.g. half a hexagon from a hexagon, union and subtraction operations on paths which include shared edges, paths that contain perfectly ...

Where to Blog

Ok, it's been quiet round here since my only previous blog post. A lot has happened in my life since then which has certainly got in the way of being productive. However, I'm please to say I'm back and have been coding on my personal projects for a few months. Since what I am working on is mainly graphics related and has a strong overlap with the 3D art community, it's difficult to know where to blog to reach the right people. Blogger is great for having a wide reach, but it's not particularly targetted so I also blog elsewhere on very similar topics. I intend to try to keep both ticking over. Fingers crossed on that front.