Got the standard Ray marching algorithm with TransferFunction working correctly! Turns out I was using the vertex position rather than the step position to lookup the color values, so nothing was accumulating properly!