# Glass Model

This model represents materials with a glass-like quality. It allows for selecting and editing:

* `Environment Mapping`
* `Normal Mapping`
* `Base Texture`, `Color`, and `Blending`
* `Reflection Color`, `Roughness`, and `Fresnel`
* as well as adjusting `Shadow Sensitivity`.

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

![](https://2561100106-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ff6JZovzOqBctA4C1o76u%2Fuploads%2Fgit-blob-126c2c9f695e906518004f853c8dd93d0e2fa6bd%2Fglassmodelmat1.png?alt=media)

## Attributes

### Material

![Material](https://2561100106-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ff6JZovzOqBctA4C1o76u%2Fuploads%2Fgit-blob-df3cd5c9af347468aebdb146ca673992638851d7%2Fglassmodelmat2.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.

### Environment Map

![Environment Map](https://2561100106-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ff6JZovzOqBctA4C1o76u%2Fuploads%2Fgit-blob-2fa29745799cab8b7d9471cbf4aba0f99fc955d0%2Fpbrenvironmentmap.png?alt=media)

This enables the user to set a **Texture** which reflects the environment around an **Object**, meaning that the **Object** reflects the surface surrounding it (whether that be the background, another **Object**, or both combined.).

Initially, there is only the **Attribute** `Overwrite Env.` which is toggled off by default. If it is toggled on, all of the other **Attributes** are revealed.

`Environment Map` is the desired **Texture** to be used (a *equirectangular* or *cubemap* **Texture** of type *PNG*, *JPG*, *EXR*, or *HDR*).

`Tint` provides the color of the tint. The **Texture’s** RGB channels (not alpha) are then multiplied by the chosen tint.

`Exposure` determines how bright the **Texture** should be with a value from 0 to infinity.

`Rotation` sets the beginning of the image of the provided `Texture` to be "delayed" in the x or direction, moving it from left to right. The resulting "cut off" piece wraps around to the start of the image. Its range is from 0 degrees to 360 degrees.

`Tilt` sets the beginning of the image of the provided `Texture` to be "delayed" in the y or direction, moving it from bottom to top. The resulting "cut off" piece wraps around to the start of the image. Its range is from -90 degrees to 90 degrees.

`Projection Height` is where the ‘point of visualization’ starts. If set to 50%, this would be halfway from the bottom of the image and it would display upwards from there. To see a visual example of this, please refer to the video linked [here](https://www.youtube.com/watch?v=7axPpWTcFrw).

### Normals

![Normals](https://2561100106-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ff6JZovzOqBctA4C1o76u%2Fuploads%2Fgit-blob-283c4c1dd690ce2a9fa23460f287fbb4de6aea89%2Fglassmodel3.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.

### Base

![Base](https://2561100106-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ff6JZovzOqBctA4C1o76u%2Fuploads%2Fgit-blob-57e83f10fe10d1bc52211b0d3a14f4613ec1b6df%2Fglassbaseatts.png?alt=media)

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

`Albedo Map` 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`.

### Reflection

![Reflection](https://2561100106-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ff6JZovzOqBctA4C1o76u%2Fuploads%2Fgit-blob-9a883347a03c2b3b75575a6605d835b6e39c0cfb%2Fglassmodelmat3.png?alt=media)

These **Attributes** simulate a reflective surface. `Roughness` determines how rough an object is, limiting or strengthening reflectivity.

`Fresnel` encompasses the idea of the angle of incidence (the angle between the line of sight of the observer and the object being observed) influencing the perceived reflectivity of a surface. A wider angle creates less reflection and a smaller angle creates greater reflection.

### Tweak

![Tweak](https://2561100106-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ff6JZovzOqBctA4C1o76u%2Fuploads%2Fgit-blob-3a9c39156249c833fd98f0a07c1c2a62eda539b5%2Fglasstweak20232.png?alt=media)

`Shadow Sensitivity` determines the percentage of influence by the shadow. For example, a 1 would set an **Object's** surface to completely black. 0.5 would mean that even if the **Object** is in shadow, it would still have 50% of its color.

### 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
* `Overwrite Env.`: env\_overwrite
* `Environment Map`: environment\_map
* `Tint`: env\_tint
* `Exposure`: env\_exposure
* `Rotation`: env\_rotate
* `Tilt`: env\_tilt
* `Projection Height`: env\_projection\_height
* `Use Normal Map`: use\_normal\_map
* `Normal Map`: normal\_map
* `Albedo Map`: albedo\_map
* `Color` (Base): albedo\_color
* `Blending`: albedo\_map\_blending
* `Color` (Reflection): reflection\_color
* `Roughness`: reflection\_roughness
* `Fresnel`: reflection\_fresnel
* `Shadow Sensitivity`: shadow\_sensitivity
