# Phong Model

This model represents the standard Phong model, characterized by a shiny surface marked by pinpointed highlights. It allows for selecting and editing:

* `Diffuse Color`, `Texture`, and `Blending`
* `Specular Color`, `Texture`, and `Blending`
* `Normal Mapping`
* as well as tweaking `Shininess` and `Emissiveness`.

All these **Attributes** are described in greater detail below.

![](https://4263346935-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLnh3x8s9fddWeG8TaAug%2Fuploads%2Fgit-blob-9c450dd3d512e61276f6afacfc1f0d74b4583e56%2Fphongmodel120241.png?alt=media)

## Attributes

### Material

![Material](https://4263346935-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLnh3x8s9fddWeG8TaAug%2Fuploads%2Fgit-blob-2f665784a50b3795c71755dcf760ff134787062b%2Fphongmodelmat1.png?alt=media)

This **Attribute** provides the `Name` of the **Material** as well as the `Shading model` type. It also sets the `Alpha` value if it is toggled on.

The `Alpha` channel is additional to the RGB channels and adds a kind of transparency to the object by mixing the background and foreground colors. For example, if the `Alpha` value is set to 0.5, then this would result in a 50% mix of the object and its background, providing a somewhat see-through quality.

### Diffuse

![Diffuse](https://4263346935-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLnh3x8s9fddWeG8TaAug%2Fuploads%2Fgit-blob-a03d80965014c72fc6d13a7a212f4cf95206d17c%2Fphongmodel320241.png?alt=media)

`Color` of `Diffuse` sets the base diffuse color of the model.

`Texture` takes any image to add any desired visual information.

Using `Blending`, the `Texture` and `Color` are combined. If `Blending` is set to 1 then 100% of the `Texture` is displayed on the **Object**. If 0.5, then it displays a 50/50 ratio of `Texture` and `Color`.

### Normals

![Normals](https://4263346935-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLnh3x8s9fddWeG8TaAug%2Fuploads%2Fgit-blob-62202c8b7c7de4c0d8a95b2f949c441b5b90b93f%2Fphongmodel4.png?alt=media)

A normal is a line perpendicular to the surface of some object. _Normal mapping_ distorts these normals and simulates a surface with light and shadow, even if the object surface itself is flat. This is only possible with a light source. The `Normal Map` sets this surface and `Use Normal Map` toggles it on and off.

### Specular

![Specular](https://4263346935-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLnh3x8s9fddWeG8TaAug%2Fuploads%2Fgit-blob-dc02fda9cd3ab29eea380cd86bf2b93da55abd76%2Fphongmodel520241.png?alt=media)

`Specular` is the point of reflection of the light source.

`Color` sets the color of it.

`Texture` takes any image to add any desired visual information.

Using `Blending`, the `Texture` and `Color` are combined. If `Blending` is set to 1 then 100% of the `Texture` is displayed on the **Object**. If 0.5, then it displays a 50/50 ratio of `Texture` and `Color`.

### Tweak

![Tweak](https://4263346935-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLnh3x8s9fddWeG8TaAug%2Fuploads%2Fgit-blob-2f00473cf566d6d3084259cda31d5227b403c688%2Fphongmodel620241.png?alt=media)

`Shininess` determines how 'shiny' a **Material** will be. This means that the higher the value, the 'harder' the surface looks at the smaller the reflection of light.

`Emissiveness` influences the color of items around an **Object**, simulating a light source. For example, the lights of a car combined with higher emissiveness will show a stronger glow on the surrounding car parts, with th car light's color interacting with its surroundings as well.

### Property Names

It is possible to hover over each **Attribute** and access their property names to be used in code or **Nodes**. A complete list of these names is as follows:

* `Use Alpha`: use\_alpha
* `Alpha`: alpha
* `Color` (Diffuse): diffuse\_color
* `Texture` (Diffuse): diffuse\_map
* `Blending` (Diffuse): diffuse\_map\_blending
* `Use Normal Map`: use\_normal\_map
* `Normal Map`: normal\_map
* `Color` (Specular): specular\_color
* `Texture` (Specular): specular\_map
* `Blending` (Specular): specular\_map\_blending
* `Shininess`: shininess
* `Emissiveness`: emissiveness
