A little update - Progressions

posted in The Cuboid Zone
Published September 04, 2014
Advertisement
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!
1 likes 3 comments

Comments

dsm1891

that be lovely lighting

September 04, 2014 04:31 PM
Migi0027

well thanks you! :)

September 04, 2014 05:36 PM
cozzie

Nice!!!! Looking forward to a realtime demo I can run myself.

Anything planned?

September 04, 2014 07:24 PM
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Advertisement