12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- ----------------------------------------------------------------------------------------------------
- --
- -- 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/DynamicMaterialTest/')
- Print('Saving screenshots to ' .. NormalizePath(g_screenshotOutputFolder))
- OpenSample('RPI/DynamicMaterialTest')
- ResizeViewport(1024, 768)
- -- We need to lock the frame time to get deterministic timing of the screenshots for consistency between runs
- LockFrameTime(1/10)
- function SetDefaultLatticeConfiguration()
- NoClipCameraController_SetPosition(Vector3(10., -10, 20))
- NoClipCameraController_SetHeading(DegToRad(0))
- NoClipCameraController_SetPitch(DegToRad(-30))
- SetImguiValue('##LatticeWidth', 5)
- SetImguiValue('##LatticeHeight', 5)
- SetImguiValue('##LatticeDepth', 5)
- end
- function TakeScreenshotSeries(filenamePrefix)
- SelectImageComparisonToleranceLevel("Level H")
- -- There could be variation in how long prior activities took so reset the clock for each series of screenshots
- SetImguiValue('Reset Clock', true)
- IdleFrames(1) -- Consume ImGui changes, to ensure the clock is reset before pausing
- -- Note we pause while taking the screenshot so that IO delays won't impact the timing of the sample
- SetImguiValue("Pause", true)
- IdleFrames(1) -- Give extra time to make sure any material changes are applied, especially in case an asset hot-load causes the material to reinitialize itself.
- CaptureScreenshot(g_screenshotOutputFolder .. filenamePrefix .. '_A.png')
- SetImguiValue("Pause", false)
- -- Let the animation run for 1 second
- IdleSeconds(1.0)
- SetImguiValue("Pause", true)
- IdleFrames(1) -- Give extra time to make sure any material changes are applied, especially in case an asset hot-load causes the material to reinitialize itself.
- CaptureScreenshot(g_screenshotOutputFolder .. filenamePrefix .. '_B.png')
- SetImguiValue("Pause", false)
- end
- SetDefaultLatticeConfiguration()
- TakeScreenshotSeries("01_defaultsetup")
- NoClipCameraController_SetPosition(Vector3(22, -25, 30))
- NoClipCameraController_SetHeading(DegToRad(0))
- NoClipCameraController_SetPitch(DegToRad(-9))
- SetImguiValue('##LatticeWidth', 10)
- SetImguiValue('##LatticeHeight', 10)
- SetImguiValue('##LatticeDepth', 6)
- TakeScreenshotSeries("02_manyentities")
- SetDefaultLatticeConfiguration()
- SetImguiValue('Lua Functor Test Material', true)
- TakeScreenshotSeries("03_luafunctor")
- IdleFrames(1) -- Avoid a "Not all scripted ImGui actions were consumed" error message for the last "Pause" command
- UnlockFrameTime()
- OpenSample(nil)
|