With many games, you can say "oh, that's the Unreal Engine, for sure", or "this was made with an upgraded Rockstar Advanced Engine". We can often recognize the engine used for a game just by looking at its graphics, disregarding user interface.
Why is this? All game engines use the same 3D rendering technology that we all use, and the different games usually have a distinct art style. What's left to recognize?
Answer
Primarily I'd imagine this is down to the shaders. For example, the Unreal engine will have a certain method of handling HDR, a certain method of handling bump mapping, a certain method of handling light scatter, etc.
They will also have a uniform level of clarity in terms of constraints such as texture sizes and colour support.
Additionally the algorithms will be similar. Objects will be tessellated using the same algorithms. AI will make decisions according to the same decision-making architectures.
If the bump mapping is causing insane specular and reacts strongly to changes in lighting for example, you immediately start thinking Doom 3 engine. That's because that shader code is shared between every game using the engine. You wouldn't want to rip something like that out.
"All game engines use the same 3D rendering technology that we all use"
The technology is the same, but the rules that govern how the world actually looks (eg. lighting, tessellation, LOD , etc) are all written by the developer. The 3D rendering technology doesn't have that much to do with the visual quality of the things on screen. Even the rules for applying flat ambient lighting is left up to the developer (assuming you're not using Fixed-Function Pipelines).
You can make your OpenGL app look just like your DirectX app with often trivial difficulty. The underlying rendering technology really doesn't have that much impact except with regards to speed.
No comments:
Post a Comment