My objective is to recreate the following styles in 3D using Godot 4 Stable:
I'm not trying to stay faithful to any platform style (psx, n64). I'm stealing retro aesthetics from where I can and at the same time use "modern" graphics techniques while remaining "retro" as possible. Don't want to use the ps1 shaders out there.
So far I've done the following in my Project Settings:
- Change Viewport width and height to 384x216.
- Change Window Width and Height Overrides to my window size of choice (1280x720).
- In Stretch change Mode to viewport and Aspect to expand.
- Disabled Anti-Aliasing.
- Using the StandardMaterial3D (only albedo).
In other areas of my game:
- Change material's sampling to Nearest Mipmap Anisotropic
- Tried making art similar to the style I'm trying to accomplish.
These modifications really made a difference, but there's still missing.
I need some advise, what else could I do to accomplish this?
1) I'm noticing that the StandardMaterial3D might be a little overkill for what I need. Should I write my own shader that does the following:
- Cell/toon shade in order to get closer to the desired image.
- Probably only need a simple lighting model (Phong-Blinn) which only uses diffuse and specular maps, nothing else.
Or am I overthinking this and the StandardMaterial3D is just fine?
2) If writing my own shader is indeed needed, does that mean I need to to re-implement the following into my custom shader?
- Shadows (Directional, Point, Spotlight)
- Triplaner Texturing
- Emission
3) If I write my own Shader, would that also mean World Environment effects would stop working for any Mesh using my custom shader? I'm referring to World Environment effects like:
- Sky
- SSR
- SSAO
- SSIL
- SDFGI
- GLOW
- Volumetric Fog
4) Should I limit the color depth in the game to 256 colors or similar? I thought of using a shader I found that does that in post, but not sure if this was the proper way or is there something I should do in Project Settings instead.
Any suggestions or tips are more than welcome!