Add a new port of crt-royale.fx (#3260)
- A new port of crt-royale. More faithful to original. It uses the same mask textures. - The only thing not ported is the original geometry pass. It was replaced by geom curvature code. - It's configured for 1080p displays. 4k displays need to adjust param mask_triad_size_desired from 3.0 to 4.0. OBS: It's up to you decide if the two versions should be maintained.
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
#ifndef USER_CGP_CONSTANTS_H
|
||||
#define USER_CGP_CONSTANTS_H
|
||||
|
||||
// IMPORTANT:
|
||||
// These constants MUST be set appropriately for the settings in crt-royale.cgp
|
||||
// (or whatever related .cgp file you're using). If they aren't, you're likely
|
||||
// to get artifacts, the wrong phosphor mask size, etc. I wish these could be
|
||||
// set directly in the .cgp file to make things easier, but...they can't.
|
||||
|
||||
// PASS SCALES AND RELATED CONSTANTS:
|
||||
// Copy the absolute scale_x for BLOOM_APPROX. There are two major versions of
|
||||
// this shader: One does a viewport-scale bloom, and the other skips it. The
|
||||
// latter benefits from a higher bloom_approx_scale_x, so save both separately:
|
||||
static const float bloom_approx_size_x = 320.0;
|
||||
static const float bloom_approx_size_x_for_fake = 400.0;
|
||||
// Copy the viewport-relative scales of the phosphor mask resize passes
|
||||
// (MASK_RESIZE and the pass immediately preceding it):
|
||||
static const float2 mask_resize_viewport_scale = float2(0.0625, 0.0625);
|
||||
// Copy the geom_max_aspect_ratio used to calculate the MASK_RESIZE scales, etc.:
|
||||
static const float geom_max_aspect_ratio = 4.0/3.0;
|
||||
|
||||
// PHOSPHOR MASK TEXTURE CONSTANTS:
|
||||
// Set the following constants to reflect the properties of the phosphor mask
|
||||
// texture named in crt-royale.cgp. The shader optionally resizes a mask tile
|
||||
// based on user settings, then repeats a single tile until filling the screen.
|
||||
// The shader must know the input texture size (default 64x64), and to manually
|
||||
// resize, it must also know the horizontal triads per tile (default 8).
|
||||
static const float2 mask_texture_small_size = 64.0.xx;
|
||||
static const float2 mask_texture_large_size = 512.0.xx;
|
||||
static const float mask_triads_per_tile = 8.0;
|
||||
// We need the average brightness of the phosphor mask to compensate for the
|
||||
// dimming it causes. The following four values are roughly correct for the
|
||||
// masks included with the shader. Update the value for any LUT texture you
|
||||
// change. [Un]comment "#define PHOSPHOR_MASK_GRILLE14" depending on whether
|
||||
// the loaded aperture grille uses 14-pixel or 15-pixel stripes (default 15).
|
||||
//#define PHOSPHOR_MASK_GRILLE14
|
||||
static const float mask_grille14_avg_color = 50.6666666/255.0;
|
||||
// TileableLinearApertureGrille14Wide7d33Spacing*.png
|
||||
// TileableLinearApertureGrille14Wide10And6Spacing*.png
|
||||
static const float mask_grille15_avg_color = 53.0/255.0;
|
||||
// TileableLinearApertureGrille15Wide6d33Spacing*.png
|
||||
// TileableLinearApertureGrille15Wide8And5d5Spacing*.png
|
||||
static const float mask_slot_avg_color = 46.0/255.0;
|
||||
// TileableLinearSlotMask15Wide9And4d5Horizontal8VerticalSpacing*.png
|
||||
// TileableLinearSlotMaskTall15Wide9And4d5Horizontal9d14VerticalSpacing*.png
|
||||
static const float mask_shadow_avg_color = 41.0/255.0;
|
||||
// TileableLinearShadowMask*.png
|
||||
// TileableLinearShadowMaskEDP*.png
|
||||
|
||||
#ifdef PHOSPHOR_MASK_GRILLE14
|
||||
static const float mask_grille_avg_color = mask_grille14_avg_color;
|
||||
#else
|
||||
static const float mask_grille_avg_color = mask_grille15_avg_color;
|
||||
#endif
|
||||
|
||||
|
||||
#endif // USER_CGP_CONSTANTS_H
|
||||
|
||||
Reference in New Issue
Block a user