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.
This third instalment on Volumetric Rendering will explain how to shade volumes in a realistic fashion. This essential step is what gives threedimensionality to the flat, unlit shapes that have been generated so far with raymarching.
You can find here all the other posts in this series:
Part 1, Part 2, Part 3, Part 4, Part 5, [download the Unity3D package]
Why is it colder at the poles and hotter on the equator? This question, which seems completely unrelated to shaders, is actually fundamental to understand how lighting models work. As explained in the previous part of this tutorial, surface shaders use a mathematical model to predict how light will reflect on triangles. Generally speaking, Unity supports two types of shading techniques, one for matte and one for specular materials. The former ones are perfect for opaque surfaces, while the latter ones simulate objects which reflections. The Maths behind these lighting models can get quite complicated, but understanding how they work is essential if you want to create your own, custom lighting effect. Up to Unity4.x, the default diffuse lighting model was based on the Lambertian reflectance. Continue reading
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.
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.
The diagram below loosely represents the three different entities which plays a role in the rendering workflow of Unity3D: