Comment by BugsJustFindMe
3 days ago
This should really be titled "I love pixelated textures".
> "3D cards smoothed textures with bilinear filtering"
You can just not do that.
3 days ago
This should really be titled "I love pixelated textures".
> "3D cards smoothed textures with bilinear filtering"
You can just not do that.
I'm going to guess if you did it on the video card and simply disabled those enhancements it would be considerably more energy efficient than doing it on the CPU as well which (a) means your laptop battery lasts longer on a charge, and (b) also opens up the possibility of not needing a particularly powerful CPU in order to juice the resolution, because the video hardware is doing the work for you.
From a programming perspective I do completely get the desire to have the CPU do all the work though - if you want absolutely everything under your control it's easier, and especially if your game is single-threaded.
I've mentioned this elsewhere, but nowadays, anything you see out of an HDMI/DP/eDP cable comes out of a GPU. Modern OSs make it impossible to do 'software rendering' any more; it's just that much faster and that much more efficient, even if it is harder to program directly. Even IPMI BMCs have a tiny GPU doing stuff.
Why is it “impossible”? If you mean that a rendered frame has to reside in the graphics memory before being sent to the display, then I think that was the case even when software rendering was a thing.
If you mean rendering a frame entirely in the main memory by the CPU, then there is nothing making it impossible. I mean, most major 3D rendering software still have CPU renderers as an option. Slow, but doable.
P.S: I am using offline renderers here as an extreme example. A game renderer - especially for scenes like Quake’s - are definitely going to be far simpler and cheaper.
6 replies →
It's also because at this point the operating systems themselves use the accelerated graphics architecture for things like window compositing, because that also turned out to be faster. And it's much easier to do cute little visual effects like wiggles and window distorts if those entities are actually 3D rendered graphics objects.
Even the standard desktop experience is a 3D graphics application these days.
1 reply →
I think you're misunderstanding. No one is saying that a GPU isn't involved at all.
But if you rasterize your frames into a buffer using the CPU (and not OpenGL, Vulkan, Metal, D3D, etc.), and then scan that out on the GPU, that is indeed software rendering in the sense that matters here.
The idea that software rendering is impossible because the GPU owns the scanout buffers is just silly pedantry.
Concur. Feels like a conflation; CPU vs GPU rendering doesn't change the appearance directly. The article performs further conflations later re the OS comparison and Steam re Ion Fury etc.
It's just like how pixelated 2D graphics is called "8-bit" now.
Valve added this as an option to Half-Life in the 25th anniversary update, and I thank them for it - it looks much cooler.
It just feels wrong historically. When HL came out, people were very enthusiastic about texture filtering and the game was clearly designed with hardware rendering in mind.
Considering how many things are broken when you play in d3d or OpenGL mode I’m not so sure. :P
2 replies →
That said, Black Mesa is a marvelous piece of work. The Xen levels feel like they finally finished them.
makes me wonder how would gameplay fare when a gpu renders the game with very limited options. Sometimes higher FPS would play weirdly with the physics engine and some moves you could do when capped at 24fps were not possible at 60fps.
I like when games use nearest, or dedicated pixel art shaders. Bilinear just looks low-effort to me, especially when it's used for whole-screen scaling! Apple's Lanczos also looks a bit disgusting to me, I can't tolerate the display scaling on iPad because of this.
If you want to have the true PSX gaming experience you can also round all vertex coordinates to the next pixel and force noperspective interpolation.
[dead]