5.25.2011

Bloated

Well the 12k engine size dream is not going to happen as I've already hit that mark with the latest additions: geospheres, bevel, scatter and a few overlooked generators have made it into the engine which currently is at 12340 bytes. Even 16k might be problematic at this rate if I want to add a good particle engine, but that might still be possible. All in all I'm making great progress on the modeler, only a few things left before it's completely finished.

5.22.2011

Lots of progress

The development machine kicked into full swing over the weekend and I'm happy to write that the modeler is functionally finished - it still needs some work to make things comfortable but everything is in there. Huge thanks go out to the Maniacs of Noise for their track Firing up as it put me in the mood for the 36 hour coding session over the last two days.
Also, engine size is still only 9960 bytes with everything in there.

5.21.2011

SVN Testrun

We got to the point where setting up an svn server for the projects made sense and we finally got around to test how the system behaves when multiple people are working on the same project file. The test went very well as changes made on both ends merged perfectly. This should help out a lot when the deadlines approach :)

Complicated

This is starting to look like an aircraft cockpit - the more technical part of the tool with material parameters finally finished and working.

The Star


5.20.2011

Mapxform

And then there was...

Vertex tint

This one might not seem too interesting at first, but it'll be the basis of a lot of cool things. Texture based vertex tinting made it into the engine. I also added support for multiple texture channels, and as the texture read-back code is quite big the engine size bloated to 9895 bytes.

5.19.2011

Loft upgrade

Rotations! \o/
New engine size: 9141 bytes (yeah, I managed to optimize a bit :))


5.17.2011

Texture coordinates

I spent some time writing the texture coordinate calculator that will be used for everything. It supports several schemes ranging from planar texturing to spherical texturing, the latter of course causing the most issues. Finally I got to a version that gives very nice results for the default primitives and will work reasonably well for any object later as well. The engine size is up to 9429 bytes due to this, but this was the last large self contained addition to the engine (along with updating mesh smooth calculations to propagate texture coordinates correctly). From the viewpoint of the engine the modeler and even the keyframer are basically complete, but the tool still needs a lot of work on both fronts.
Anyway here are a few pictures on spherical texturing highlighting the pole and the level of artifacts I deemed acceptable.

This is how the x texture coordinate looks like. Notice the lines around the pole.

This is the result when textured with a polar mapped noise texture

A proper texture designed for this hides the problem perfectly

5.15.2011

Proof of concept

I finally got around to testing the material parameter system completely. The image in this post is the proof of concept: one single material on both cubes, but separate settings for selected parameters on both (for now it's only the color).

5.12.2011

Filtered

The mesh filtering system is in place, now all that are needed are some of the filters. Catmull-Clark mesh smoothing is already in place, smooth group edge hardness will be pretty easy to do, the hardest one is MapXForm where I'll need to link the texture generators result into the mesh system. After that's done the material system needs to be finished, import/export added and the modeler is finished. This can be done before the end of the month.

5.10.2011

Lofty

The mesh type we abused the most before is now in the editor: lofts. With a proper generator engine working behind the scenes this time the editing of lofts in realtime at any moment is a breeze. Engine size is up to 8648 bytes in the meanwhile.

5.08.2011

Platonic

After some heavy refactoring today things are finally starting to shape up nicely. Platonic solid demo, yay :)

5.07.2011

Model generator flexibility

Today was mostly spent diving headlong into the model generator, until I realized the concept we used before wasn't really thought over. After some discussion we managed to figure out a way for the model generator to work that will both be easy to implement and to work with. In the old system the user basically threw in commands after each other, things like "generate a cube", "apply mesh smoothing", but in a quite twisted way. We realized that the old approach could be cleaned up by implementing it as a linear "generate model" -> "filter model" -> "done" scheme. The problem of this approach is that there's no way to branch a half done model into two separate things. Other than that this scheme is perfect for our needs. Luckily we can create a "copy" primitive that takes a finished filtered model and essentially branches it off to a new one. With this, the new model editor concept is pretty much finished, so back to coding again.

5.06.2011

Wrapping Normals

The object manipulator tool is finally in a state where I can quickly expand it in any way we need. Started working on basic mesh generation and realized that the way we generated the normals was off, so spent quite a while on it. Perfected normal calculation itself to work nicely with smoothing groups, but still hit a wall with some visual glitches. After hours of investigating and a very good tip from our other coder I found the problem: using texture wrapping while sending normal vectors in the TEXCOORD0 channel isn't a very bright idea. D'oh.
Anyway, with the new mesh generator additions and a skeleton project loader the engine size is up to 8028 bytes.