Because I have opted for creating a realistic current gen scene, I have to produce a technical specification around this. I also have to consider that I am using Cryengine and what specific technical issues this may be produce. Working from; http://sdk.crydev.net/display/SDKDOC3/Modeling+Guidelines
There are some aspects related to Cryengine that will affect how I will model and texture and plan for this project. I will have to add additional edges to retain proper geometry shading in engine. By chamfering edges or adding additional edges I can save normal map (which are 4 times more expensive than diffuse in Cry) and smoothing groups. I will have to focus on good specular maps and fewer cuts via smoothing/UV borders-splits/material. Cry engine splits geometry depending on how many splits the model contains and by reducing the splits I can reduce the in game vertices count. My normal maps because of the expense should be half the size of my other maps. By modelling I should try to reduce the amount of detail in my normal map to achieve better consistency throughout my level.
LOD’s I use should retain silhouette reducing details in the first instance and transparent materials, reducing material ID’s wear possible. Next I should reduce all curvature not necessary to the silhouette and all additional details. The last LOD should contain basic shapes necessary for the silhouette and contain only 1 Material ID. Each LOD should reduce the tri count by 50%.
Polygons should be distributed In areas the player gets close to and I should neglect area that are far from the players view. Because I have quite a playable area my assets will have to make use of LOD’s for areas that are further from view. My Vista and non playable area will be the only areas that I can reduce my tri count and I will aim to use as few polygons as possible using the LOD plan as a base for how far away the areas are and how they are constructed. Using lower texture resolution for these areas.
I want my texture resolution to be as high as possible as I want a high degree for fidelity and detail as I want it to showcase my work. Textures should contain basic information and details and should use decals to add other information to break up tilling. Decals should be on 1 texture and placed in 3DSMAX to avoid placing in engine and limiting the amount of memory and complexity they add.
I will use standard modelling practices to reduce tri counts by deleting unseen geometry and back faces. By merging meshes into unique meshes I can save on draw calls. Cry engine processes square textures fasters than 2:1 ratio textures so I should consider this when producing my level. Where possible I will aim to reuse textures and shader’s and when using alphas reduces the amount of screen space they take up by adding geometry. The larger the screen spaces used the more expensive it will be to draw as alphas use a second draw call. I will have to consider overdraw and try to reduce this by reducing sizes and the amount of overlap on screen of alphas. By doing this I can also maximise the amount of texture space I’m using per texture.
Mirrored information should be merged where possible to reduce UV splits, problems with smoothing and texturing. Diffuse Alpha should be used when possible for greyscale specular’s and should be stored in the diffuse with gloss alpha. Specular’s can avoid the need for normals at some point. Spend time on speculars rather than greyscalling as this is a waste of memory and doesn’t perform any bonus to the texture.
Tileable textures should not be expanded and where possible should be as small as possible. “Memory wise, normal maps are four times as expensive as a simple diffuse or specular map. Detailed normal maps are very expensive. Avoid them as much as possible and compensate by using detailed colour maps. Always use the Gloss in Diffuse Alpha shader generation option when the spec map contains no additional colour information (grayscale). You can compensate for the loss of colour information by using a specular colour in the shader. By doing this, you can also save a draw call.” Objects that need multiple colours can use a greyscale diffuse and then cry engine can tint the texture in the engine to produce multiple variations. These textures should contain the small material ID.
By producing an excel spreadsheet I have allowed for initial budgeting of my level, I have 150k of asset planned but I will allow another 50k additional budget for the non instanced scene. I have 100mb of texture space initially allocated but will allow another 50mb for extended scope and unplanned texture usage. I think this will allow me to produce all of my assets and from this I can use instances to populate the level. I can reduce the draw call’s of this by merging localised assets into one object, however I will not consider this part of this initial budget. I will aim for a minimum of 30fps and will have this as my main consideration of what I will produce or cut in the level.