Celebrating A Milestone
Well, hopefully I'm not calling this one too early, but I have reached a milestone with the 2D vector code. Hurray!
I now have a working set of boolean operations that can take a bezier / line path with holes. The code supports intersection, union and subtraction of these types of path. Given the time it's taken to iron out some of the special cases there are bound to be some gotchas in there still, however, with nearly 100 unit tests for the path operations, things are looking good. The only known issues are with optimisation of some degenerate intersection cases.
One very satisfying thing about all of this is that I have been comparing the output of my engine with the output of commercial and open source 2D vector engines and it's doing well. I have several test cases that produce more accurate or cleaner output with my engine than the alternatives, which is really satisfying. It's taken a long time to get this far and it's worthy of a celebration.
I will post more details of some torture test cases to my other blog soon, with a link from here. If people can think of their own, then let me know and I'll give them a try.
What's next? Well, there are still several operations that I need to support in the 2D engine, one of which is particularly tricky - growing and shrinking paths. This is because there is no direct solution to creating a parallel bezier curve, so you have to approximate.
Wish me luck or just give me some encouragment please!
Well, I'm back
Just announcing that I'm back in action and continuing to code RoomBuilder's successor, after what can only be described as an awful year last year which put things on hold. Still working on the low level 2D vector algorithms, but things are progressing with the bezier union, intersection and subtraction code.
Stay tuned for more virtual building news and wish me better luck for this year! I'm aiming to actually get something out within a calendar year - famous last words. We all need goals though.
One of the things about writing a blog is not knowing who, if anyone, actually reads your blog. So, if you are out there, feel free to introduce yourself. Why are you reading my blog? What do you like about Renderosity? Do you like reading about the programming aspects of RoomBuilder? What do you think of the models?
Some Rooms to View
Some of you may be wondering just what RoomBuilder is capable of. Well, I've done a composite image of four rooms showing the different types of window and doors that can be generated, quickly and easily. All the geometry, smoothing (vertex normals) and texture coordinates were created by RoomBuilder V1. The four rooms were then textured and rendered with some basic materials in Cinema XL9.
NB the software can also export rooms to Poser, but the quality of the render isn't quite so good IMHO (although these look a little fuzzy to me, probably due to the low res.) I can do some higher resolution renders if required.
What do you think?
A Room is not a Set if you're a Poser
What am I on about today?
Well, the title says it all really, a room is not a set.
What do I mean?
RoomBuilder allows you to generate detailed models of rooms, quickly and easily. However, a Poser artist is often not after a model of a room, they really want a set.
What's the difference?
A set is often not fully enclosed. One or more walls are 'missing' to ease the positioning of a camera. This is an issue we need to address either in Poser or upon export of a Poser-compatible model.
A set sometimes lacks a ceiling. This is a bit easier to deal with.
Is that it?
I'm sure there are other differences, but it goes to illustrate that some things that appear simple may not be as straightforwards as you initially think. Comments appreciated.
Soon, I'll try to post some example renders of models produced using V1. I am still dealing with intersections in V2. Stay tuned.