Later we added support for bone animation. We support all matrix transformations for rigid bodies like translation, rotation and scale. The blue and alpha channel might be used by the radial blur feature. The color in the velocity texture indicates the object motion.īlack is reserved for camera/no object motion. The following image illustrates how the red and green channel is used to define a motion vector (the circle represents the max velocity): The color in the velocity texture represents the motion vector direction and strength. Right: The same scene shown with the VisualizeTexture console command. Left: Rotating blades as seen in the game. The data in this texture can be seen when using the VisualizeTexture console command: For object motion blur we compute the vector per pixel by rendering the geometry of all motion blurred objects (small objects and slowly moving objects are culled for performance reasons) into the so called velocity texture. The motion blur to affect mostly the outer areas of the screen, limit motion blur for critical game play cases, higher frame rate.įor camera motion blur the 2D motion vector can be computed on the fly way from the previous view matrix, the current view matrix and the pixel depth. In order to simulate this effect we would have to do proper eye tracking or simulate eye behavior (likely to fail in many cases). Normally the eye would focus on some interesting points in the image and follow them.įor the eye the motion blur would disappear. That is expected but might be not what the player likes to see. Note that rotating the player view results in motion blur. The alpha channel is white where full resolution is uses and black where the half resolution buffer with the blurred content is: You can see the full resolution image softly blends with half resolution motion blur image.įor debugging purpose you can look at the blend mask with the "visualizetexture" command. That also means we need to upscale the resulting image and we need to mask out the not motion blurred images where appropriate (very little image movement).Ī forward moving player perceives motion blur mostly near the image corners. Motion blur is usually a very subtle effect so approximations often give good results.įor better performance we generate the motion blurred image in half resolution in a pre pass to the uber post processing pass. As the method only can operate with the provided scene image data not all effects can be reproduced. when the camera follows a moving object with similar speed). Doing motion blur in half resolution helps performance and also further hides using only a few texture lookups.įurther technical topics: MotionBlurSkinning MotionBlurSoftEdgeĪs we properly add the two types of motions together we also can see the effect of reduced motion blur when the movements align (e.g. averaging 5 texture lookups can appear as 5 ghost images) we limit the maximum screen velocity. To avoid the appearance of multiple images (e.g. We generate the motion blurred image by averaging a few texture lookups. This is blended with the full resolution scene image to keep the image resolution high where needed. A following half resolution post process uses this information to generate a half resolution motion blurred image. This information is updated each frame and stored in the intermediate velocity texture. For the object motion we generated a 2D velocity vector for each screen pixel. The motion blur post process we implemented features camera motion blur and object motion blur. Motion blur is mostly visible in movie like frame rate (20 - 30) and on screen shots. In the human eye motion blur is perceived because the sensors in the human eye also have some reaction over time (the image fades over time). Because of that fast moving objects appear blurred. In cameras the shutter is open for a short period of time to give light to the film media. Motion blur is a effect seen in still images and movies.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |