• Advertisement
  • entries
    29
  • comments
    99
  • views
    51231

A little update - Progressions

Sign in to follow this  

964 views

Pictures: (because thats why people are here).

PS. Im no artist, so this is programming art, and, some pictures are deliberately oversaturated, the vegetation looks to be different colors, as the diffuse textures are different. In the 3rd image the engine doesnt clear the depth nor normal textures, so artifacts occur, but in a complete environment there should be no "voids".

eyWzEeL.jpg
R9pb237.jpg
sl0mKQN.png

Some progression I've made over the months in my engine:

  • HDR Luminance Adaptation ( Pretty happy about this, the only problem is when the areas get too dark, but I'll think of something )
  • Improved Shadow mapping - Added PCF
  • Better BRDF support, had a few bugs and miscalculations, now vegetation actually looks like vegetation!
  • Better Tone Mapping Support ( Thanks MJP, your samples were a good guideline! )
  • Much better bloom, downsampling by 8 instead of 2, and much cheaper than before
  • Got some better SSAO in, although I'll re-implement it soon
  • Simple GUI
  • Skinned Animations

    Actually I spent a while on the adaptation part, because weird gradients were forming on the screen, turns out that a 2x1 texture for the adapted luminance map isnt a good idea, so I made the mip maps one layer deeper and woala, nice luminance map.

    And I'm currently working on:

    • Better GUI
    • Static poses from skinned animations
    • Complete Font Rendering ( Almost done )
    • Light Propagation Volumes ( Its like youre a kid with candy in your hands! )

      What I want to implement:

      • Everything!
      • Translucency
      • Subsurfacescattering
      • Destruction module for Physx
      • Apex particles, for some reason it crashes when I enable apex particles, no clue why, so I disabled it for now.

        What I still miss to implement from my old engine:

        • Produceal Lens Flares! ( I miss them )
        • Tessellation
        • In world debugging ( Like sphere visualizations for point lights and other debugging stuff )

          The gui framework works the same way all my materials does, the artist ( in this case me ) writes a simple shader file, such as:

          For a GUI Material:Some Code up here that the parser doesnt care aboutshader "Simple Diffuse"{ Properties() { Info = "Some info that the parser might care about"; } // Considered to be global, any input that the shader requires // On the native side the slot is fetched by pMat->GetSlot("box") input() { Texture2D box; Texture2D image; } pass() // You can have multi-pass materials { linker() { // In this stage you could send info from the vs to the ps, or from any stage to another } vertex() { // Any transform you'd like to take care off.. } pixel() { // Set Outlined Shape clip((box.Sample(ss, input.texcoord).a <= 0.5) ? -1 : 1); color = image.Sample(ss, input.texcoord); } }}
          For a general mesh, more complex:The parser still doesnt careshader "Simple Diffuse"{ Properties() { Info = "It might care about this..."; } // Considered to be global input() { Texture2D hex; } pass(cull = true; normalmap=true; roughnessmap=true;) // available properties: roughnessmap, normalmap, cull, cullmode, specularmap, dispacementmap, and some minor ones... When enabled, the material will support them. { pixel() { output.dffXYZTrA.xyz = hex.Sample(ss, input.texcoord).xyz; } // available shader stages: // vertex, pixel, domain, hull, geometry, linker ( special one ) // the geometry pass has its own properties, such as: // geometry(verticesout = 4; inputtopology = POINT/TRI..., outputtopology.... general geometry specific stuff ) }}
          And, well, thats it!
Sign in to follow this  


3 Comments


Recommended Comments

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