Tuesday, 5 February 2013

FMP 06

FMP 05/02/13

This week marks the official beginning of my Final Major Project, I have produced some test pieces from the beginning of January but now I will be working full time. The things I want to achieve this week are to get a solid model, textured and imported into CRY of my Ship. This will allow me to check the scaling and to remember what the process is for exporting and setting up CRY files.

I will also aim to get my initial environment and time of day settings to a nice standard; this shouldn't be finished as I will edit these as I go, to improve as my project progresses.

Progress – Tuesday

Having already got the majority of my base mesh completed it was the unwrapping and finalizing/remodeling of some areas that have needed to be completed over the last couple of days. I exported my model before I was finished in order to see whether it was working correctly, unfortunately I was having problems with the normal directions as some areas of the deck were a lot darker than other areas. Consulting with people in the labs and Heather we ruled out; normal’s direction, smoothing groups, unwelded vertices. Having ruled these out I decided to re-unwrap the model.

My previous model had been unwrapped according to the symmetry modifier. This fixed the issue almost instantly and it was to do with the normal being pulled down. However this didn't completely fix the model as there were still areas that weren't the colours or lightness as what my material was supposed to be. I fixed this by editing the T.O.D. settings and bringing up global illumination and reducing the HDR settings to stop the camera from lighting and darkening the screen so much.

The next issue I faced with this model was the Multi-sub material wasn't working and it was only applying one material. This problem was fixed by reassigning material in 3DSmax and attaching all the parts of the object when unwrapped and re-exporting. By having tight geometry I managed to get rid of gaps and have a more flexible platform to work off to add other aspects of the ship.

The ship model at the moment has 5 material I.D’s and these materials were created whilst working on my previous (sorry guys not for public domain) Speedo project. They work well but I feel I could make better use of them by creating a better normal map and using displacement.

Unfortunately this week I can’t produce any work at home because my computer is having problems, which is limiting what I can complete and leaving me a bit stuck at what to do in the evening, other than blog and design document work. But this is probably a good thing as this project is 4 months and if I don’t keep on top of it I will struggle to produce a good amount of consistent design work.

What I aim to complete for the rest of the week;

I’m hoping to create some sculpted normal’s for various textures I will be creating, I will also aim to start creating a dockyard so that I have some area for my ship to be situated. 


Started by creating cross sections to model over to get the basic shape, once i understood the ship building plans this was relatively straight forward and i managed to get a basic block out to see if my idea was viable and where i wanted to bring it. The first block out was a single deck war ship and i decided it would be more visually interesting with two back sections without creating a lot more work.

Unwraping the model and creating air tight interior spaces was next on the list as once these were completed the basic shape of the ship would be completed.

I decided to add a hold space that was visually interesting, and was based of some of Empire: Total War's ships, this gave the space some more vertical space and a transition between upper and lower decks.

The finished model without errors in Cry engine, this lighting set up was quite nice as it created a more orange light setup. However i've since lost this set up whilst tweaking the T.O.D. settings

Turquoise boxes are human height for scaling - 170cm.

Above and below are where i am at as of Tuesday evening, the boat is unwrap and the main ship shell has been completed ready for additional meshes to be implementing into it. It will have to be re-exported to allow for doors and other changes. However it is fundamentally complete and does not require a lot of change. The lighting setup is not final, i feel it is too bright and i need to lower the Bloom of the horizon and try to get more atmosphere into the level. This will depend on what weather i want in my level, as i'm not sure if i want it to be typical English overcast or warm morning or even rain.

FMP 05 Design Brief


Design Brief
Final Major Project – 18th-19th Century Ship & Harbour

Initial Brief:
“To create a realistic ship and harbour area, using authentic reference to produce a fictional location. Using Cry Engine 3, assemble and light the level to create atmosphere and to best show the assets created. Consider composition of areas to create key focal points to show in a portfolio.”

Requirements:
Style                        -Visual realism at the turn of the century 18th-19th
Audience                  -Teen to adult core gamers
Target Platform        -Modern PC/Cryengine sandbox 3
Timeframe                -4 Months (approx.)

Purpose:
To demonstrate the following set of skills for use in an environment artist’s portfolio:
Art                          -Modular Assets Construction
                                      -Scene Composition
                                      -High Poly Modelling & Baking
                                      -Tilling Textures
                                      -Clear Material Definition
Technical                  -Lighting and Post Processing
                                      -Particle Effects (Limited by Cry Capabilities)




Targets:
Must run at 30 fps at throughout level at all times
Coherent Texture quality aiming for a minimum of 256 pixels per meter of playable space
Reduce repetitiveness of assets by creating variations by decals and texture coordinates
Create a visually stimulating environment

Budgets:
Budgets are defined from an initial asset list created and are based on estimates of triangle and texture usage of assets. By setting a limit the project management and asset priorities can be better controlled.
Triangle                             -An initial budget of 150 thousand triangles for non-instanced assets.
Textures                   -An initial budget of 150mb
Scope:
Environment (Ship)
Create a complete ship deck and body, paying attention to the path of the player. Interior space must include captains quarters area and any filler space between this area and the ship’s deck. Environment should be populated to an extent of making it feel lived in and immersive to the player.



Environment (Harbour)
Environment must encompass the ship aspect of the level, a semi-circle of onshore area must be produced to a similar detail as that of the ship and should be navigable. A number of buildings and other assets must be created to make it feel like a harbour of the time period.
Programs Used:
The following programs should be used in this project:
     
    WORD             EXCEL         3DSMAX     PHOTOSHOP    ZBRUSH   CRAZYBUMP   CRYENGINE 3
Any other programs that may be used will be credited in the design document as the project continues. 

Sunday, 13 January 2013

FMP 04 Project Outline


My project outline will be as follows. I will be creating a late to early 18th-19th century warship, this time period was consistent with grand ship building and expansion of the British Empire. I will create the scene in a fictional English dockyard and if possible I will have a small playable onshore area. I will try to create an authentic era scene by using reference from that time period. However I may have to take some artistic license in the building the scene as it is difficult having a full picture to work from. I am using this project to have a solid level design in my portfolio and to practice and improve my abilities with a variety of previously used programs and new programs I may wish to experiment with. I will focus on realism whilst keeping the frame rate usable. I want to create consistent levels of detail and make the space feel real and lived in.

About the ship, I want the naming of the ship to be as important as all HMS ship’s, I want it to be something grand and absolute, with this I came up with, eminent, revered or resolute. I've chosen revered as this was a name that hasn't been used by the royal navy and it fitted in with what I wanted the ship to represent.

Revered - Feel deep respect or admiration for (something).

I wanted the ship to belong to a wealthy captain who respected the laws of the sea and who knew how to sail and lead his men. I want certain aspect of the ship to represent this; I want notes of wealth from the captain for himself and the ship and crew. Maybe hinted as him being a buccaneer or pirate at some point but one that respected his crew and now fights for his country. I want intricate details on cannons and props.

I want to make the most of the time I have for this project and as such want to create a full scene that looks and feels finished, depending on how the project progress’s I wish to have 3 stages of completion. The first being all primary assets and level completion. The second stage would be to include additional props, assets, area and animation to make the scene dynamic. Thirdly I wish to include various and multiple extra levels of detail to both the ship and onshore, I want a dynamic environment that makes the level stand out.

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