top of page

CGI FOUNDATIONS

Screen Shot 2019-03-11 at 18.17.54.png

Introduction to Unity

Unity is a cross-platform game engine developed by Unity Technologies first announced and released in June 2005 at Apple Inc.'s Worldwide Developers Conference as an OS X-exclusive game engine. As of 2018, the engine has been extended to support 27 platforms. The engine can be used to create both three-dimensional and two-dimensional games as well as simulations for its many platforms. Several major versions of Unity have been released since its launch, with the latest stable version being Unity 2018.3.8.

Screen Shot 2019-01-29 at 11.57.48.png
Screen Shot 2019-01-29 at 11.57.42.png

MATERIALS

In Computer graphics, Materials are an enhancement of texture mapping (and a pre-requisite for advanced shading effects) that allows for objects in  3D modelling packages and video games to simulate different types of materials in real life. They are typically used to enhance the realism of polygon meshes and other forms 3D model data. They play an essential part in defining how your object is displayed. They defining how THE object is displayed.

The properties that a Material’s inspectordisplays are determined by the Shaderthat the Material uses. A shader is a specialised kind of graphical program that determines how texture and lighting information are combined to generate the pixels of the rendered object onscreen. 

Screen Shot 2019-03-26 at 09.38.20.png
Screen Shot 2019-03-26 at 09.40.32.png
Screen Shot 2019-03-26 at 11.33.52.png
Screen Shot 2019-03-26 at 11.57.15.png
Screen Shot 2019-03-26 at 11.19.26.png

3 Skills Every FX Artist Needs!

LEARN A PROGRAMING LANGUAGE

Knowing how to program, as an effects artist, is like walking into a toy store as a kid. You can’t believe what is available and you have know idea where to start! Effects you used to think were complex, suddenly become understandable. You begin to look at your application of choice in a very different way. You will begin to understand aspects of your tools that you never dreamed of!

Screen Shot 2019-01-29 at 11.08.24.png
Screen Shot 2019-01-29 at 10.32.26.png
Screen Shot 2019-01-29 at 10.16.28.png
Screen Shot 2019-01-29 at 10.32.31.png
Screen Shot 2019-02-05 at 10.07.35.png
Screen Shot 2019-02-05 at 09.34.44.png
Screen Shot 2019-02-05 at 10.07.29.png

Basic Maths and Physics:

Photo by buchachon/iStock / Getty Images

This one always gets a good moan. Artists run at the sounds of the “M” word. They way people react to my love for physics & math you’d think I just hit them in the face with a golf club. If you are someone who truly doesn’t get math or really really has a strong hatred for it I urge you to seek consoling. Fact is this, EVERYTHING we do in effects is MATH. That simple sphere is created using math, your fluid simulation is obviously math. 

Screen Shot 2019-02-05 at 10.12.52.png
Screen Shot 2019-02-05 at 10.35.14.png
Screen Shot 2019-02-05 at 10.34.49.png
Screen Shot 2019-02-05 at 10.10.18.png

Computer Graphics

 

If anything else, gain a knowledge of computer graphics from a technical stand point. I think I have gained more from my CG knowledge then anything. Our processes and tools are the subject of Computer Graphics and learning these concepts ( not the maths) is going to help you understand how all aspects of our processes work. One again strive to gain a basic knowledge and you will find it extremely helpful. 

Screen Shot 2019-02-19 at 09.27.52.png
Screen Shot 2019-02-19 at 12.00.43.png

Particle Systems

In a 3D game, most characters, props and scenery elements are represented as meshes, while a 2D game uses sprites
 for these purposes. Meshes and sprites are the ideal way to depict “solid” objects with a well-defined shape. There are other entities in games, however, that are fluid and intangible in nature and consequently difficult to portray using meshes or sprites. For effects like moving liquids, smoke, clouds, flames and magic spells, a different approach to graphics known as particle systems
can be used to capture the inherent fluidity and energy. This section explains Unity’s particle systems and what they can be used for.

Screen Shot 2019-02-19 at 11.29.25.png
Screen Shot 2019-02-19 at 09.21.35.png
Screen Shot 2019-02-19 at 11.57.10.png
Screen Shot 2019-02-19 at 09.21.29.png
Screen Shot 2019-02-19 at 11.29.18.png
Screen Shot 2019-02-19 at 10.09.12.png
Screen Shot 2019-02-19 at 09.12.14.png

UNDERWATER PPJ

