Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

MrFlibble

Members
  • Content count

    544
  • Joined

  • Last visited

About MrFlibble

  • Rank
    Member

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. MrFlibble

    Maps for FreeDoom

    Oh yes, maps made specifically to be played with Freed∞m. Haven't we been waiting for that? Thanks Datacore85, keep 'em coming!
  2. MrFlibble

    Doom2 Neural Upscale 2x

    It appears that the PhotoHallucination scaling is the primary source of the extra pixel-ish detail in the textures (the "standard technique" actually looks pretty bland IMO). However it is my understanding that this kind of functionality is originally intended for adding extra imaginary detail to resized photographs (e.g. Let's Enhance boasts that neural network hallucinating will add missing details to a photo) and when applied to textures it produces something that looks like output of one of Photoshop's artistic filters — somewhere in between a pencil sketch and a crayon drawing (admittedly, it looks very cool). Have you actually considered alternatives to achieve a similar effect, perhaps without any neural network processing altogether?
  3. MrFlibble

    Doom2 Neural Upscale 2x

    I suspected that the images you posted are not simply a result of processing with NVIDIA's neural network and have been post-processed. Can you describe in detail what you did and with what tools? In the meantime, I realised that so far I've been overlooking a setting in waifu2x called TTA (no idea what that means actually). By default it is set to 1 but higher settings supposedly yield better quality upscales at the cost of longer processing times. This is what I got by resizing the sprites 4x with TTA set to 4, then converting the image to the Doom palette with GIMP (no dithering) and scaling down to 2x with nearest neighbour: This is zoomed up 2x using nearest neighbour for better visibility, original sized image below: The sprites were originally against a solid grey background. I applied Gaussian blur at 2 pixel radius, then pasted the original unblurred sprites over this, to protect their edges.
  4. MrFlibble

    Doom2 Neural Upscale 2x

    Yes, I did a couple of textures to compare with the ones made by hidfan: https://imgur.com/a/8bb0gIX https://imgur.com/a/GkqB3dK All textures zoomed 2x with nearest neighbour. In each set, the top image is GameWorks 2x as posted by hidfan, the middle is waifu2x smoothed by xBRZ, first scaled to 4x, applied the Rock filter and then scaled to 2x with Sinc3, and the bottom is pure xBRZ to 4x, applied the Rock filter and scaled to 2x with Sinc3. As far as I can tell the Rock filter is some kind of emboss effect, as a result you'll notice slight a shift to the right when comparing the textures. Perhaps a more subtle emboss effect in another editing programme (e.g. GIMP) would sharpen accentuate the edges the same way without this shift but I haven't tried anything like this yet.
  5. MrFlibble

    Doom2 Neural Upscale 2x

    Here you go: The only thing different from the above is that I only used the smoothed version for applying the rock filter, as the original version gets too sharp.
  6. MrFlibble

    Doom2 Neural Upscale 2x

    I was thinking about how to imitate the GameWorks Super Resolution look of the scaled up sprites, or at least mitigate the blurring introduced by waifu2x, here are some results: Same stuff zoomed up 2x by using nearest neighbour for better visibility: What I used here is scaled the image 4x using waifu2x and then applied a filter called Rock I found in IrfanView. The result was scaled back to 2x using Sinc3 in GIMP. To avoid colour distortions at the edges I thickened the outline of each sprite by one pixel like this before scaling in waifu2x: The edges are softened with xBRZ but the sprites in the centre are original quality. I also processed another image using the regular technique to get the mask which I applied to the sprites with the rock filter. The final result was then converted to the Doom palette.
  7. MrFlibble

    Doom2 Neural Upscale 2x

    I just examined some of the scaled up textures more closely and I see what you mean. NVIDIA's neural network keeps the pixels sharp while waifu2x blurs the small details, making the result completely unlike pixel art. This is bad. I tried sharpening the input textures but blurring still occurs. There seems to be no way around this so far. However, at least theoretically it should be possible to create a new network trained to produce results similar to NVIDIA's, by training it on exactly the textures that hidfan posted.
  8. MrFlibble

    Doom2 Neural Upscale 2x

    I have a long-standing interest in the different ways that low-resolution graphics from DOS games could be scaled up, however for a long time I did not give a proper thought to the philosophical and artistic sides of the question, assuming that simply smoothing input would be enough. Yet while the softened waifu2x approach can produce some really good results (this example combines a pre-rendered background and hand-painted figures, but they are rather large), it doesn't always work well for small sprites, regardless of how they were originally produced, or textures. There's also no clear answer to the question what approach would be more acceptable. An appeal to established industry practice would be a good idea, but I'm only aware of a handful of FPS games with sprite-based characters that received official high-res updates, which includes the Macintosh version of Wolfenstein 3-D, the XBLA version of Marathon 2, and Doom 64. All these had completely new sprites that were not produced by scaling up their original low-res counterparts. If we broaden the scope and take any sprite based game into account, the only example I can think of where DOS version sprites were indeed scaled up is the Macintosh version of Warcraft. I'm not sure if they used any scalers or if the sprites were all processed manually, but they were definitely edited to add detail at least to the buildings, although you can still see the large pixels here and there (it is my understanding that the developers had a tight schedule to complete the Mac port). I wonder if using dithering would contribute to the pixellated look that you're interested in? Here's the same texture set as above, no prior softening, converted to the Doom palette using Stucki dithering in mtPaint: Actually that's pretty good! Did you do this entirely from scratch using waifu2x scaling for reference, or edited the waifu'd sprite? If it is the central part that you're talking about, I think it's a part of Marine's belly showing through (apparently it's bare as shown on the cover art/title screen), and the black thing to the right is the rifle's magazine. Would it help if you were working with sprites scaled to 4x the original size? For this set I employed the usual procedure of two images — one for the mask and another with background grey for proper colours at edges — but I also only applied softening to the edges of the sprites to get at least most of each sprite sharper than with the original method. This does not in any way improve the fact that at 4x the sprites look straight ugly and messy, but at least this could serve as a base for editing them into proper images I suppose.
  9. MrFlibble

    Doom2 Neural Upscale 2x

    This is probably a good time to elaborate on how waifu2x works. If you scale up raw sprites against a solid colour background the result will be bad (all images below zoomed at 2x using nearest neighbour for better visibility): The sprite edges are not processed at all (for a more extreme example check this). At the same time waifu2x is rather good at resizing photos and 3D rendered images, which led me to believe that it can't handle sharp contrasts between pixels well. After trying out several methods of softening input images I came up with the "xBRZ blur" I described above. If you process a sprite this way and then scale with waifu2x you'll get this: Now the outline of the sprite is much smoother, at the same time the entire image has become blurrier, with some detail faded (e.g. the folds of the trousers have become less pronounced, you almost can't see the right side of the helmet's breather etc.). You can sharpen the result but as far as I can tell it won't quite match the non-softened image. While sharpening before scaling up kinda defeats the purpose of softening in the first place. In addition to this, scaling against a pink background results in odd colours at the sprite's edges, such as the visible green at the top of the helmet in both images above, which shouldn't be there. The only way to get rid of this is to process a second, set of the same sprites against a neutral grey background (again, as I described above), then extract the pink mask from the first image and paste it onto the second one. As for the softened versus non-softened sprites, the only way to achieve middle ground I can think of ATM is to only select parts of the non-softened sprite that are not near the edges and paste them on top of the softened one: However you can still see there are some problematic pixels on the rifle's muzzle for example. This method would involve processing three separate images, even though perhaps this could be simplified a bit if you replaced waifu2x-created mask with an xBRZ-created mask — personally I haven't noticed as much difference between the two, at least for shapes like the sprites above. I did try pasting an unaltered sprite over a softened version to scale up this combination, but it didn't work out well because edges get processed properly only if there's mutual blurring of both the pixels on the edges and the neighbouring pixels of the background.
  10. MrFlibble

    Doom2 Neural Upscale 2x

    That's the result of prior image softening and not an inherent feature of waifu2x scaling per se (BTW, waifu2x is also based on neural networks so it's better to refer to the initial approach listed here as NVIDIA scaling or something). Softening works very well with some kinds of art but apparently not with others. However this is completely optional, here's the same texture set processed by waifu2x without softening or any other pre-processing (also not edited in any way afterwards): Does it look better to you? Anyway, I was thinking about the whole thing and came to the conclusion that there is no easy way to upscale low-res assets because of the inherent limitations of the low resolution. It's not just about limited detail, there seems to be some idiosyncrasies that are not easily avoided no matter how you scale up the images. For example, you can notice some pretty odd changes to the Zombieman head's shape in the frontal view firing animations. I'm guessing this is simply due to how the low-res art worked, but after scaling it up it looks weird. I believe that the scaled up sprites can be used in some kind of "crispy" mod which retains the original look and feel of the art while making it sharper. I think it's definitely better than using other types of sprite scaling like xBRZ which essentially smooth pixel edges but don't otherwise alter an image in any way (e.g. a pixel-thin line will become two pixels thick at 2x scaling with xBRZ, without any colour transitions or the like). For this purpose, I don't believe that much editing is needed, at least for the sprites. Otherwise the results of scaling could serve as a basis or reference of a complete graphics overhaul, but that will require much more work than just editing a few pixels here and there, and will end up as original art while straightforward scaling at least remains more or less "true" to the source material. (It's not like an artist's work can't be true to the originals, what I mean to say is that the art which is automatically scaled is, in my opinion, basically the same stuff but smoother, while a creative element by an artist produces something definitely different.) UPD: I think I indeed placed undue faith in the softening method. Here's the same set of character sprite samples scaled up with waifu2x without prior softening (not converted to the Doom palette): This time I used the old xBRZ mask method as described here. There's definitely more detail preserved this way.
  11. MrFlibble

    Doom2 Neural Upscale 2x

    Here's a sample of how waifu2x does textures: This is the unaltered output. I also added some HSV noise in GIMP (at default settings) and converted the result to the Doom palette (BTW I realised that conversion to indexed mode in mtPaint seems to get more accurate if you change colour space from the default sRGB to RGB): Doesn't seem much better, but it really depends on how this looks in-game. I also tried applying noise to the sprites: Again, if there is a difference it'll probably show in-game.
  12. MrFlibble

    Need help, need sprites

    You might want to use Freedoom assets as placeholders, they're completely free unlike Doom ones so you'll be able to include them in WIP builds should you wish to make one public.
  13. MrFlibble

    Doom2 Neural Upscale 2x

    I think it makes sense to use all the animation frames as references to get a better idea of what each monster looks like. There are some good angles at which more of the rifle is seen — it appears to be somewhat like the Marine Pulse Rifle from Aliens but with a bulkier stock, judging by the unused firing and pain frames. Similarly you removed the grey part near the Zombieman's neck but it's actually part of the vest's collar, which becomes clear when you examine the frames showing his back and sides. Anyway, I did the entire sprite sheets for Doomguy, Zombieman & the Imp using the sheets from Spriters Resource. I decided not to convert them to the Doom palette yet, I guess they would be more useful in hi-colour for the purposes of editing and maybe also use in modern ports as they are (?). Also I can't vouch that mtPaint does the best job possible at converting the images to indexed palettes. NOTE: It appears that the forum software automatically downscaled the images a bit (these are post attachments), making them unusable.
  14. MrFlibble

    Doom2 Neural Upscale 2x

    I figured out how to get proper sprite clipping while taking full advantage of waifu2x scaling. Here's an example: This is basically similar to the earlier method I proposed with Duke Nukem 3D sprites, and involves resizing both images, except now both are processed by waifu2x. I'll describe it step-by-step. I used the following software: GIMP, mtPaint, KolourPaint (this is optional), waifu2x and xBRZ Scaler Test. 1. The method involves processing two images, one with a pink background and another with a grey background (I found that a background made from Duke Nukem 3D's bathroom tiles texture works very well). Prepare a sprite sheet you want to scale, paste one copy over a pink background, another over the grey background of your choice. 2. Now the image needs to be softened. If waifu2x scales an image with sharp contrasts between neighbouring pixels (which happens a lot in 8 bit graphics) the results will be bad. Both copies of the sprite sheet will need to be processed in the same way. Use the xBRZ Scaler Test (link above) to scale each image to 4x its original size, save the result and open it in GIMP. Apply pixelate blur at 4 pixel radius, then change image size to its original dimensions with the nearest neighbour interpolation. Save the result. 3. Use waifu2x to scale up each of the softened images 2x the original size. 4. Convert each image to the Doom palette. I use mtPaint for this, open the image, load palette and select a file containing the Doom palette (e.g. a DOSBox screenshot). Select convert to indexed, choose current palette with no dithering. Save the result. 5. Now open both sprite sheets that are converted to the Doom palette. For one with the pink background, use the select by colour tool (Shift + O) to select the background and all pink/purple pixels at the outline of the sprites. Hold Shift to add the areas of desired colour to the selection. There are only four shades in the palette. Copy the selection and paste it over the other image with the grey background, deselect it, then select again and delete to free the sprites from the background. The purpose of this is that while the smoothing method allows waifu2x to properly process sprite edges, it also creates undesired colours at the edges of scaled up sprites because of the background colour's sharp contrast. A neutral grey background is much better in this respect but it is also much harder to remove while keeping the sprites' details intact. So the pink background image is processed to create a mask for removing the grey background in the other image. For reference, here are the two images I used to get the one above (these are raw, prior to smoothing):
  15. MrFlibble

    Doom2 Neural Upscale 2x

    So I tried to process some zombieman frames to compare with NVIDIA's results posted above: I realised that I get better results if the image is scaled to 2x straight away instead of 4x and then scaling back. I used the pink background and then cleaned it up manually using GIMP's select by colour tool after converting the image to the original Doom palette. Here's the Doomguy processed in this manner:
×