The Blog

[Progress Update] BRDF’s, Cell Shading, DirectX 10, Windows x64, and More

Although I have not posted any updates for a while I am no slouch.  Of course given my .MAP tutorials that are still in progress it is clear that I am still working.  But that is really only the tip of the iceberg.

I left DirectX 10 behind long ago but have recently been catching it up.  I am already 50% of the way through getting full DirectX 10 support, after which full DirectX 11 support will soon follow.

I haven’t had time to revamp my previous .MAP tutorials with images for clarity nor the time to write the next tutorial, but I have already made several tools and another converter for .VMF files.  I have successfully loaded Half-Life levels and divided them into rooms ready for portal generation.  Once my tutorials are complete, you too will be able to load Half-Life, Portal, Day of Defeat, and Team Fortress 2 maps into your own custom engines, complete with collision detection and PVS-based rendering for performance.

I finally got an iOS device of my own and heavily optimized the engine for it.  With full post-processing and a very detailed model at 25,000 polygons with some normal-mapping I get a steady 59 FPS.

But the star of this update is the new graphics.  L. Spiro Engine now supports physically-based rendering as an alternative to standard Blinn-Phong shading, allowing for very high levels of realism.  And I am far from stingy on the sample images this time.

The first few are using Cook-Torrance for specular and Oren-Nayar for diffuse.



The next few are using Ashikhmin-Shirley.

Native support for toon/cell shading has been added as well.


Of course, shaders are fully exposed so users of the engine will be able to make any lighting models they desire.  These are just the natively built-in models, and more are to come.


You may have noticed the Aero Theme on the images.  Since I have been working on the DirectX 10 side I have been using 64-bit Windows 7.  L. Spiro Engine compiles with 0 warnings in both x86 and x64 (and only 6 warnings in GCC for iOS) and runs equally well on all platforms.  There are currently no known bugs or issues on any supported platform.  I go pretty far out of my way to ensure a clean build and a smooth run-time.


I may not update as often as I would like, but the project is moving forward quite rapidly.  In only a few days I will also have reflections to show and maybe full support for DirectX 10, all while continuing to make progress on loading .MAP and .VMF files.



L. Spiro

About L. Spiro

L. Spiro is a professional actor, programmer, and artist, with a bit of dabbling in music. || [Senior Core Tech Engineer]/[Motion Capture] at Deep Silver Dambuster Studios on: * Homefront: The Revolution * UNANNOUNCED || [Senior Graphics Programmer]/[Motion Capture] at Square Enix on: * Luminous Studio engine * Final Fantasy XV || [R&D Programmer] at tri-Ace on: * Phantasy Star Nova * Star Ocean: Integrity and Faithlessness * Silent Scope: Bone Eater * Danball Senki W || [Programmer] on: * Leisure Suit Larry: Beach Volley * Ghost Recon 2 Online * HOT PXL * 187 Ride or Die * Ready Steady Cook * Tennis Elbow || L. Spiro is currently a GPU performance engineer at Apple Inc. || Hyper-realism (pencil & paper): || Music (live-played classical piano, remixes, and original compositions):

2 Awesome Comments So Far

Don't be a stranger, join the discussion by leaving your own comment
  1. Tiago Costa
    June 17, 2012 at 6:46 AM #

    Nice progress!

    When you say the engine now supports physically-based rendering what features are you talking about? Is it just different BRDFs (shading models) or something else?

    • L. Spiro
      June 17, 2012 at 11:16 AM #

      Thank you.
      It is basically a few BRDF’s whose parameters are physically plausible in that they conserve energy and are reciprocal. Not all BRDF’s and not all parameters for some BRDF’s fall into this category. Technically my engine does not enforce that you stay within these constraints yet, but once I have a material editor I will be able to add some optional forced constraints for those who do want to make sure their lighting is physically plausible.

      L. Spiro

Leave a Comment

Remember to play nicely folks, nobody likes a troll.