Optical Flow / Normal Maps
Launchpad is a platform for other shaders of our collection to build upon, and thus is necessary for e.g. RTGI and ReLight. It squares away repetitive calculations and helps free up resources for other shaders to work with. Launchpad will not cause any graphical changes on its own, but it is essential for other shaders to function.
What does Launchpad do?
Generate Normal Maps
Normal Vectors are required for every lighting effect. As ReShade lacks a generic way of accessing the game’s own normal vectors, we have to improvise. Luckily, they can be derived from depth values.
Unfortunately, vital information like smoothing groups and normal map textures are lost in this process. Launchpad re-smoothens normal maps and automatically generates fake surface relief. In practice, this works out well and solves most problems of depth-only normal maps.
Optical Flow
Lighting effects often defer calculations over several frames to save performance. To reuse previous frames, objects must align with the current frame. Any movement has to be corrected for using motion vectors.
Again, ReShade has no generic way to access the game’s motion vectors, and it might not even have any. As such, we perform a sophisticated optical flow algorithm to calculate the motion from one frame to the next.
Create once, use multiple
Creating these resources once improves performance and VRAM footprint. But not only that – we can afford to use more complex algorithms to produce them.
Launchpad contains the most sophisticated optical flow algorithm for ReShade, and its normal map calculation and filtering method is the only one of its kind.
Results
Leveraging Launchpad’s improved normal map options on RTGI greatly improves the perceived detail and helps ground the effect in the scene.
The Optical Flow vectors generated by Launchpad visualized over a game scene. Hue indicates direction, length of streaks indicates magnitude of the vectors.