Depth of Field test

Category:Test Scripts
==Purpose==
Test the functionality of the Depth of Field [DOF] render effect.
==Sources==
Depth_of_field
==Scope==
Video cards with OpenGL 3.0 or higher.
==Test Plan==
===Setup===
# Choose Me menu > Preferences.
# In the Preferences window, click Graphics tab.
# Click Advanced button to show additional options.
# If Lighting and Shadows is not a visible option, you'll need to get a viewer that includes the feature. See https://wiki.secondlife.com/wiki/Depth_of_field#How_can_I_see_the_depth_of_field_effect.3F
# Check Hardware skinning.
# Check Atmospheric shaders
# Check Lighting and Shadows
# Check Depth of Field
# Enable the Advanced menu (ctrl-alt-d)
# Open Advanced menu > Show Debug Settings
# Type in CameraFocalLength , set the value to 500 and hit enter. This will will accentuate the Depth of Field effect and make correctness testing easier.
===Avatar is always in focus when not alt-zooming or using flycam===
# Hit the escape key so nothing has focus.
# Put your cursor over the sky.
# Verify your avatar is in focus.
# Verify objects in the distant background are out of focus.
===Alt-zooming on something locks the DOF focus===
# Hold the Alt key and click an object
# Verify the object is now focused.
# Move your cursor over various objects.
# Verify the object the object you alt-zoomed on remains focused.
===DOF becomes stronger as you zoom closer to an object===
# Alt-zoom on an object while watching objects in the background.
# Verify object in the background become fuzzier as you zoom closer to the foreground object.
===DOF does nothing under water===
# Fly under water and verify the DOF effect is disabled.
===Media on a Prim looks sharp when focused===
# Alt-zoom on a media prim
# Verify the spot you alt-zoomed on looks sharp.
# Click the focus button on the media bar
# Verify the camera moves to point directly at the media the entire media face looks sharp.
===In mouselook, object behind the crosshair is focused===
# Enter mouselook mode by pressing the m key.
# Move your view around.
# Verify that whatever is behind the block cursor in the center of the screen is in focus.
# Exit mouselook mode by pressing the escape key.
===HUD attachments should be ignored===
# Attache a block to your HUD or wear any HUD attachments you own.
# Move your cursor over various objects.
# Verify your HUD object is always in focus.
===DOF should be off when in build/edit mode===
# Create a box
# Verify nothing is blurry because DOF has been disabled.
# Close the edit tools.
# Verify DOF has been enabled again.
=== Flycam Mode ===
* Flycam Mode requires a joystick or gamepad device. See https://wiki.secondlife.com/wiki/Flycam for setup instructions.
* Enable flycam mode so your camera roams free and no longer tracks your avatar.
==== Object under cursor gets focus in flycam mode ====
# Move your cursor over an object in world
# Verify object becomes in focus.
==== Specific point on object under cursors gets focus in flycam mode ====
# Move camera very near an object.
# Move cursor around on surface of object.
# Verify focus tracks mouse cursor "depth."
====Water within a region does get DOF focus in flycam mode====
# Teleport to some water that is within the boundary of a region.
# Move your cursor from your avatar to the water.
# Verify the water receives focus.
====if you hover your cursor over your nametag, your avatar should get focus in flycam mode====
# Move your cursor from a distant object to your nametag
# Verify your avatar becomes focused.
==== end of flycam mode test ====
Turn off flycam mode so your camera once again tracks your avatar.
===CameraFieldOfView===
* Open Advanced menu > Show Debug Settings, and type CameraFocalLength
* Click the "Reset to Default" button and verify this resets to 50.
* Open Advanced menu > Show Debug Settings, and type CameraFieldOfView
* Set CameraFieldOfView to 120.
* Verify the focal planes get closer together. ie. the depth of area that is in focus becomes narrower and far objects appear more out of focus.
* Click the "Reset to Default" button and verify this resets to 60.
===CameraFNumber===
* Open Advanced menu > Show Debug Settings, and type CameraFNumber
* Set it to 32, you'll have to really zoom in on an object before the background gets fuzzy.
* Set it to 4, background should be very fuzzy.
* Verify this resets to a default of 9.
===CameraFocalLength===
* Open Advanced menu > Show Debug Settings, and type CameraFocalLength
* the longer this is, the more narrow the depth of field is. This is used in combination with field of view to calculate the aspect ratio.
* 50mm is what you'd expect to see with 35mm camera
* 200mm is like a telescope
* 5 - 15mm would be like cell phone camera.
* test:
* 1 is basically no DOF
* 1000 is exaggerated DOF, like tilt-zoom
* Verify this resets to a default of 50.
===CameraFocusTransitionTime===
* Open Advanced menu > Show Debug Settings, and type CameraFocusTransitionTime
* Change value to 3
* Enter mouselook mode by pressing the m key.
* Move your cursor over a far away object
* Verify it takes 3 seconds for the object to become focused.
* Verify this resets to a default of 0.5s
===CameraMaxCoF===
* Open Advanced menu > Show Debug Settings, and type CameraMaxCoF
* Change value to 32
* Verify Blur "circles" reach a maximum size of 32 pixels.
* Verify this resets to a default of 10.0
===Objects with Transparency value of 100% allow right-clicks to pass through Unless it has a touch event.===
* Note: This is a functionality change in the viewer that supports DOF. Previously, right-clicks would not pass through 100% Transparent objects.
# Create 2 boxes.
# Set the Transparency of one box to 99% and the other to 100%
# Close the edit tools window.
# Attempt to right-click through the objects.
# Verify you can click through the object that is 100% transparent, but cannot click through the object that is 99% transparent.
# Add a default script to the 100% Transparent object.
# Attempt to right-click through the 100% Transparent object.
# Verify you can no longer click through the 100% Transparent object.
* does this break any transparent content that needs right clicking or left clicking?
* does it match up with the right click-thru of semitransparent textures. no.
===Objects with Transparency of 66% or lower will not affect the DOF effect behind them.===
# Set Advanced menu > Show Debug Settings > CameraFocalLength to 500 
# Create a 2x2x2m cube
# Set the cube's transparency to 66%.
# Close the edit tool and alt-zoom on the cube.
# Verify you see a DOF effect on the objects or ground behind the cube.
# Set the cube's transparency to 67%.
# Close the edit tool and alt-zoom on the cube.
# Verify everything appears fuzzy behind the cube.
----
Tests to add sometime:
Can different real-world cameras be simulated by plugging in the right FNumber and FocalLength numbers?