mirror of
https://github.com/id-Software/DOOM-3-BFG.git
synced 2025-03-15 07:00:58 +00:00
Added some PBR intrinsic images
This commit is contained in:
parent
79b67ac310
commit
9823d989c8
3 changed files with 72 additions and 1 deletions
|
@ -548,6 +548,7 @@ public:
|
|||
idImage* alphaNotchImage; // 2x1 texture with just 1110 and 1111 with point sampling
|
||||
idImage* whiteImage; // full of 0xff
|
||||
idImage* blackImage; // full of 0x00
|
||||
idImage* cyanImage; // cyan
|
||||
idImage* noFalloffImage; // all 255, but zero clamped
|
||||
idImage* fogImage; // increasing alpha is denser fog
|
||||
idImage* fogEnterImage; // adjust fogImage alpha based on terminator plane
|
||||
|
@ -577,6 +578,8 @@ public:
|
|||
idImage* hierarchicalZbufferImage; // zbuffer with mip maps to accelerate screen space ray tracing
|
||||
idImage* imguiFontImage;
|
||||
|
||||
idImage* chromeSpecImage; // only for the PBR color checker chart
|
||||
idImage* plasticSpecImage; // only for the PBR color checker chart
|
||||
idImage* brdfLutImage;
|
||||
idImage* defaultUACIrradianceCube;
|
||||
idImage* defaultUACRadianceCube;
|
||||
|
|
|
@ -136,6 +136,60 @@ static void R_BlackImage( idImage* image )
|
|||
TF_DEFAULT, TR_REPEAT, TD_DEFAULT );
|
||||
}
|
||||
|
||||
static void R_CyanImage( idImage* image )
|
||||
{
|
||||
byte data[DEFAULT_SIZE][DEFAULT_SIZE][4];
|
||||
|
||||
for( int x = 0; x < DEFAULT_SIZE; x++ )
|
||||
{
|
||||
for( int y = 0; y < DEFAULT_SIZE; y++ )
|
||||
{
|
||||
data[y][x][0] = byte( colorCyan.x * 255 );
|
||||
data[y][x][1] = byte( colorCyan.y * 255 );
|
||||
data[y][x][2] = byte( colorCyan.z * 255 );
|
||||
data[y][x][3] = byte( colorCyan.w * 255 );
|
||||
}
|
||||
}
|
||||
|
||||
image->GenerateImage( ( byte* )data, DEFAULT_SIZE, DEFAULT_SIZE, TF_DEFAULT, TR_REPEAT, TD_DIFFUSE );
|
||||
}
|
||||
|
||||
static void R_ChromeSpecImage( idImage* image )
|
||||
{
|
||||
byte data[DEFAULT_SIZE][DEFAULT_SIZE][4];
|
||||
|
||||
for( int x = 0; x < DEFAULT_SIZE; x++ )
|
||||
{
|
||||
for( int y = 0; y < DEFAULT_SIZE; y++ )
|
||||
{
|
||||
data[y][x][0] = 0;
|
||||
data[y][x][1] = 255;
|
||||
data[y][x][2] = 255;
|
||||
data[y][x][3] = 255;
|
||||
}
|
||||
}
|
||||
|
||||
image->GenerateImage( ( byte* )data, DEFAULT_SIZE, DEFAULT_SIZE, TF_DEFAULT, TR_REPEAT, TD_SPECULAR_PBR_RMAO );
|
||||
}
|
||||
|
||||
static void R_PlasticSpecImage( idImage* image )
|
||||
{
|
||||
byte data[DEFAULT_SIZE][DEFAULT_SIZE][4];
|
||||
|
||||
for( int x = 0; x < DEFAULT_SIZE; x++ )
|
||||
{
|
||||
for( int y = 0; y < DEFAULT_SIZE; y++ )
|
||||
{
|
||||
data[y][x][0] = 0;
|
||||
data[y][x][1] = 0;
|
||||
data[y][x][2] = 255;
|
||||
data[y][x][3] = 255;
|
||||
}
|
||||
}
|
||||
|
||||
image->GenerateImage( ( byte* )data, DEFAULT_SIZE, DEFAULT_SIZE, TF_DEFAULT, TR_REPEAT, TD_SPECULAR_PBR_RMAO );
|
||||
}
|
||||
|
||||
static void R_RGBA8Image( idImage* image )
|
||||
{
|
||||
byte data[DEFAULT_SIZE][DEFAULT_SIZE][4];
|
||||
|
@ -877,6 +931,7 @@ void idImageManager::CreateIntrinsicImages()
|
|||
defaultImage = ImageFromFunction( "_default", R_DefaultImage );
|
||||
whiteImage = ImageFromFunction( "_white", R_WhiteImage );
|
||||
blackImage = ImageFromFunction( "_black", R_BlackImage );
|
||||
cyanImage = ImageFromFunction( "_cyan", R_CyanImage );
|
||||
flatNormalMap = ImageFromFunction( "_flat", R_FlatNormalImage );
|
||||
alphaNotchImage = ImageFromFunction( "_alphaNotch", R_AlphaNotchImage );
|
||||
fogImage = ImageFromFunction( "_fog", R_FogImage );
|
||||
|
@ -929,7 +984,9 @@ void idImageManager::CreateIntrinsicImages()
|
|||
|
||||
imguiFontImage = ImageFromFunction( "_imguiFont", R_CreateImGuiFontImage );
|
||||
|
||||
brdfLutImage = globalImages->ImageFromFunction( "_brdfLut", R_CreateBrdfLutImage );
|
||||
chromeSpecImage = ImageFromFunction( "_chromeSpec", R_ChromeSpecImage );
|
||||
plasticSpecImage = ImageFromFunction( "_plasticSpec", R_PlasticSpecImage );
|
||||
brdfLutImage = ImageFromFunction( "_brdfLut", R_CreateBrdfLutImage );
|
||||
// RB end
|
||||
|
||||
// scratchImage is used for screen wipes/doublevision etc..
|
||||
|
|
|
@ -2512,6 +2512,17 @@ void idMaterial::ParseMaterial( idLexer& src )
|
|||
newSrc.FreeSource();
|
||||
continue;
|
||||
}
|
||||
// RB: rmaomap for stage shortcut
|
||||
else if( !token.Icmp( "rmaomap" ) || !token.Icmp( "reflectionmap" ) || !token.Icmp( "pbrmap" ) )
|
||||
{
|
||||
str = R_ParsePastImageProgram( src );
|
||||
idStr::snPrintf( buffer, sizeof( buffer ), "blend rmaomap\nmap %s\n}\n", str );
|
||||
newSrc.LoadMemory( buffer, strlen( buffer ), "rmaomap" );
|
||||
newSrc.SetFlags( LEXFL_NOFATALERRORS | LEXFL_NOSTRINGCONCAT | LEXFL_NOSTRINGESCAPECHARS | LEXFL_ALLOWPATHNAMES );
|
||||
ParseStage( newSrc, trpDefault );
|
||||
newSrc.FreeSource();
|
||||
continue;
|
||||
}
|
||||
// normalmap for stage shortcut
|
||||
else if( !token.Icmp( "bumpmap" ) || !token.Icmp( "normalmap" ) )
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue