David_Mac Wrote:i) recommended tri limits for a map.
I'm about to head out for work so I can't look into this in much detail at the moment, but this should be similar to other racing games like GTR, GTR2, etc.
Quote:ii) object count recommended for a map.
Thelusiv was a bit low; most of our maps have thousands of objects. Even the small ones have more than 1000. That's mostly because of the way that they were converted from other formats, though, and more objects decreases performance, so keep it under 2000.
Quote:iii) texture resolution limits and number of UVs supported.
The Paul Ricard '88 track uses one 2048x2048 texture and several 1024x1024 textures, and seems to run fine. The game dynamically resizes textures down if users have texture detail set to medium (half resolution) or low (quarter resolution). So, something similar to the paul ricard textures would be OK.
Quote:iv) textures and effects supported within the engine: Specular maps, bump maps, emit maps, normal maps (tangent or global/world), etc.
Specular maps are supported for all track objects. I'll have to check but I think emit maps (self illumination, right?) are supported but I'd need to make a quick code change to have the engine actually look for emit maps for track objects. Support for tangent-space or world space normal maps would be easy to add but isn't currently in there... mainly because we don't have any art that uses 'em. If you want to use normal maps then feel free and I'll add support to the engine.
Quote:v) any information at all on your in-game lighting system.
If you understand GLSL shaders, the best place to go is to the source: data/shaders/full/fragment.glsl. Here's a synopsis:
Code:
ambient = the color lookup from the diffuse texture
notshadowfinal = the percentage not in shadow
diffuse = the color lookup from the diffuse texture * the dot product of the normal and the light position * notshadowfinal
gloss = the lookup from the specular map
invgloss = 1.0 - gloss
specular_sun = a specular highlight calculated based on the reflection vector, currently fixed at power 128 blended with power 4 (seems to look good for cars, but I've been meaning to improve the generality of this calculation)
specular_environment = texture lookup from an environment cubemap * gloss * reflectivity based on eye position (so when you look directly at something it's not as reflective as when you see it from a glancing angle -- it works well for car paint)
tu6_2D_val = emit map
final color = ambient*0.5 + diffuse*0.8*max(0.7,invgloss) + specular_sun*notshadowfinal + specular_environment*max(0.5,notshadowfinal) + tu6_2D_val.rgb;