mat_oil_paint

Oil Paint

drying-oil paint · artist oil paint, linseed-oil paint, oils
metallic 0.00
hue shift +0°

Pigment ground into linseed (or walnut, or safflower) oil. Dries by oxidation over days to months — not by evaporation — so the painter can keep working into a wet surface for hours. Six hundred years of European oil painting are inside this medium. Slow, smelly, beautiful. Cleans with mineral spirits, not water.

Pigment dispersed in a drying oil (typically linseed) that polymerizes by oxidative crosslinking. Touch-dry in 1–3 days for thin films; full cure can take six months to several years depending on pigment, oil, and film thickness. Yellowing of linseed-bound whites is the canonical aging artifact. ASTM D4302 governs labelling. Solvents and mediums (turpentine, OMS, alkyd, stand oil) modulate flow and dry time.

physical

  • density_g_cm31.45
  • solids_pct_typical90
  • vehiclelinseed (or other drying) oil
source: Wikipedia; W&N technical literature

Sustainability

  • recyclabilitylow — natural drying oils are renewable, but solvents and many pigments are not curbside-friendly
  • biodegradableFalse
  • certificationsASTM D4302 (artist oil colors), ASTM D4236 (toxicity labelling)
visual
wet, deep, oily sheen; cures to satin or matte depending on medium
tactile
wet — slick, lingering; dry — smooth, slightly resilient under fingernail
weight perception
light
acoustic
the brush against canvas is the only sound

PBR starter values

Principled BSDF defaults derived from the sphere glossy finish. Reasonable seed for Blender, Substance, Keyshot, Rhino — tune per material.

# finish:      glossy
albedo        #3a4860
metallic      0.00
roughness     0.25
ior           1.45
transmission  0.00
clearcoat     0.40
sheen         0.00
anisotropic   0.00
copy as JSON
{
  "albedo": "#3a4860",
  "metallic": 0.0,
  "roughness": 0.25,
  "ior": 1.45,
  "transmission": 0.0,
  "clearcoat": 0.4,
  "sheen": 0.0,
  "anisotropic": 0.0
}
Blender 4.x Python
# Blender 4.x — Principled BSDF
# Oil Paint · finish: glossy
import bpy
mat = bpy.data.materials.new(name="mat_oil_paint")
mat.use_nodes = True
bsdf = mat.node_tree.nodes["Principled BSDF"]
bsdf.inputs["Base Color"].default_value         = (0.0423, 0.0648, 0.117, 1.0)
bsdf.inputs["Metallic"].default_value           = 0.000
bsdf.inputs["Roughness"].default_value          = 0.250
bsdf.inputs["IOR"].default_value                = 1.450
bsdf.inputs["Transmission Weight"].default_value = 0.000
bsdf.inputs["Coat Weight"].default_value        = 0.400
bsdf.inputs["Sheen Weight"].default_value       = 0.000
bsdf.inputs["Anisotropic"].default_value        = 0.000
KeyShot Python (lux)
# KeyShot 11+ — lux Python API, Generic material
# Oil Paint · finish: glossy
# Run from Window → Scripting Console
import lux
mat = lux.createMaterial(name="mat_oil_paint", materialType="Generic")
mat.setProperty("diffuse",      (58, 72, 96))   # 8-bit sRGB
mat.setProperty("metallic",     0.000)
mat.setProperty("roughness",    0.250)
mat.setProperty("indexOfRefraction", 1.450)
mat.setProperty("transparency", 0.000)
mat.setProperty("coatingWeight", 0.400)
Substance pbrMetalRough
{
  "_format": "Substance Designer / Painter \u2014 pbrMetalRough constants",
  "_about": "Oil Paint \u00b7 finish: glossy",
  "baseColor": {
    "r": 0.0423,
    "g": 0.0648,
    "b": 0.117
  },
  "metallic": 0.0,
  "roughness": 0.25,
  "ior": 1.45,
  "opacity": 1.0,
  "anisotropyLevel": 0.0,
  "_notes": "Channels listed are the standard Substance pbrMetalRough output. Drop into a Uniform Color node per channel, or as the constant input on a layered stack."
}
glTF 2.0 Metallic-Roughness
{
  "asset": {
    "version": "2.0",
    "generator": "ForMatter"
  },
  "materials": [
    {
      "name": "mat_oil_paint",
      "pbrMetallicRoughness": {
        "baseColorFactor": [
          0.0423,
          0.0648,
          0.117,
          1.0
        ],
        "metallicFactor": 0.0,
        "roughnessFactor": 0.25
      },
      "extensions": {
        "KHR_materials_ior": {
          "ior": 1.45
        },
        "KHR_materials_clearcoat": {
          "clearcoatFactor": 0.4
        }
      }
    }
  ]
}
USD Preview Surface
# USD Preview Surface — UsdShade.MaterialLook prim attributes
# Oil Paint · finish: glossy
def Material "mat_oil_paint" {
    token outputs:surface.connect = </mat_oil_paint/PreviewSurface.outputs:surface>

    def Shader "PreviewSurface" {
        uniform token info:id = "UsdPreviewSurface"
        color3f inputs:diffuseColor = (0.0423, 0.0648, 0.117)
        float   inputs:metallic     = 0.000
        float   inputs:roughness    = 0.250
        float   inputs:ior          = 1.450
        float   inputs:opacity      = 1.000
        float   inputs:clearcoat    = 0.400
        token   outputs:surface
    }
}
↓ download glTF material