Schein is an award-winning, puzzle platformer that tells the story of a father who enters a mystical swamp in desperate search of his son. As he becomes enveloped in darkness and begins to lose hope, a wisp named Irrlicht appears, offering him guidance and her magical power: a light that reveals hidden worlds.

  • View media
  • View media
  • View media
  • View media
  • View media
  • View media
Add media Report RSS Schein - The Shading Show
Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account:

Description

Posted in Engine Programming | Mar 13, 2013

 by Phil­ipp Schä­fer

In every one of my last arti­cles I tal­ked about shaders in some way. This time I deci­ded to make it the main topic. So what is so spe­cial about them? In short: they are the algo­rithms that define how our game data is visua­li­zed. If you want some spe­cial effects or just a dif­fe­rent than nor­mal light cal­cu­la­tion – there is no way around them.
I also men­tio­ned ren­der tar­gets. Ren­der tar­gets can be descri­bed as a non-visible screen in the gra­phic card which you can ren­der on. Those ren­der tar­gets can be stored in a tex­ture and be reu­sed in future ren­de­ring steps.
Both these tools enable not only total free­dom of the visual appearance of the game but are also good tools to modify the game’s GPU needs. They are fur­ther­more hel­pful to debug the beha­vior and data of the ren­de­ring.
To under­stand the power of these tools I’d like to pre­sent this collec­tion of ren­de­ring clips. In most cases there is just one option, line or para­me­ter out of the box.

The key to grea­ter shading is to see your tex­tures as more than a collec­tion of data. A com­mon use is bump map­ping, where the pro­per­ties of a sur­face are stored in a tex­ture. Typi­cally these methods are used to enhance rea­lism, whe­reas we star­ted to use them more and more to enhance fan­tasy …an example for this are our new trees in the red world, which have ani­ma­ted veins. Look out for them in our next Dev-Demo update!