---
# System prepended metadata

title: '**Shading** Sanity Check'
tags: [Sanity Check, Shading, Pipeline, TD]

---

[:arrow_left:](/e1lgjbjFT_e5WXE4I5r6lw?both) To Shading Dashboard
[:arrow_left:](/WQum2tYYSXGaBjnU2wMxzQ) To Pirata Dashboard

# **Shading** Sanity Check
###### tags: `Shading` `Pipeline` `Sanity Check` `TD`

## En fonctionnement

### Scene: 
1. :heavy_check_mark: **Framerange** : entre 1001 et 1200.
2. :heavy_check_mark: **Time unit** : PAL
3. :heavy_check_mark: **Nomenclature** : vérification que tous les *nodes* respectent la nomenclature éditée de ["Shading Nomenclature"](/rTyB7csVRl2djTv3kQ8NFg?view). :exclamation: Uniquement pour les *Elements* et les *Modules*.
4. :heavy_check_mark: **AOV** : aucun toléré
5. :heavy_check_mark: **Render layers** : aucun toléré
4. :heavy_check_mark: **Display layers** : aucun toléré
5. :heavy_check_mark: **Cameras** : seules les caméras par défaut sont tolérées

### Shaders
1. :heavy_check_mark: **Default lambert** : vérification que "lambert1" existe et qu'il n'a aucune connexion.
2. :heavy_check_mark: **Shader node types** : vérification des types chaque *node* de toutes les branches de *shading groups*. Les types de *nodes* toléré sont notés dans ["Shading Nomenclature"](/rTyB7csVRl2djTv3kQ8NFg?view).
3. :heavy_check_mark: **BlendColors** : vérification qu'il n'y a aucun *BlendColors* connecté à un autre *BlendColors*.
4. :heavy_check_mark: **Shader attributes** : vérification des valeurs des attributs des différents shaders. [détails](#Shader-attributes) :exclamation: Dans `"ShadingAnim"`, vérification uniquement pour les *shaders* de type *viewport*.

### Mesh :
1. :heavy_check_mark: **Redshift shape attributes** : vérification des valeurs des attributs Redshift sur les *shapes*. :exclamation: Uniquement pour `"ShadingRender"`. [détails](#Redshift-shape-attributes) 

### References :
1. :heavy_check_mark: **Pasted references** : aucune tolérée
2. :heavy_check_mark: **References** : seules les références de **modeling** sont tolérées

### Autres Nodes :
1. :heavy_check_mark: **Unknown nodes** : aucun toléré
5. :heavy_check_mark: **File nodes** : vérification des valeurs de certains attributs. [détails](#File-attributes)
---

## Détails
### Redshift shape attributes
```
{
    'error': {
        'rsEnableSubdivision': True,
        'rsSubdivisionRule': 0,
        'rsScreenSpaceAdaptive': True,
        'rsDoSmoothSubdivision': True,
        'rsMinTessellationLength': 1,
        'rsMaxTessellationSubdivs': 3,
        'rsOutOfFrustumTessellationFactor': 2,
        'rsLimitOutOfFrustumTessellation': False
    },
    'warning': {
        'rsEnableDisplacement': False
    }
}
```

### File attributes
```
{
    'error': {
        'rsFilterEnable': 0,  # None
        'colorSpace': 'Raw',
    },
    'warning': {
    }
}
```

### Shader attributes
```
lambert:
    type: viewport
    diffuse:
        erreur si supérieur à 1.0
        avertissement si inférieur à 0.5

RedshiftMaterial
    type: render
    refl_ior:
        erreur si inférieur à 1.0 ou supérieur à 1.51
    diffuse_weight:
        erreur si supérieur à 1.0
        avertissement si inférieur à 0.5
    refl_fresnel_mode:
        erreur si différent de "Metalness" ou "IOR"
    refl_metalness:
        erreur si différent de 0.0
    refl_roughness:
        erreur si inférieur à 0.15
    ms_amount:
        erreur si différent de 0.0
    coat_roughness:
        erreur si inférieur à 0.15
    coat_fresnel_mode:
        erreur si différent de "IOR"
    coat_ior:
        erreur si inférieur à 1.0 ou supérieur à 2.2
    depth_override:
        erreur si coché
```


## À faire *(à vérifier, peut-être obsolète)*


6. - Check uvs coordinates  
       - No Udim vertical :heavy_check_mark: 
       - No Udim negatif :heavy_check_mark: 
7. - Pas d'assignation par faces :heavy_check_mark: 

8. - Attribut de node
       - Node de fresnel pas en IOR :heavy_check_mark: 
9. - File node :heavy_check_mark: 
       - Raw

Cheks modé à refaire:
- Check if scene has selection sets.
- Check if redshift loaded.

Groups
- Check of nomenclatures (must start by U, C ou L, R)
- Check if group is freeze transform
- Check if group is hidden

Meshes
- Check of nomenclatures (must start by U, C ou L, R)
- Check of shape nomenclature (must be same as transform)
- Check if mesh is Freeze Transf
- Check if mesh has history
- Check if mesh has double shape
- Check if mesh is hidden
- Check if mesh has wrong render stats
- Check if mesh is an instance
- Check if mesh has cleanup issues
- Check if mesh has ngones
- Check if mesh has geo size issue (must be at least 4vtx, 4 edges and 1 face)



----
SANITY SURFACING:
- Checks modé à refaire en partie
- Utilisation des réfs édits pour le check
- Emplacement/nomenclature de la réf
- Nomenclature nodes: textures, shaders, shading groups + check transform/shape
- Chemin des textures
- Pas d'attribution de shader sur les faces
- Pas de connexion au lambert1 / initialShadingGroup
- Render engine: Redshift
- Displacement et SSS (dans shader) interdits