per-pixel shader based instead of simple rays