» superphong
This site relies heavily on Javascript. You should enable it if you want the full experience. Learn more.


effect shading material light dx11
Credits: vux, dottore, catweasel


I present to you - the SuperPhong!

What started as a personal learning project grew into a multi purpose effect,
which combines lighting and material setup in one enormous shader.

Some Features:

  • Multiple Lights (Point, Direction, Spot)
  • Image Based Lighting with Cube Maps
  • Some PBR features
  • Energy Preserving Reflections
  • Box Projected Cube Mapping
  • Bump Mapping
  • Rim Refletions
  • Iridescence
  • Refraction with RGB dispersion
  • VSM Shadows supporting transparency
  • Much more

Everything should be spreadable as expected, so you can do the shading for a whole scene with this single effect.

Check out the girlpower for different usage scenarios.


superphong_1.3.zip - 08.04.17 [12:00 UTC] by mburk | 88 downloads
notes: Bugfixing / Refactoring Lights Module

other/older revisions

superphong_1.2.zip - 28.03.17 [22:52 UTC] by mburk | 59 downloads
notes: new model for light blending; noTile option
SuperPhong 1.1.zip - 17.02.17 [17:59 UTC] by mburk | 247 downloads
notes: added VSM Shadows, fixed some spreading issues, fixed alpha
superphong.zip - 06.11.16 [20:55 UTC] by mburk | 361 downloads

Noir 07/11/2016 - 00:21

Cool man

motzi 08/11/2016 - 00:44

this is beautiful! thanks a lot!

screamer 08/11/2016 - 17:13

wow, amazing shader, well done ;)

boplbopl 13/11/2016 - 00:05

very cool!

catweasel 22/11/2016 - 20:18


evvvvil 06/12/2016 - 03:50

that's fucking sick bruh!

seltzdesign 12/12/2016 - 12:32

Really like it! Is there a way to spread the texture transform? Right now it is always using the first slice of transforms for all instances of an object.

mburk 12/12/2016 - 15:58

the texture transform is currently not spreadable as it should be. will fix this in next update. for now you could use a TransformTexture effect to scale the textures per instance.

matka 09/02/2017 - 20:21

Does this work in 50beta35 64bit or did I miss something on the install?

mburk 09/02/2017 - 21:32

Should be working in 50beta35. The problem is DX11 1.0, because all Dynamic Buffers are set to "Dynamic" now. If you set them back to "Default" in the Inspector it shoud be working. There is a whole bunch in the light module.
Also, new version of Superphong will be out soon.

matka 09/02/2017 - 22:57

Ok, cheers. Looking forward to new version!

vux 10/02/2017 - 00:52

As a side note this has been fixed in 1.0.1 (which is in contrib page already)

mburk 10/02/2017 - 00:58

Cool, thanks for the quick fix!

u7angel 17/02/2017 - 22:22


graphicuserinterface 18/02/2017 - 09:49


Noir 18/02/2017 - 10:50


matka 20/02/2017 - 20:38

massive! thanks

robotanton 17/03/2017 - 16:36

Thank you!

mburk 28/03/2017 - 22:58

Version 1.2
The new version has a couple of changes. The light blending has been overhauled a bit. Now all the lights - image based lighting and phong lights - are treated the same way and reflections are blended with the fresnel term. This means, there is no RimLight anymore, but Global Reflection Color, Global Diffuse Color and Material Color. Also there is only one set of fresnel values for everything reflective. See girlpower for how it works. This should feel a lot more natural.
Also fixed some bugs and spreading problems.
Also new: No tiling mode. This avoids strong repitition of textures by using this code by Inigo Quilez: http://www.iquilezles.org/www/articles/texturerepetition/texturerepetition.htm


No Tiling
matka 08/04/2017 - 13:10

Thanks, great work!

eno 10/04/2017 - 17:43

This is a properly shaded teapot.

anonymous user login


~3h ago

joreg: @mediadog: indeed, fixed that!

~3h ago

mediadog: @microdee @joreg Aha! I had glanced at that list, but assignment was lurking beyond the scrollbar. Athankew!

~5h ago

joreg: first-come-first-serve tickets are now sold out except the "delegate" ones. others are still available from here: https://nodeforum.org/journal/node17-tickets/

~6h ago

~7h ago

microdee: @mediadog: default is set via assignment (equal sign)

~16h ago

mediadog: No default for effect parameters, just min and max?

~18h ago

microdee: regular *fcfs tickets for #node17 are already sold out, and non lowered regular ticket isn't available straight from main page

~2d ago

mediadog: @evvvvil Man if that was 10th I want to see 1-9. 4kb, insane!

~2d ago

evvvvil: @sinus, thankx a lot broh! LJ, guy from my group desire, won shader showdown :) couldn't enter as qualifiers were on Friday. Peace

~2d ago

sinus: @evvvvil: great!! nvscene shader live coding 666: https://www.youtube.com/watch?v=O-1zEo7DD8w