Break your work into smaller pieces

One of the most common reasons for people to leave a project is they get overwhelmed once they really understand the amount of work they are really facing. This is of course more noticeable on solo game developers, since all the responsibility falls on their shoulders. By splitting your big task (your game) into smaller ones (phases, iterations, milestones, or whatever you call them) and then splitting them again into more detailed pieces (tasks or user stories…), you finally get a set of work units that are manageable, easy to accomplish and short to complete. Then you can focus on each of them individually and forget about the big task in the meantime; your objective becomes the completion of that piece of work and only that. This is good to avoid distractions and to perceive your progress as you complete each of them

Avoid multitasking

This is very important for a solo developer.

You have to do a lot of tasks: programming, game design, art, maybe sound if you’re really talented… and it’s ok, this is what going solo is about. But don’t do more than one at the same time. And I’d say even more: try to group them as much as possible and work the most time you can on the same topic.

1.png
2.png
3.png
Screen Shot 2019-03-12 at 15.03.23.png

Matte sorting

Screen Shot 2019-03-19 at 09.34.32.png

When making a 2D game detailed control over theorder in which items arerendered is a necessity. One way of doing this is by using the distance of the sprite from the camera.Unity however provides a much more powerful tool to do this, sorting layers. Sorting layers work with the sprite renderer to determine the rendering order of sprites regardless of their distance from the camera. A sprite, or group of sprites, can be assigned to a sorting layer.

These sorting layers are given a sorting order. The items in the sorting layer are rendered regardless of distance to the camera based on this sorting order.

For even more control, individual sprites

can be assigned an Order In Layer value to define the rendering order of sprites within a sorting layer.

Sorting layers can be found in the

Tags and Layers Settings panel.

Y sorting is illusion of depth in 2 d spase - based on the y axis position objects are far or near depends of the order they overlapped each other as well as the method of 2d masking

Screen Shot 2019-03-19 at 10.02.37.png
Screen Shot 2019-03-19 at 10.02.27.png
Screen Shot 2019-03-19 at 10.34.26.png
Screen Shot 2019-03-19 at 09.56.20.png

OPTIMIZATION

Optimizing model geometry

There are two basic rules for optimizing the geometry of a model:

  • Don’t use any more triangles than necessary

  • Try to keep the number of UV mapping seams and hard edges (doubled-up vertices) as low as possible

Lighting performance

The fastest option is always to create lighting that doesn’t need to be computed at all. To do this, use Lightmapping to “bake” static lighting just once, instead of computing it each frame. The process of generating a lightmapped environment takes only a little longer than just placing a light in the scene
 in Unity, but:

  • It runs a lot faster (2–3 times faster for 2-per-pixel lights)

  • It looks a lot better, as you can bake global illumination and the lightmapper
     can smooth the results

LOD and per-layer cull distances

Culling objects involves making objects invisible. This is an effective way to reduce both the CPU and GPU load.

In many games, a quick and effective way to do this without compromising the player experience is to cull small objects more aggressively than large ones. For example, small rocks and debris could be made invisible at long distances, while large buildings would still be visible.

Realtime shadows

Realtime shadows are nice, but they can have a high impact on performance, both in terms of extra draw calls for the CPU and extra processing on the GPU. 

Simple checklist to make your game faster

  • Keep the vertex count below 200K and 3M per frame when building for PC (depending on the target GPU).

  • If you’re using built-in shaders, pick ones from the Mobile or Unlit categories. They work on non-mobile platforms as well, but are simplified and approximated versions of the more complex shaders.

  • Keep the number of different materials per scene low, and share as many materials between different objects as possible.

  • Set the Static property on a non-moving object to allow internal optimizations like static batching
    .

  • Only have a single (preferably directional) pixel light affecting your geometry, rather than multiples.

  • Bake lighting rather than using dynamic lighting.

  • Use compressed texture formats when possible, and use 16-bit textures over 32-bit textures.

  • Avoid using fog where possible.

  • Use Occlusion Culling
     to reduce the amount of visible geometry and draw-calls in cases of complex static scenes with lots of occlusion. Design your levels with occlusion culling in mind.

  • Use skyboxes to “fake” distant geometry.

  • Use pixel shaders or texture combiners to mix several textures instead of a multi-pass approach.

  • Use half precision variables where possible.

  • Minimize use of complex mathematical operations such as pow, sin and cos in pixel shaders.

  • Use fewer textures per fragment.

bottom of page