Skip to content
April 1, 2011 / racoonacoon

Growing Pains

One of the most fun things about computer effects is getting everything to play well with each other. This has the curious side effect of causing the developer to feel like the dazed parent attempting to keep order in a house of wild children. At least that is how I feel at times. Water was a bit more difficult to get implemented than I would have liked. Most of the problems boiled down to silly things such as not restoring render targets that were in use prior to the effect, or forgetting to use clip in the pixel shader to prevent the water from drawing over everything (since we are using the game’s main depth buffer we had to disable it, thus we don’t have a depth buffer to use and not clipping will just blindly render the water over stuff.) CJ and I were able to work through it though (mostly), and so we were able to get some basic water implemented.

I think CJ is planning to add in shading to it soon (and mayhaps reflections), so that should give it a bit more definition.

I have also been working on restructuring parts of Claudius to expect deferred shading. To be honest, the process so far hasn’t be so much hard as tedious. Much of the time has been spent on cleaning up nasty bits that shouldn’t have been there in the first place, fixing up designs so that classes are more in line with the rest of the system, and creating useful utility classes. Most of the changes are down to the fact that deferred shading  is a different paradigm than what Claudius was designed for, so it is forcing redesigns to the Mesh and other core classes. All the shaders also have to be rewritten to expect the deferred renderer. A plus to this is that the shaders will be much simpler, as most of the complex stuff now (a.k.a lighting) takes place on the Deferred Shader Post Process.

Besides that I have worked a bit on streamlining the process of moving a level from Blender to Claudius. It used to be (about three hours ago) a long and buggy process. The user would save the scene out as a .obj. They would then go and run a script to split that .obj into separate .obj files. After that was done they then had to run another script to convert the .objs into a format Claudius could understand. Finally, they had to copy and paste all those end files over to a Mesh folder so Claudius could load them in. If there was a problem with the level, all those steps had to be repeated.

It was very annoying! It was also very slow!

I decided to fix it this morning with a simple script that does all these things for you. You click on it, give it a folder path, and it will call these scripts in the background and do all the copy operations for you. It will save a ton of time I’m sure, as well as allow for quicker level iterations.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: