nihilocrat
|
|
« on: January 15, 2012, 08:01:34 PM » |
|
I have seen a number of Unity games, and make some of my own, which intentionally downsample the visual quality of Unity games to give a retro look reminiscent of the mid-90s or earlier. There are a handful of techniques which might not be immediately obvious which are necessary to achieve the look. I'll list them one-by-one below, and if anyone else knows some techniques, please add them.
Making textures look blocky instead of fuzzy For every texture, go into its setting and set the "Filter Mode" to "Point". You might also want to set the Texture Type to "Advanced" and disable all mip maps; this is especially important to reproduce the "sparkle" effect when looking at textures from very far away in retro games.
Flat-shading on 3D models I'm only really familiar with doing this in Wings3D. Select all edges, right-click and go to the "Hardness" option, and select "hard". I believe other modelling programs might use the term "Smoothing Groups" instead of "Hard Edges".
You can do this in Unity itself, too. In the FBXImporter component of an imported mesh prefab, you set Normals to "Calculate" and "Smoothing Angle" to 0. -overhead
3D models with several solid-colored sections Technically you can just split the mesh into several submeshes, and color each of those with a separate material. However, this is pretty inefficient for rendering, since each material needs its own draw call, and suddenly a single model takes a lot of draw calls. You could also just color the vertices in your modelling app; this is completely valid, but difficult to adjust if, say, you want to easily change the colors of a model in-game.
The method I use is to create a texture made up of several blocks of solid color. I UV unwrap the model, but I just shrink the coordinates into a little blob and shove them into the color I want that part of the model to be. In-game, I can just change the material (or the texture on the material) to change the color of the model.
Getting a resolution below 640x480, or faking a low resolution while using a higher real resolution The only method I know requires Pro, which I don't have, I have merely been told how other games have done it. Render the contents of a camera to a low-resolution, point-filtered texture and stretch a GUI Texture using this texture to fill up the entire screen.
|