Sunday, 30 December 2012

FMP 03 Technical Specification


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.

Friday, 7 December 2012

FMP 01



I've left the FMP alone for a few weeks, as I already had a pretty solid idea of what I wanted to achieve from the project or enough of an idea to present to the tutors. But as December draws on there is much need for me to research and plan an in depth document, with information on my technical specification, detail and full project outline, assets lists and aspects to research and understand. Rather than produce a lengthy document straight off the bat, I'm going to produce a series of blog posts that can be stitched together to create an in-depth project brief. These post would be broken down as following;

Platform -                           Both Console/PC and Engine.
Technical Specification-      What Limitation I will set myself and budgets for textures/models.
Project Outline-                  What am I creating for what purpose and set a back story.
Assets List-                         Research what is needed, what is viable, extended scope.
Tools & Software-              Research on what programs and plugin's I can use to develop and showcase my                                                              .                                          work.

I will also aim to complete one piece of concept art for each of these post as this can develop the amount of visual material I have as reference.

PLATFORM!

Realistically because of the equipment that we have available to this course my only limitation is the power of the labs machines and the engine we use. We do not have capabilities to port our levels onto consoles so there isn't much I can do to change that. But if I had the option which would I pick, I did some research and the results are surprising. For what I can actually interpret. Below are the specifications for both of the consoles;

http://playstation.about.com/od/ps3/a/PS3SpecsDetails_3.htm  
http://xbox.about.com/od/xbox2/a/xbox360specs.htm

I was surprised, both are easily capable of running on screen hundreds of millions of triangles and billions of shader operations. But I assume that is the limit of what the machines are capable of and with running other aspects of software and running systems this would be reduced somewhat. The articles are also quite old, although from their respective companies. Rather than pick a specific machine I opted for a PC standard game. Computer graphics have improved and it is now the high end PC market that is on top. With the limitations of an engine I'm sure I could run my level on all three quite easily. I will use my computer as my base as it is slightly less powerful than what the lab machines are supposed to run. However coming back and forth from Uni I will have to be able to run these both and this is probably for the best. 


As this project will only be displayed and run on a PC that it the platform I am opting for.

I will aim to have a realistic budget and on screen triangle count for a Next-gen game (Current) and to the upper limit of what each engine can handle. This is because I want to make the most of what I've got and make it the best of what I can. I want to showcase my work and that is my ultimate goal for this project.

With this in mind I have researched what game engines I will be using to run my level. Firstly looking as performance.
Cryengine: http://sdk.crydev.net/display/SDKDOC3/Asset+Performance+Guidelines
http://forums.epicgames.com/threads/757776-Question-Poly-count



TRIANGLES


Terrain

50000


Particles

2000


Roads

30000


Decals

20000


Veg

40000


Brushes

600000


Entities

300000


FP Character

75000


TOTAL

1042000


There is an around 60k limit per model for each engine, so having my ship as one object may not be possible, but it would probably be better to break it into chunks anyway. 
One thing to point out is that triangle counts do not effect F.R. (frame rate) as drastically as Draw calls, Draw calls are when multiple meshes are overlapping and the engine has to render each one of these, slowing down performance. So as above shows a million poly's is a safe maximum guideline for Cry engine 3 and from play UDK I know it can handle this amount safely as well. To keep my FPS below an acceptable level it would come down whether I can keep the draw calls below 2000, which at this point in the project wouldn't seem to be a massive problem but I might have to look at this again later. My decision on which engine to use would rely on other more personal preferences between the engines.

UDK has the advantages that I have already used this program before and I'm quite able and capable of using it right from the offset. It is a stable platform and has a very easy to use interface. You are able to create material shaders easily with a node based system and importing and creating assets is very easy . However it does have some disadvantages, you have to 'build' lighting which takes a long amount of time and means that any changes you make to the level then has to be re-computed. 

Cry Engine has the advantages that its post effects and time of day settings are easily changed and everything is shown in real time without the need for pre-computed lighting. However this does effect computing with multiple light sources. Cry also doesn't have the ability to edit shaders which means it can be difficult to get the exact effect that you were looking for that might be relatively easy in UDK. Cry does look very nice and interactive and for the water based scene I am producing it is probably the right choice. However having to set up plugin's and having to be on-line to work is another issue that might be a problem, however these aren't significant issues once the project is under way.

Below is a comparison between the two engines, There are differences between them but a lot of the setting can be mirrored and achieved on the opposing engine anyway.


I think based on the fact that I am showcasing asset and level creation rather than particular shaders and I want dynamic lights regardless in my scene. As well as the engines are otherwise vary similar in capabilities and that I want to understand and learn a new engine, I am opting for using the Cry Engine 3. I feel this will showcase my work the best. As long as i respect the amount of draw calls and don't go overboard with my texturing and budgets and stick to respectable current gen limit, this project should be successful. 





Tuesday, 4 December 2012

Container texture Practice

Created a container 1024x512 texture around 1k tri's, trying to get my hand used to working again after fracturing my knuckle, took on and off around 5 hours from start to renders, trying to get quicker.

Finished Vehicle..Forgot to post

Here it is, really happy with how it turned out

Sunday, 18 November 2012

Bit Stuck

I'm happy with where I'm at so far, the only problem I have is that if I could go back or redo the wind shield without redoing my entire unwrap I would texture it together rather than symmetry the texture so that it looked less uniform and more realistic. Another issue i have is that the top is abit too boring at the moment. I think this was because i wanted a hardtop front and a lot of my reference is for soft tops. This means that there isn't anything going on there and its a bit bland. I think i might add some hard points or maybe a roof rack but I'm not sure.

Vehicle Progression

For the vehicle project that we have been set i have decided to do a military style landrover defender. This was to coinside with the missle system that i produce at the end of the summer break. I thought that this would be more beneficial to my portfolio as i could create an environment around this so i could have something more impressive to show. Rather than having something totally irrelevant to my goal of becoming an environment artist.
Blockout
Current Textures
To do/Add
I'm going to add more dirt to the wheels and throw up from the wheels on the doors. Although i'm not sure if this would actually happen as it has mud flaps  I also need to add windscreen wipers and other small details to make it a bit more interesting.



Welcome To My Third Year Blog

FMP Presentation

I will be creating a 18th-19th century warship to a high realistic standard and try to make an interesting portfolio piece that I can add to my portfolio as an environment artist.








The project presentation went well, so my next stage is getting a more firm understanding and reference to what I want to produce. I am planning a trip to the National Maritime Museum London on the 24-25th of November. This is so that i can gather first hand reference of what i might need for this project before Christmas. I will also be using http://collections.rmg.co.uk/collections.html#!cbrowse as a key referencing source for this project. I want to try to create an environment around my ship set on the Thames on a misty evening. This will give it a bit of grounding without being too ambitious. I am trying to find reference material from a different source than the internet, by using a system called Aeon from the national maritime museum. Which allows you to book material to look at whilst there, with the museum being the largest in the world hopefully i will find some information and images that I can't find elsewhere.