Greetings and salutations!
For this week's screenshots, a look at a room (more or less) finished in the week just past. It's one of the rooms on the upper level of the barrow-tomb, in which bodies were mummified for interment. It's long unused, but may yet have somewhat to share, nevertheless...
The room above was the main focus of the week just past--and it proved somewhat troublesome on two occasions. Let me elaborate:
Overall, the process was not without its bumps and mistakes, but for the most part they were nothing major.
Unsmoothing the Walls
The first significant stumble was centred around the walls. In Blender, all looked well, but once I imported the model into the game, I found that two of the walls--facing each other--seemed "smoother" than the others. Strangely, their normal maps seemed less effective than those on the other two walls: visible, but barely so.
After a fair bit of experimentation, I think that I have the source of the problem: the binormals (vectors used in normal mapping) were pointing in the same direction as the surface-normals.
It appears that this only shows up when I have the exporter use Panda3D to generate binormal- and tangent- vectors; when I have it use Blender, the problem seems to go away.
Thus, with a little bit of trouble, this appears to now be fixed! It's possible that I'll encounter a lurking bug later on (related to changes in how binormals are handled), but based on my impression of the issue I don't expect this to be difficult to fix if it does come up.
Under-(Frame-)Rated
On Friday, then (... well, technically on Saturday), I completed the room--albeit that it was perhaps not yet optimised.
But I had noticed that the game seemed to be running slowly, and so on Saturday I checked the frame-rate shown in the room. It ran at something between forty-five and fifty frames per second--not a frame-rate that I find acceptable, especially for so small a room! By comparison, in another room--larger, but not yet fully modelled and thus much more bare--the game ran happily at around eighty or ninety frames per second.
Thus I found the second major issue with the room, a problem to which most of Saturday was given.
I looked at the models. I ran performance tests, including via Panda3D's performance tool. I noted down various numbers produced by said performance tool, both for this room and for the aforementioned eighty-frame-per-second room. I looked at Panda's manual sections on performance tuning, and searched the Panda forum.
But it occurred to me that the problem might lie not in the game or engine, but in the drivers for my operating system. I use Ubuntu Linux, and while it generally performs well enough, I think that I have had problems at times.
So I built an installable version, and tried it under Windows--and the frame-rate was rather better there. It's not conclusive--I've made at least one other improvement to performance (see below)--but it may well be that my Linux graphics drivers simply aren't wonderful, or that I have a poor version of them.
Lined with Silver Shadows
However, a silver lining to this difficulty is that, as mentioned above, I made a separate performance gain: while attempting to deal with the abovementioned slowdown, an idea came to me that seems to have allowed me to significantly improve the performance of my shadows.
As this post is already somewhat long, I don't intend to go into details here, but the short version is that the shadow-casting cameras should now render the scene in a slightly less naive--but rather more simple--manner. It does mean that in some cases--such as ropes moving aside for the player--the shadows produced won't be accurate. However, I feel that this is an acceptable concession for the increase in performance.
As to the performance increase, the room in question went, I believe, from roughly forty-five frames per second to over sixty (under Ubuntu; higher under Windows).
I did discover a minor issue with the shadows--but it may be pre-existing, and may well be fixed when I come to tweak my shadows further, as I intend to do.
Finally, and once again, the above doesn't cover quite all of the changes and bug-fixes made this week!
That's all for this week--stay well, and thank you for reading! ^_^