Please show off what crt shaders can do!

When you say ntsc-svideo 3 passes are you referring to actual passes or the the 3phase version of the s-video shader?

If 3 passes what passes are you using?

1 Like

By the way, usually when I say “cooler and less saturated”, this is what I mean. First image uncorrected (i.e. default fba output), second is. I recently got myself a 1440p monitor. I will keep playing at 720p on it for reasons already stated, but I must say RA looks glorious in such hi-res.

Oh and these are my current (likely definitive?) 720p-reshade-crt aperture settings for standalone emulators and games. They are resolution-agnostic, which while being very convenient for stuff like MAME, means that scanlines won’t be proportional to pixels sometimes. Other than that, what do you think, my knowledgeable friends?

7 Likes

Thank you! Yeah I figured if I’m gonna talk about something I’m making, I might as well try to make it appealing to the audience :slight_smile: … speaking of which, I haven’t done a PS1 game screenshot yet!

5 Likes

1440p shots look nice. A bit lacking in brightness, but looks good on my iPhone with the brightness maxed out.

Personally, the CRTs I’ve experienced had more saturated colors than that. The sets I’ve recently used either had decent comb filters or were RGB, though. Color saturation is never captured well in photos of CRTs.

1 Like

Yeah, personally the consumer CRT I have (flat screen non-hd model, meaning it doesn’t have an process ie. lag), is fairly saturated and has a noticeable glowy-ness to it. (Which I think go hand-in-hand in a CRT, imo.)

My model has component video input. (If this makes any difference, lol.)

EDITED: So it’s seems like an actual coherent thought, lol. (Note to self don’t post things half-asleep.)

@hunterk Could you please explain the difference between the ntsc 2-phase and 3-phase composite/svideo shaders, like what the visual difference is (could it be a quality difference)? Or is the difference something else?

1 Like

7 posts were split to a new topic: NTSC shader discussion

So, I decided to add halation to my shader. I’m not quite sure if I’m doing it right and if the performance hit is too steep yet, but here are some results (I apologize for the frame not being quite the same each time because RA unpauses whenever I leave the menu :frowning: :

Unshaded output:

Basic shader how it was before adding halation: Halation pass: Shader with halation enabled (final render):

3 Likes

Looks like halation to me, how adjustable is it?

Are you using one or two blur passes for the halation?

How are you implementing it into the shader?

I’m using a for loop to just spiral outward from the origin and accumulate samples, and just add it to the picture. I guess that would be one pass? The strength, radius and number of samples are adjustable :slight_smile: There’s also a debug parameter that only outputs the halation layer. Here’s the code (sorry it’s really messy since I’ve been … well messing with it all day :slight_smile: )

vec3 Halation(vec2 coords)
{
	/*
	 * #pragma parameter HALATION_INTENSITY "Halation Intensity" 0.6 0.0 1.0 0.1
	 * #pragma parameter HALATION_RADIUS "Halation Radius" 5.0 0.0 10.0 0.1
	 * #pragma parameter HALATION_SAMPLES "Number of Halation Samples" 20.0 0.0 100.0 1.0
	 * #pragma parameter HALATION_DEBUG "Halation Debug" 0.0 0.0 1.0 1.0
	 */
	vec2 dx     = vec2(global.SourceSize.z, 0.0);
    vec2 dy     = vec2(0.0, global.SourceSize.w);

	float intensity = params.HALATION_INTENSITY;
	float radius = params.HALATION_RADIUS;
	float samples = params.HALATION_SAMPLES * 2;

	float divider = 0.0;
	vec3 C = vec3(0.0, 0.0, 0.0);
	
	for( float i = samples/2; i < samples; i++)
	{
		divider += 1 / (i / samples);
		C += texture(Source, coords + vec2(radius * i / samples * cos(i) * PI / 8 * dx.x,
			radius * i / samples * sin(i) * PI / 8 * dy.y)).rgb / ( i / samples);
	}
	
	return C / divider * intensity;
}
1 Like

Ohh so it’s baked into the actual CRT shader (it’s not using its own shader for the effect, ie. Crt shader + halation shader)?

Ehh seems clean to me, I understand what you’re saying though.

I don’t really see any issue with how you’re doing halation, and the output image looked fine to me.

Could you possibly do a screen where it has alot of black (like a title screen, or some text over black) so we could see how the halation/bloom halo looks?

The halation looks good to me though, can’t say alot about without actually using it (tweaking settings).

Sure! This is with intensity 0.5, radius 6, samples 40, everything else disabled

And yeah maybe it could use a little more work. It’s still a little messy around a few edges :confused:

2 Likes

Yeah I see what you’re saying about the edges.

Though that said, the halo is pretty impressive, it’s really subtle. Like I had to zoom in and max my screen brightness on mobile to even see them.

That’s hard to accomplish imo, at least most shaders that include halation I’ve seen have issues or can’t even do that.

1 Like

Oh wow you’re right! It looks different on my phone since I adjusted it to look good on my laptop which has a garbage screen! Also, thank you! :smiley:

Edit: This might look more pronounced on a better screen. (But might be too bright without scanlines and adjustments)

2 Likes

The halos are more pronounced in this image but it’s still on the lower end of halos I’ve experienced via shaders.

All in all I think it’s going well, looking forward to you getting the edges fixed.

1 Like

I actually fixed the edges, it was a stupid typo that happened after I had copy pasted the code in here :stuck_out_tongue: . I boosted the max number of samples, and here’s everything at max settings

But honestly I think I like something a bit more subtle myself. Final results like these make me really happy. Of course, optimal settings might change from screen to screen :slight_smile:

4 Likes

Took a while, but the crt-guest-dr-venom got a GLSL update. Now it’s on pair with the new SLANG version. A notable change is also, that’s running higher resolution content without much speed loss.

11 Likes

Oh I wrote passes instead of phase, ntsc-pass1-svideo-3phase and ntsc-pass2-3phase to be precise.

2 Likes

Been waiting for this post right here. Thanks a million. I noticed on the slang version in the parameters the Slot Mask Width can be adjusted down to 1.00 but the glsl version only goes down to 2.00. You think you can also add that small tweak to the glsl version?

1 Like

Sure, NP. :grinning:

I also added a new interlace mode for 30fps content, plays very well with a smooth filter.

https://mega.nz/#!Qlp1UCxa!8yyPA2LQ16qxE18zg1ivpGN2o8iO9JO_ERps9BHvrCU

No hurrries with updating the repo, but it would be nice. :smiling_face_with_three_hearts:

The shader has grown a lot and small details can be overlooked.

Thanks again for reminding.

Just want to show how the new interlace mode looks with a 1 width slotmask.

The new interlacing mode looks very nice IMO, correct screenshots can also be made. :wink:

10 Likes

whew, that FF4 screenshot :exploding_head:

3 Likes