123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- ----------------------------------------------------------------------------------------------------
- --
- -- Copyright (c) Contributors to the Open 3D Engine Project.
- -- For complete copyright and license terms please see the LICENSE at the root of this distribution.
- --
- -- SPDX-License-Identifier: Apache-2.0 OR MIT
- --
- --
- --
- ----------------------------------------------------------------------------------------------------
- g_screenshotOutputFolder = ResolvePath('@user@/Scripts/Screenshots/ParallaxTest/')
- Print('Saving screenshots to ' .. NormalizePath(g_screenshotOutputFolder))
- OpenSample('Features/Parallax')
- ResizeViewport(1600, 900)
- SelectImageComparisonToleranceLevel("Level I")
- -- Test with PDO off...
- SetImguiValue('Lighting/Auto Rotation', false)
- SetImguiValue('Lighting/Direction', DegToRad(110))
- SetImguiValue('Parallax Setting/Heightmap Scale', 0.05)
- SetImguiValue('Parallax Setting/Enable Pdo', false)
- IdleFrames(2)
- CaptureScreenshot(g_screenshotOutputFolder .. '/screenshot_1.png')
- -- Test alternate UV streams...
- -- Purpose of 2 shots
- -- First: regression test verifying using the 2nd UV is stable
- -- Second: diff test that compares UV0 (direct tangent) to UV1 (generated tangent), UV values are the same
- -- Because we don't have the ability to pick the image we want to compare so far,
- -- the expected image of the second test is copied from screenshot_1.png
- SetImguiValue('Parallax Setting/UV', "UV1")
- IdleFrames(2)
- CaptureScreenshot(g_screenshotOutputFolder .. '/screenshot_2ndUv_1.png')
- CaptureScreenshot(g_screenshotOutputFolder .. '/screenshot_2ndUv_2.png')
- SetImguiValue('Parallax Setting/UV', "UV0")
- -- Test with PDO on, also Plane rotated...
- SetImguiValue('Parallax Setting/Enable Pdo', true)
- SetImguiValue('Plane Setting/Rotation', DegToRad(45))
- IdleFrames(1)
- CaptureScreenshot(g_screenshotOutputFolder .. '/screenshot_2.png')
- -- Algorithm "Relief", also Directional Light at 120 degrees and uv parameters changed
- ArcBallCameraController_SetHeading(DegToRad(120))
- SetImguiValue('Parallax Setting/Algorithm', "Relief")
- SetImguiValue('Plane Setting/Center U', 0.8)
- SetImguiValue('Plane Setting/Center V', 0.4)
- SetImguiValue('Plane Setting/Tile U', 1.5)
- SetImguiValue('Plane Setting/Tile V', 1.8)
- SetImguiValue('Plane Setting/Offset U', 0.5)
- SetImguiValue('Plane Setting/Offset V', 0.6)
- SetImguiValue('Plane Setting/Rotation UV', 275)
- SetImguiValue('Plane Setting/Scale UV', 0.6)
- IdleFrames(1)
- CaptureScreenshot(g_screenshotOutputFolder .. '/screenshot_3.png')
- -- Algorithm Contact Refinement, also Directional Light at 240 degrees with uv parameters changed again
- ArcBallCameraController_SetHeading(DegToRad(240))
- SetImguiValue('Parallax Setting/Algorithm', "ContactRefinement")
- SetImguiValue('Plane Setting/Center U', -0.5)
- SetImguiValue('Plane Setting/Center V', -0.4)
- SetImguiValue('Plane Setting/Tile U', 0.9)
- SetImguiValue('Plane Setting/Tile V', 0.8)
- SetImguiValue('Plane Setting/Offset U', -0.8)
- SetImguiValue('Plane Setting/Offset V', -0.6)
- SetImguiValue('Plane Setting/Rotation UV', 138)
- SetImguiValue('Plane Setting/Scale UV', 1.6)
- IdleFrames(1)
- CaptureScreenshot(g_screenshotOutputFolder .. '/screenshot_4.png')
- -- Algorithm "POM", switch to Spot Light 0 degree, also Plate rotated again
- ArcBallCameraController_SetHeading(DegToRad(0))
- SetImguiValue('Lighting/Spot Light', true)
- SetImguiValue('Parallax Setting/Algorithm', "POM")
- SetImguiValue('Plane Setting/Rotation', DegToRad(135))
- IdleFrames(1)
- CaptureScreenshot(g_screenshotOutputFolder .. '/screenshot_5.png')
- -- Algorithm "Relief", also Spot Light rotated with uv parameters changed again
- ArcBallCameraController_SetHeading(DegToRad(120))
- SetImguiValue('Parallax Setting/Algorithm', "Relief")
- SetImguiValue('Plane Setting/Center U', -0.8)
- SetImguiValue('Plane Setting/Center V', -0.7)
- SetImguiValue('Plane Setting/Tile U', 1.1)
- SetImguiValue('Plane Setting/Tile V', 0.9)
- SetImguiValue('Plane Setting/Offset U', 0.3)
- SetImguiValue('Plane Setting/Offset V', 0.2)
- SetImguiValue('Plane Setting/Rotation UV', 125)
- SetImguiValue('Plane Setting/Scale UV', 0.3)
- IdleFrames(1)
- CaptureScreenshot(g_screenshotOutputFolder .. '/screenshot_6.png')
- -- Algorithm "Contact Refinement" Spot Light rotated again, with uv parameter changed again
- ArcBallCameraController_SetHeading(DegToRad(240))
- SetImguiValue('Parallax Setting/Algorithm', "ContactRefinement")
- SetImguiValue('Plane Setting/Center U', 0.1)
- SetImguiValue('Plane Setting/Center V', 0.6)
- SetImguiValue('Plane Setting/Tile U', 1.3)
- SetImguiValue('Plane Setting/Tile V', 1.2)
- SetImguiValue('Plane Setting/Offset U', -0.5)
- SetImguiValue('Plane Setting/Offset V', -0.3)
- SetImguiValue('Plane Setting/Rotation UV', 74)
- SetImguiValue('Plane Setting/Scale UV', 1.3)
- IdleFrames(1)
- CaptureScreenshot(g_screenshotOutputFolder .. '/screenshot_7.png')
- -- Test offset
- ArcBallCameraController_SetHeading(DegToRad(-135))
- ArcBallCameraController_SetPitch(DegToRad(-25))
- SetImguiValue('Lighting/Directional Light', true)
- SetImguiValue('Lighting/Direction', DegToRad(350))
- SetImguiValue('Parallax Setting/Heightmap Scale', 0.1)
- SetImguiValue('Parallax Setting/Offset', -0.1)
- IdleFrames(1)
- CaptureScreenshot(g_screenshotOutputFolder .. '/screenshot_8_offset.png')
- -- Test offset clipping
- ArcBallCameraController_SetPitch(DegToRad(-15)) -- Use a harsh angle as that could reveal artifacts we've seen in the past and fixed.
- SetImguiValue('Parallax Setting/Offset', 0.05)
- SetImguiValue('Parallax Setting/Show Clipping', true)
- IdleFrames(1)
- CaptureScreenshot(g_screenshotOutputFolder .. '/screenshot_9_offsetClipping.png')
- -- Testing a specific case where offset clamping was not calculated correctly, and clamped a bit below the surface instead of right on the surface.
- SetImguiValue('Parallax Setting/Offset', 0.06)
- SetImguiValue('Parallax Setting/Heightmap Scale', 0.1)
- SetImguiValue('Parallax Setting/Algorithm', "Steep")
- SetImguiValue('Parallax Setting/Show Clipping', true)
- CaptureScreenshot(g_screenshotOutputFolder .. '/screenshot_10_offsetClippingSteep.png')
- -- Test some different combinations that might result in divide-by-0 related crashes (which did happen at one point)
- SetImguiValue('Parallax Setting/Offset', 0.0)
- IdleFrames(1)
- SetImguiValue('Parallax Setting/Heightmap Scale', 0.01)
- IdleFrames(1)
- SetImguiValue('Parallax Setting/Heightmap Scale', 0.0)
- IdleFrames(1)
- SetImguiValue('Parallax Setting/Offset', 0.01)
- IdleFrames(1)
- SetImguiValue('Parallax Setting/Offset', -0.01)
- IdleFrames(1)
- ArcBallCameraController_SetPitch(DegToRad(0))
- IdleFrames(1)
- -- Testing a specific camera and light angle that caused almost all geometry to render as black
- OpenSample('Features/Parallax') -- Reset the sample
- SetImguiValue('Lighting/Auto Rotation', false)
- SetImguiValue('Lighting/Direction', 1.18682396)
- ArcBallCameraController_SetHeading(1.95481825)
- ArcBallCameraController_SetPitch(-0.169443831)
- ArcBallCameraController_SetDistance(6.000000)
- IdleFrames(1)
- CaptureScreenshot(g_screenshotOutputFolder .. '/screenshot_11_problematicAngle.png')
- OpenSample(nil)
|