nxdk_pgraph_tests
A collection of tests for the Xbox nv2a graphics processor
 
Loading...
Searching...
No Matches
LightingSpotlightTests Class Reference

#include <lighting_spotlight_tests.h>

Inheritance diagram for LightingSpotlightTests:
Collaboration diagram for LightingSpotlightTests:

Classes

struct  Spotlight
 

Public Types

typedef struct LightingSpotlightTests::Spotlight Spotlight
 

Public Member Functions

 LightingSpotlightTests (TestHost &host, std::string output_dir, const Config &config)
 
void Initialize () override
 Called to initialize the test suite.
 
void Deinitialize () override
 Called to tear down the test suite.
 
- Public Member Functions inherited from TestSuite
 TestSuite (TestHost &host, std::string output_dir, std::string suite_name, const Config &config)
 
const std::string & Name () const
 
virtual void SetupTest ()
 Called before running an individual test within this suite.
 
virtual void TearDownTest ()
 Called after running an individual test within this suite.
 
void DisableTests (const std::set< std::string > &tests_to_skip)
 
std::vector< std::string > TestNames () const
 
bool HasEnabledTests () const
 
void Run (const std::string &test_name)
 
void RunAll ()
 
void SetSavingAllowed (bool enable=true)
 

Additional Inherited Members

- Static Public Member Functions inherited from TestSuite
static void TagNV2ATrace (uint32_t num_nops)
 Inserts a pattern of NV097_NO_OPERATION's into the pushbuffer to allow identification when viewing nv2a traces.
 
- Protected Member Functions inherited from TestSuite
void SetDefaultTextureFormat () const
 
- Protected Attributes inherited from TestSuite
TestHosthost_
 
std::string output_dir_
 
std::string suite_name_
 
bool allow_saving_ {true}
 
std::map< std::string, std::function< void()> > tests_ {}
 
PGRAPHDiffToken pgraph_diff_
 
bool enable_progress_log_
 
bool enable_pgraph_region_diff_
 
uint32_t delay_milliseconds_between_tests_
 
std::shared_ptr< FTPLoggerftp_logger_
 

Detailed Description

Tests the behavior of spotlight falloff and attenuation settings.

The spotlight is placed at {0, 0, -7} (the camera position) pointing directly into the screen, with a maximum range of 15.f. A plane is rendered at {0, 0, 0}, and a cylinder at ~ {1, 1, 0}.

For the "At" prefixed tests, the attenuation factor of the light is adjusted. This factor should decrease the light intensity relative to the distance between the vertex and the light.

For the "Fo" prefixed tests, the falloff factor of the light is adjusted. This factor modifies how the intensity falls off in the zone between the penumbra (the outermost illuminated region) and the umbra (the region within which the light's full intensity is applied). Note that all pixels are still modified by attenuation, which is set to a constant value.

For the "PT" prefixed tests, the phi (penumbra) and theta (umbra) angles are set to various values, including some that would be prevented by DirectX.

See https://learn.microsoft.com/en-us/windows/uwp/graphics-concepts/attenuation-and-spotlight-factor

Member Typedef Documentation

◆ Spotlight

Member Function Documentation

◆ Deinitialize()

void LightingSpotlightTests::Deinitialize ( )
overridevirtual

Called to tear down the test suite.

Reimplemented from TestSuite.

◆ Initialize()

void LightingSpotlightTests::Initialize ( )
overridevirtual

Called to initialize the test suite.

Reimplemented from TestSuite.


The documentation for this class was generated from the following files: