Revision Difference
Material_Parameters#511557
This page describes possible values for the second parameter of the <page>Global.Material</page> function when importing .png or .jpg textures, as well as some specific material key-values being set in that process.⤶
⤶
For a list of all flags that can be controlled by settings the $flags int, see https://developer.valvesoftware.com/wiki/Material_Flags⤶
⤶
Possible values are:⤶
⤶
⤶
Value | Description |⤶
------|-------------|⤶
| nocull | Sets the [$nocull](https://developer.valvesoftware.com/wiki/$nocull) to 1 in the created material. |⤶
| alphatest | Sets the [$alphatest](https://developer.valvesoftware.com/wiki/$alphatest) to 1 in the created material instead of [$vertexalpha](https://developer.valvesoftware.com/wiki/$vertexalpha) being set to 1. |⤶
| mips | Generates [Mipmaps](https://en.wikipedia.org/wiki/Mipmap) for the imported texture, or sets **No Level Of Detail** and **No Mipmaps** if unset. |⤶
| noclamp | Makes the image able to tile when used with non standard UV maps or <page>surface.DrawTexturedRectUV</page>. Sets the CLAMPS and CLAMPT flags if unset. |⤶
| smooth | If set does nothing, if unset - enables Point Samping (Texture Filtering) on the material as well as adds the **No Level Of Detail** flag to it. |⤶
⤶
⤶
⤶
# Additional Notes ⤶
When you call <page>Global.Material</page> with a file extension, the engine creates a material and a new texture from that file.⤶
⤶
The created texture will have its size set to the closest [power of two](https://en.wikipedia.org/wiki/Power_of_two) size.⤶
⤶
The material is given the following parameters by default:⤶
⤶
```⤶
"UnlitGeneric"⤶
{⤶
"$basetexture" "<set to the newly created texture>"⤶
"$vertexcolor" "1"⤶
⤶
"$realwidth" "X" // The width of the actual png/jpg file⤶
"$realheight" "X" // The height of the actual png/jpg file⤶
⤶
// Custom parameters⤶
"$nocull" "1" // Only set if nocull parameter is given⤶
⤶
"$alphatest" "1" // Only set if alphatest parameter is given⤶
"vertexalpha" "1" // Only set if alphatest parameter is NOT given⤶
}⤶
```⤶
⤶
⤶
## vertexlitgeneric ⤶
⤶
⤶
⤶
This is used in the VMT of most models that need correct lighting and shadows.⤶
You don't really need to worry about it for 2D textures though, since they don't need lighting.⤶
The other commonly used option is **unlitgeneric**, which makes the model have no lighting at all, similar to typing **mat_fullbright 1** in the console.⤶
It is unknown why it exists for 2D textures though, probably just for usage with <page>Global.Mesh</page>.⤶
⤶
## nocull ⤶
⤶
⤶
⤶
This makes the back of the texture get drawn all the time.⤶
If you're working in <page>cam.Start3D2D</page> then it can help if you want a double sided texture.⤶
⤶
## alphatest ⤶
⤶
⤶
⤶
This makes the material have an alpha of either 0 or 1, instead of a range between those values.⤶
It makes the alpha edges look very hard, but it can fix some transparency related problems.⤶
It can be used to allow alpha in stencils. If you're trying to use a material in a stencil with an alpha channel, use alphatest.⤶
[It also allows the flashlight cast shadows from the material](https://developer.valvesoftware.com/wiki/$translucent#Flickering_and_reversed_depth).⤶
⤶
## mips ⤶
⤶
⤶
⤶
This makes low-res versions of the texture that it swaps out as it gets smaller.⤶
It can help improve performance, and you usually can't see the difference.⤶
⤶
This can improve smoothing if you're scaling down the texture a lot.⤶
⤶
## noclamp ⤶
⤶
⤶
⤶
This allows the texture to tile, so if you want a repeating pattern then it can help.⤶
<page>surface.DrawTexturedRectUV</page> will help you draw a pattern.⤶
It also stops the edges getting stretched, which can make it look smoother.⤶
⤶
## smooth ⤶
⤶
⤶
⤶
This stops point sampling, which makes textures look like Minecraft.⤶
It makes the texture look smoother when you scale it.