Home Artists Posts Import Register

Content

Hey, here's a quick overview of the progress this week!

Decals

I'm currently working on implementing a decal system, based on an algorithm described in the Wolfire blog:  http://blog.wolfire.com/2009/06/how-to-project-decals/ 

Technically there are faster and easier ways to implement decals, like deferred decals, but the mesh-based version has the advantage that it can be easily exported to the Cycles renderer (as well as Blender). The downside is that it's too slow to be used for placing decals in real-time on complex meshes (like a blood splatter on a player character when shot), but for offline rendering purposes I think this is the better option.

The main reason why I needed a decal system in the first place is to properly support eyeballs of Source Engine models. Most modern Engines and modelling programs just use a mesh for the eyeball (including the iris), which rotates according to whatever the character is looking at, but in Source the eyeball itself is actually a static mesh and the iris is simply projected as a decal onto it. I'm not sure why they went this route, but my goal is to support both versions.

The decal system is currently just a quick proof-of-concept I wrote in Lua, I still have to make some adjustments and implement it properly, but that's the easy part. I should be able to get it all up and running in the next few days!


Improved indoor map lighting with Cycles

I've made some more tweaks on the light value conversion from Source to Cycles for spot- and point-lights. There's still a bit of room for improvement, but it matches the original much more closely now:


Some of the other changes include:

• Massively improved performance for maps with a lot of physics props.

There were a few issues that caused physics props to never go to sleep and always be included in networking snapshots. Those are now resolved, which increases performance on maps with a lot of physics props immensely!

• There were some issues with Source Engine models that had several bodygroups with the same name (which Pragma doesn't allow), as well as some models where the materials of the meshes would be mixed up after the conversion. If you've had issues like this, it should be fixed with the next update!

• Some improvements on the conversion from Source Engine assets to PBR:

Previously the surfaceprop of a material/model was taken into account to determine whether or not a material was a metal. I've changed it so that each surfaceprop type now includes a proper metalness/roughness value:

(I've taken the actual metalness/roughness values from sources like Quixel, so they should be accurate). 

Effectively this means that as long as the surfaceprop is defined for a material (or a model using that material), the material should look a little more physically accurate now.


I still want to finish the implementation for the eyeballs before I publish the new update (although some of the changes I've mentioned are already included in the latest version), but that should be ready very soon! Unless something unexpected comes along, I'll continue working on the interface after that!


Have a great weekend! :)

Files

Comments

No comments found for this post.