Sha256: eaea267bb92352968ad7ed1818a3ebb500b26fadb3b0f71bd9622db9aa3a0186

Contents?: true

Size: 1.39 KB

Versions: 14

Compression:

Stored size: 1.39 KB

Contents

uniform vec4 brickColor;
uniform vec4 mortarColor;
uniform vec2 brickSize;
uniform vec2 brickPct;
uniform float brickRoughness;
uniform float mortarRoughness;

#define Integral(x, p) ((floor(x) * p) + max(fract(x) - (1.0 - p), 0.0))

czm_material czm_getMaterial(czm_materialInput materialInput)
{
    czm_material material = czm_getDefaultMaterial(materialInput);

    // From OpenGL Shading Language (3rd edition) pg. 194, 501
    vec2 st = materialInput.st;
    vec2 position = st / brickSize;
    if(fract(position.y * 0.5) > 0.5) {
        position.x += 0.5;    
    }
        
    //calculate whether to use brick or mortar (does AA)
    vec2 filterWidth = vec2(0.02);
    vec2 useBrick = (Integral(position + filterWidth, brickPct) - 
                       Integral(position, brickPct)) / filterWidth;
    float useBrickFinal = useBrick.x * useBrick.y;
    vec4 color = mix(mortarColor, brickColor, useBrickFinal);
    
    //Apply noise to brick
    vec2 brickScaled = vec2(st.x / 0.1, st.y / 0.006);
    float brickNoise = abs(czm_snoise(brickScaled) * brickRoughness / 5.0);
    color.rg += brickNoise * useBrickFinal;
    
    //Apply noise to mortar
    vec2 mortarScaled = st / 0.005;
    float mortarNoise = max(czm_snoise(mortarScaled) * mortarRoughness, 0.0);
    color.rgb += mortarNoise * (1.0 - useBrickFinal); 

    material.diffuse = color.rgb;
    material.alpha = color.a;
    
    return material;
}

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
cesium-0.24.1 app/assets/javascripts/Shaders/Materials/BrickMaterial.glsl
cesium-0.24.0 app/assets/javascripts/Shaders/Materials/BrickMaterial.glsl
cesium-0.23.0 app/assets/javascripts/Shaders/Materials/BrickMaterial.glsl
cesium-0.22.0 app/assets/javascripts/Shaders/Materials/BrickMaterial.glsl
cesium-0.21.1 app/assets/javascripts/Shaders/Materials/BrickMaterial.glsl
cesium-0.21 app/assets/javascripts/Shaders/Materials/BrickMaterial.glsl
cesium-0.20.0 app/assets/javascripts/Shaders/Materials/BrickMaterial.glsl
cesium-0.19.0 app/assets/javascripts/Shaders/Materials/BrickMaterial.glsl
cesium-0.18.0 app/assets/javascripts/Shaders/Materials/BrickMaterial.glsl
cesium-0.17.0 app/assets/javascripts/Shaders/Materials/BrickMaterial.glsl
cesium-0.16.0 app/assets/javascripts/Shaders/Materials/BrickMaterial.glsl
cesium-0.15.0 app/assets/javascripts/Shaders/Materials/BrickMaterial.glsl
cesium-0.14.0 app/assets/javascripts/Shaders/Materials/BrickMaterial.glsl
cesium-0.13.2 app/assets/javascripts/Shaders/Materials/BrickMaterial.glsl