Jump to content
  • Advertisement
  • entries
    422
  • comments
    1540
  • views
    490099

Rendering Pipeline Part 2

Sign in to follow this  
jollyjeffers

119 views

As mentioned in the comments for my previous entry, I didn't add a shadow-filtering step. Click here to see the updated version.

Now, with reference to the previous model of a single light source I'm going to cover this next diagram:


(Click To Enlarge)


Any decent 3D scene will have more than one light, and it's via the above mechanism that I intend to achieve this.

Each of the "Render Light..." processes is an instance of the previous diagram. Given that I suggested a single light could take upto 15mb of VRAM this could yield around 240mb of VRAM data for all lights to be enabled [lol]

When scaled up in this way, resources can definitely be shared. There needs to be 16 render targets to handle the results of each light source; but there need only be 1 (instead of 16) copies of the intermediary resources. This makes things a lot more resource friendly.

  • Screen_Width * Screen_Height * Texture_Format * 17
  • Screen_Width * Screen_Height * Depth_Format
  • Shadow_Width * Shadow_Height * Shadow_Format * 7

    So, for a 1024 * 768 display with 24bit Depth Buffer and a 64bit HDRI output we now have 112mb of rendering data instead of 240mb. Still a little high though!

    For those of you who are familiar with this stuff, a couple of hardware considerations have been made:

    1. I'm using HDRI, and most ATI hardware doesn't allow "native" additive blending; thus I've included it as a seperate process. Where appropriate this can be implemented using native features.

    2. With respect to the ATI hardware and general SM2 stuff, I can only (in a single pass) combine 16 textures. Therefore 16 lights. I could do a multi-pass combination, but I'm pretty sure 16 lights should be sufficient for 99.9% of uses.
  • Sign in to follow this  


    0 Comments


    Recommended Comments

    There are no comments to display.

    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now
    • Advertisement
    ×

    Important Information

    By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

    We are the game development community.

    Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

    Sign me up!