Greetings and salutations!
For this week's screenshots, a few images showing progress on the woodland surrounding the first level:
It's still a work-in-progress--note the lack of ground or undergrowth--but it's coming along, I do think. ^_^
Once again, most of the work done in the week just past was focussed on filling out the outdoors section of the first level, with various digressions into other matters:
First of all, I believe that I mentioned last week that I was having some trouble accessing data stored in extra UV-maps. This has been dealt with, thanks to help from the Panda3D forum! It appears that accessing the extra UV-maps calls for them to be associated with a texture--but that's not the solution that I'm using.
Instead, it turns out that there's an easier way, a means of essentially providing extra layers of vertex-colours. With some minor changes to the model-exporter that I use, I'm now able to store the data that I want in these additional layers, and access them in the relevant shader!
Speaking of shaders, I continued to work on the base "sunlight" shader. And in testing some changes, I discovered bugs in the shaders as applied to the prologue level, bugs that likely pre-dated the changes being tested. :/
It took some work, but I did find solutions to them in the end, I believe.
(I also discovered and fixed, I believe, a minor bug in how I calculated highlights in the sunlight shader.)
On the technical side, I've made steps, I believe, towards dealing with a long-standing problem. I believe that I've mentioned before that objects straddling the borders of the cells used for portal-culling are in a somewhat uncertain state: to which cell--if any--should they belong?
As I recall, I had previously decided to leave certain such objects outside of portal-culling, meaning that they would always be rendered, as long as they were within view. But I wasn't entirely happy with this. For one thing, while fine in the first level, in larger levels it potentially left a fair few objects to be always-rendered.
So, going by advice given on the Panda3D forum, I started in on a new approach in the week just past. It turns out that there are ways of giving a single object multiple "parent-nodes" in Panda3D, allowing me to attach objects on cell-borders to both cells. My method of doing so right now is simple: a tag attached to the object, naming its parent-cells. It's clunky, but it works.
There are still a few problems: The first is that such objects are rendered once per "parent", which is not ideal. It remains to be seen whether this will actually be a problem, however, and I have a potential solution in mind if it is. The second problem is that my current method results in at least one of those renderings being incorrectly placed. Once again, I'm seeking advice on the Panda3D forum regarding this.
Otherwise, as previously mentioned, a fair bit of work went into the level-geometry itself, and some of the scripting for the level. The woods are filling out, the stone pillars have their faded animal signs, and more besides.
Perhaps my favourite bit of this is a tree used for traversal near the back of the "courtyard". Up until now it's been a fairly basic model, just describing the related collision geometry. It has now been filled out to look like a tree (and some tweaks made to said collision geometry), and I actually find that it feels fun to climb! ^_^
(You should be able to see this tree near the bottom-right of the first screenshot above.)
As per usual, other changes were made that don't seem worth mentioning here!
That's all then for this week--stay well, and thank you for reading! ^_^