Gamedev Pronunciation Guide

Introduction

If you are working in the field of Computer Science, chances are you might have encountered quite a lot of technical terms and foreign names, such as Dijkstra and Nyquist. And chances are that you have learnt a good part of them solely from books. And there is nothing more embarrassing than being in an interview and mispronouncing some key term in your field of expertise! Learning the correct pronunciation is also an act of respect towards the many men and women which dedication has become the foundation of our daily work.

This page is a collection of some of the most used—and tricky to pronounce—terms and names from Computer Science, with a focus on Game Development and Computer Graphics. For each term, you can find the “most correct” pronunciation using the International Phonetic Alphabet. For many others, you will also find the respective phonetic respelling used by Wikipedia.

Before you keep reading, there are a few points to keep in mind. Many of the names in this list are in foreign languages, and they cannot be pronounced “the correct way” in English. They have, however, an Anglicised version that makes use of the closest sounds found in the English language. Fourier, for instance, is pronounced [fuʁje] in French, but is often approximated in English as /ˈfʊrieɪ,/ (FOOR-ee-ey). Yet, another commonly accepted variations is /ˈfʊriər/ (FOOR-ee-er). Many names and technical terms also variations between British English (🇬🇧) and American English (🇺🇸); effort was made to include both variants.

If you are interested to learn the pronunciation of technical terms, Computational Graphics Pronunciation Guide is another good resource. I hope you will find this collection useful, and feel free to get in touch to suggest a change or a new term to add.

Continue reading

Tentacle Suckers Shader

Following the unexpected success of the tutorial on Inverse Kinematics for Tentacles, I have decided to share the shader that I used to make them so realistic.

If you are not familiar with shaders, fear not. This tutorial will be target at beginners, and you’ll only need a basic understanding of how Unity works.

  • Introduction
  • Part 1. Creating a new Shader
  • Part 2. Refitting the Shader
  • Part 3. Normal Extrusion
  • Part 4. Sucker Waves
  • Part 5. Selective Extrusion
  • Conclusion & Download

A link to download the full Unity package for this tutorial is provided at the end.

Continue reading

Arrays & shaders: heatmaps in Unity

This tutorial explains how to pass arrays to shaders in Unity. This feature has been present for a long time, but is mostly undocumented. Unity 5.4.0 Beta 1 will introduce a proper API to pass arrays to shaders; this technique however will work with any previous version.

If you are using Unity 5.4+, please refer to the Arrays & Shaders in Unity 5.4+ tutorial.

Continue reading

Screen shaders and image effects in Unity3D

Part 1, Part 2, Part 3, Part 4, Part 5, [download the Unity3D package]

If you are using Unity3D you may be familiar with image effects. They are scripts which, once attached to a camera, alter its rendering output. Despite being presented as standard C# scripts, the actual computation is done using shaders. So far, materials have been applied directly to geometry; they can also be used to render offscreen textures, making them ideal for postprocessing techniques. When shaders are used in this fashion, they are often referred as screen shaders.

Continue reading

Vertex and fragment shaders in Unity3D

Part 1, Part 2, Part 3, Part 4, Part 5, [download the Unity3D package]

The previous three posts of this tutorial have introduced surface shaders and how they can be used to specify physical properties (such as albedo, gloss and specular reflections) of the materials we want to model. The other type of shader available in Unity3D is called vertex and fragment shader. As the name suggests, the computation is done in two steps. Firstly, the geometry is passed through a function called (typically called vert) which can alter the position and data of each vertex. Then, the result goes through a frag function which finally outputs a colour.

Vertex and Fragment shader Continue reading

Surface shaders in Unity3D

Part 1, Part 2, Part 3, Part 4, Part 5

This is the second part of a series of posts on Unity3D shaders, and it will focus on surface shaders. As previously mentioned, shaders are special programs written in a language called Cg / HLSL which is executed by GPUs. They are used to draw triangles of your 3D models on the screen. Shaders are, in a nutshell, the code which represents how different materials are rendered. Surface shaders are introduced in Unity3D to simplify the way developers can define the look of their materials.

Surface shader Continue reading

A gentle introduction to shaders in Unity3D

Part 1, Part 2, Part 3, Part 4, Part 5

We can safely say that Unity3D has made game development easier for a lot of people. Something where it still has a long way to go is, with no doubt, shader coding. Often surrounded by mystery, a shader is a program specifically made to run on a GPU. It is, ultimately, what draws the triangles of your 3D models. Learning how to code shaders is essential if you want to give a special look to your game. Unity3D also uses them for postprocessing, making them essential for 2D games as well. This series of posts will gently introduce you to shader coding, and is oriented to developers with little to no knowledge about shaders.

Introduction

The diagram below loosely represents the three different entities which plays a role in the rendering workflow of Unity3D:

shader theory Continue reading