French Registered User
Join Date: Aug 2016
Location: France
Posts: 333
|
Quote:
Originally Posted by lansing
Oh gosh, please just simply number your test scripts, no one cares about what they call.
For the ringing problem, you'll need to go with some higher end resizer like nnedi3.
And it's pretty clear now that adding a shader on top gives the best visual effect for these retro games. As the main problems with these low resolution images are the pixelated diagonal lines and the lack of texture when upscaled, so you can't blur them because that will turn them into ugly color blocks. The vertical and gird shader looks like the answer here, as they both added fake details to "smooth" out the diagonal lines and added fake "textures" into the color blocks.
|
Oh gosh, please be nice and maybe a little more fun ! It's not more complicated with names than with numbers, because it follows a logic order. Besides, I think it's easier to recognize a script with a name
But thanks for the advice of the nnedi3 !
But I already used it, and it's not really an anti-ringing filter like MadVR uses The other problem is to begin a script with nnedi3. I never begin a script with this filter because the straight lines become distored. But it's true that it's good to clean the image
Otherwise, I just want to remind that I don't want scanlines or grids. Il will tell you why. It's because in the old times, even if we have these kinds of picture with the CRT display, it was always when we were close to the screen, but never at a certain distance. And personnally, I never glued my nose to the screen
So I think, this passion for the scanlines and grids are a bit too exagerated. To a certain distance, the old CRT displays delivered a normal and clean picture I think. I never had the souvenirs of having seen scanlines at this time.
But you can post your experimentations here. It's always interesting and I think it's the good subject for this Long live diversity !
Quote:
Originally Posted by raffriff42
Very clear description of why the shader effect looks good!
Which gives me an idea! Suppose we emulate the shader by - smoothly sizing to 1/4 or 1/2 of the final size, then pixel sizing the rest of the way (to retain some jagginess);
- de-registering the RGB colors slightly (to imitate the phosphor arrangement); and
- superimposing a black grid pattern?
I already have a grid pattern generator function, made years ago (part of an attempt to recreate NTSC dot crawl artifacts). The grids are not exactly like the shader grids, but they might be close "enough."
Code:
LoadPlugin("<path>\PointSize_x64.dll")
## (source RGB32)
xBRZ(2)
Org = Last
Org
GaussResize(1408, 1080, p=70)
ConvertToYV24
gridmask_square(2)
ConvertToRGB32
Trim(0, length=1)
Loop(Org.FrameCount)
Dots = Last
Org
GaussResize(1408/4, 1080/4, p=70)
PointResize(1408, 1080)
ShiftRedBlue(rx = -2, bx = +2)
Overlay(Dots, mode="darken", opacity=0.25)
Levels(0, 1.0, 255-64, 0, 255, coring=false)
ConvertToYV12(matrix="Rec709")
return Last
# https://forum.doom9.org/showthread.php?p=1803247#post1803247
##################################
### shift and/or resize Red and Blue relative to Green
##
## @ rx, ry, bx, by - "shift" red & blue position
## @ rxd, ryd, bxd, byd - "delta" width & height
##
function ShiftRedBlue(clip C,
\ float "rx", float "ry",
\ float "bx", float "by",
\ float "rxd", float "ryd",
\ float "bxd", float "byd")
{
Assert(C.IsRGB,
\ "ShiftRedBlue: source must be RGB")
rx = Float(Default(rx, 0))
ry = Float(Default(ry, 0))
bx = Float(Default(bx, 0))
by = Float(Default(by, 0))
rxd = Float(Default(rxd, 0))
ryd = Float(Default(ryd, 0))
bxd = Float(Default(bxd, 0))
byd = Float(Default(byd, 0))
C
return (C.IsRGB24)
\ ? MergeRGB(
\ ShowRed.Spline64Resize(Width, Height, -rx, -ry, Width-rxd, Height-ryd)
\ , ShowGreen
\ , ShowBlue.Spline64Resize(Width, Height, -bx, -by, Width-bxd, Height-byd)
\ )
\ : MergeARGB(
\ ShowAlpha
\ , ShowRed.Spline64Resize(Width, Height, -rx, -ry, Width-rxd, Height-ryd)
\ , ShowGreen
\ , ShowBlue.Spline64Resize(Width, Height, -bx, -by, Width-bxd, Height-byd)
\ )
}
## http://forum.doom9.org/showthread.php?t=170433
#######################################
### create a fixed pattern of dots.
function gridmask_square(clip C, int size)
{
C
return mt_logic(
\ mt_lutspa(mode="absolute", chroma="-128",
\ expr="x "+String(size)+" / pi * cos 108 * 126 + "),
\ mt_lutspa(mode="absolute", chroma="-128",
\ expr="y "+String(size)+" / pi * cos 108 * 126 + "),
\ "andn")
}
|
Thanks to share your ideas and your experimentations ! It's always very (very very) interesting and enriching !
But as I said to lansing, I don't want scanlines or grids, but I love to see the knowledge you share
Let's say that my idea is rather to rethink the original picture, imitate a kind of old feeling, but keep a maximum quality.
It's like a remastering the idea !
Last edited by SuperLumberjack; 18th April 2018 at 12:03.
|