123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- ----------------------------------------------------------------------------------------------------
- --
- -- 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
- --
- --
- --
- ----------------------------------------------------------------------------------------------------
- function SetupPointLights()
- SetImguiValue('AreaLightSample/LightType/Point', true)
- SetImguiValue('AreaLightSample/Position Offset', Vector3(0.0, 0.0, 0.0))
- SetImguiValue('AreaLightSample/Radius', 1.0)
- end
- function SetupDiskLights()
- SetImguiValue('AreaLightSample/LightType/Disk', true)
- SetImguiValue('AreaLightSample/Position Offset', Vector3(0.0, 0.0, 0.0))
- SetImguiValue('AreaLightSample/Radius', 1.0)
- SetImguiValue('AreaLightSample/X rotation', -1.5)
- SetImguiValue('AreaLightSample/Y rotation', -0.125)
- end
- function SetupCapsuleLights()
- SetImguiValue('AreaLightSample/LightType/Capsule', true)
- SetImguiValue('AreaLightSample/Position Offset', Vector3(0.0, 0.0, 0.0))
- SetImguiValue('AreaLightSample/Radius', 0.5)
- SetImguiValue('AreaLightSample/Capsule Height', 2.0)
- SetImguiValue('AreaLightSample/Y rotation', -3.25)
- SetImguiValue('AreaLightSample/X rotation', -0.75)
- end
- function SetupQuadLights()
- SetImguiValue('AreaLightSample/LightType/Quad', true)
- SetImguiValue('AreaLightSample/Position Offset', Vector3(0.0, 0.0, 0.0))
- SetImguiValue('AreaLightSample/Emit Both Directions', false)
- SetImguiValue('AreaLightSample/Quad Dimensions', Vector2(1.0, 3.0))
- SetImguiValue('AreaLightSample/X rotation', 1.4)
- SetImguiValue('AreaLightSample/Y rotation', -2.25)
- SetImguiValue('AreaLightSample/Z rotation', -0.25)
- SetImguiValue('AreaLightSample/Use Fast Approximation', false)
- end
- function SetupQuadLightsDoubleSided()
- SetImguiValue('AreaLightSample/LightType/Quad', true)
- SetImguiValue('AreaLightSample/Position Offset', Vector3(0.0, -0.5, -1.25))
- SetImguiValue('AreaLightSample/Emit Both Directions', true)
- SetImguiValue('AreaLightSample/Quad Dimensions', Vector2(1.5, 0.6))
- SetImguiValue('AreaLightSample/X rotation', -1.45)
- SetImguiValue('AreaLightSample/Y rotation', -0.5)
- SetImguiValue('AreaLightSample/Z rotation', 0.85)
- SetImguiValue('AreaLightSample/Use Fast Approximation', false)
- end
- function SetupPolygonLights()
- SetImguiValue('AreaLightSample/LightType/Polygon', true)
- SetImguiValue('AreaLightSample/Position Offset', Vector3(0.0, 0.0, 0.0))
- SetImguiValue('AreaLightSample/Emit Both Directions', false)
- SetImguiValue('AreaLightSample/Star Points', 5)
- SetImguiValue('AreaLightSample/Star Min-Max Radius', Vector2(0.5, 1.0))
- SetImguiValue('AreaLightSample/X rotation', 0.5)
- SetImguiValue('AreaLightSample/Y rotation', -0.25)
- SetImguiValue('AreaLightSample/Z rotation', 0.75)
- end
- function SetupPolygonLightsDoubleSided()
- SetImguiValue('AreaLightSample/LightType/Polygon', true)
- SetImguiValue('AreaLightSample/Position Offset', Vector3(0.0, -0.5, -1.25))
- SetImguiValue('AreaLightSample/Emit Both Directions', true)
- SetImguiValue('AreaLightSample/Star Points', 32)
- SetImguiValue('AreaLightSample/Star Min-Max Radius', Vector2(0.5, 0.75))
- SetImguiValue('AreaLightSample/X rotation', -1.45)
- SetImguiValue('AreaLightSample/Y rotation', -0.5)
- SetImguiValue('AreaLightSample/Z rotation', 0.85)
- end
- function SetupQuadLightsApprox()
- SetupQuadLights()
- SetImguiValue('AreaLightSample/Use Fast Approximation', true)
- end
- function SetupQuadLightsDoubleSidedApprox()
- SetupQuadLightsDoubleSided()
- SetImguiValue('AreaLightSample/Use Fast Approximation', true)
- end
- function VaryRoughnessOnly()
- SetImguiValue('AreaLightSample/Vary Metallic Across Models', false)
- SetImguiValue('AreaLightSample/Vary Roughness Across Models', true)
- SetImguiValue('AreaLightSample/Min Max Roughness', Vector2(0.0, 1.0))
- end
- function VaryRoughnessNonMetallic()
- VaryRoughnessOnly()
- SetImguiValue('AreaLightSample/Metallic', 0.0)
- end
- function VaryRoughnessMetallic()
- VaryRoughnessOnly()
- SetImguiValue('AreaLightSample/Metallic', 1.0)
- end
- function VaryMetallicOnly()
- SetImguiValue('AreaLightSample/Vary Roughness Across Models', false)
- SetImguiValue('AreaLightSample/Vary Metallic Across Models', true)
- SetImguiValue('AreaLightSample/Roughness', 0.5)
- SetImguiValue('AreaLightSample/Min Max Metallic', Vector2(0.0, 1.0))
- end
- g_screenshotOutputFolder = ResolvePath('@user@/Scripts/Screenshots/AreaLights/')
- Print('Saving screenshots to ' .. NormalizePath(g_screenshotOutputFolder))
- SelectImageComparisonToleranceLevel("Level E")
- OpenSample('Features/AreaLight')
- ResizeViewport(1600, 400)
- NoClipCameraController_SetPosition(Vector3(0.0, 0.0, 0.0))
- NoClipCameraController_SetFov(DegToRad(40.0))
- SetImguiValue('AreaLightSample/Count', 10)
- -- Make sure material / model has had a chance to load
- IdleSeconds(0.1)
- lightSetups =
- {
- point = SetupPointLights,
- disk = SetupDiskLights,
- capsule = SetupCapsuleLights,
- quad = SetupQuadLights,
- quad_double_sided = SetupQuadLightsDoubleSided,
- quad_approx = SetupQuadLightsApprox,
- quad_double_sided_approx = SetupQuadLightsDoubleSidedApprox,
- polygon = SetupPolygonLights,
- polygon_double_sided = SetupPolygonLightsDoubleSided,
- }
- materialSetups =
- {
- vary_rough_nonmetal = VaryRoughnessNonMetallic,
- vary_rough_metal = VaryRoughnessMetallic,
- vary_metal = VaryMetallicOnly,
- }
- -- Loop through all light setups and material setups taking screenshots.
- for lightName, lightSetupFunction in pairs(lightSetups)
- do
- lightSetupFunction()
- for materialName, materialSetupFunction in pairs(materialSetups)
- do
- materialSetupFunction()
-
- IdleFrames(1)
- CaptureScreenshot(g_screenshotOutputFolder .. '/' .. lightName .. '_' .. materialName ..'.png')
- end
- end
- OpenSample(nil)
|