Today's post will detail in relatively chronological order the last development session and updates resulting from it and another task I did in parallel: model a brand new metal cooking pot! As I said last time, modelling turned out to be very expensive even with such simple meshes that I need, so I'll have to supplement the outsourced meshes with my own or risk to be stalled development wise, waiting on meshes. I'll try to add two meshes per week, one outsourced, one made by me.
I started by updating the engine boot up process and now for the first time, if the engine can't find the bare minimum resources to run, it will fail gracefully and give you a message box, instead of crashing.
Then I modeled the metal pot. After I was done with a fair looking version, I introduced it into the engine. This helped me test the GUI in a real life scenario and I fixed a bunch of bugs and made minor improvements. Then I updated the importer and made it much more flexible. If your input mesh has position, normals and UV coordinates, it can be imported. The missing parameters can be generated. The generation was done in the past, but the engine would still refuse meshes that didn't have all the necessary attributes, even if they would be regenerated as soon as the import was done.
This is how the mesh looked in game:
The general shape is good, but the shading is not great. I experimented some with other kinds of shading:
The handles here have flat shading. Then I tried to add some loop cuts to the handles and use smooth shading, but the results are disappointing, yet the model is more complex:
Then I textured it:
OK, maybe it is too large:
Finally, I went with a counter-intuitive shading scheme that still gave better results, but they are based on compromise:
Here is a larger and more quality render:
OK, I"m done with it!
Only kidding. There is a lot more to go. I tried some AO:
I tried another texture and experimented further with AO:
OK, this is the final result:
I also updated the model editor with a zoom bar. I still need to make it auto-detect a reasonable zoom level, but it works manually well:
And I updated the category selection options with a new filter for clutter objects.
The updated model editor is a good tool because it helped me track down some bugs I introduced in rendering in the last snapshot.
I tried to make the mesh import completely dynamic, without the need of XNA projects, but this turned out to be problematic dependency wise. I'm afraid the mesh importer will need to be an external windows application used only to import meshes. After this is done you can use the in-game editors for everything else.
Next step will be to implement static persistence and then use the new meshes that I have for some static cluttering. While most physics entities will be dynamic, some will remain static. Most columns will actually be completely static, and maybe even pots on top of fireplaces.