Yes, exactly. Originally I painted a 1024x1024 texture and then I downscaled it to achieve the retro look, but I found it's much more convenient to work directly on a low res texture: it takes way less time and you have a much finer control on the final result. ...
Yeah, I also think it's better that way because the downscaled image never
really looks like what you wanna have. And I also think that working with a
lowres texture is beneficial when working with material textures. For example,
with a lowres texture one can precisely say which pixel of a character should
reflect what, which is impossible to say when scaling down from a hires
texture.
Anyhow, for a retro look you need to turn off any texture filtering. But
that's not enough. Usually flat-shading was also used, you can turn it on
just for the model and have a look, but would eliminate a couple of cool
effects stemming from, well, Phong shading.
The problem with retro graphics these days is that the shading resolution is
much higher than the texture resolution. So you have all these fine lowres
textures but with the shades (stemming from the illumination) being hires,
that is to say you get different shades across a texel. That's never going to
work.
Roughly speaking, the shading needs to be quantized artificially making it
appear of lower resolution, i.e making it the resolution of the texture. How?
Well, if you think about it, given phong shading, you get an interpolated
normal for each pixel (per-pixel lighting), which is fine, but way too good,
because a texel of your lowres texture may cover multiple pixel on the screen
and with the normal slightly changing across it due to the geometry of the
model. Hence, your texel receives multiple shades yet the texel should be flat
shaded to match up. You can achieve this if you record just one interpolated
normal for the whole texel in question. Hence, for all the pixels making up
the texel on the screen you use just one interpolated normal.
I did something like that ages ago (software rendering);
Was sort of a test-bed for my own retro stuff I'm working on. As you can see
in the animation, the shades match the resolution of the texture quite nicely.
... Regarding the bolded, that's super cool. So you're writing a custom software renderer, is that correct? Do you use any special instruction set for vector computation and the likes? I've always been interested in software rendering, and the adjustments, in terms of rendering techniques, that would be needed to have real time rendering of photorealistic images like the ones produced by modern engines. ...
Yeah software rendering and stuff. Wrote eons about it why and how in here and
also OT2. Basically I'm after my own retro aesthetic. My approach is to use
more realistic rendering equations but will modify key components with NPR
elements. Software rendering gives me no restriction researching such stuff.
If an algo is any good, parts of it may be mapped to hardware (CPU vectorized,
GPU, etc.). Can be all mixed if needed. About the vectorization; yeah, I did
that ages ago, all the SSE intrinsic stuff + Intel's auto vectorizer as it
was new etc., but currently I'm not into it because I've found that with a
faster running version I just arrive at the wrong solution faster.