mirror of
https://thingvellir.net/git/overte
synced 2025-03-27 23:52:03 +01:00
60 lines
1.9 KiB
Text
60 lines
1.9 KiB
Text
<!
|
|
// Material.slh
|
|
// fragment shader
|
|
//
|
|
// Created by Sam Gateau on 12/16/14.
|
|
// Copyright 2013 High Fidelity, Inc.
|
|
//
|
|
// Distributed under the Apache License, Version 2.0.
|
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
|
!>
|
|
<@if not MODEL_MATERIAL_SLH@>
|
|
<@def MODEL_MATERIAL_SLH@>
|
|
|
|
struct Material {
|
|
vec4 _emissiveOpacity;
|
|
vec4 _albedoRoughness;
|
|
vec4 _fresnelMetallic;
|
|
vec4 _spareKey;
|
|
};
|
|
|
|
uniform materialBuffer {
|
|
Material _mat;
|
|
};
|
|
|
|
Material getMaterial() {
|
|
return _mat;
|
|
}
|
|
|
|
vec3 getMaterialEmissive(Material m) { return m._emissiveOpacity.rgb; }
|
|
float getMaterialOpacity(Material m) { return m._emissiveOpacity.a; }
|
|
|
|
vec3 getMaterialAlbedo(Material m) { return m._albedoRoughness.rgb; }
|
|
float getMaterialRoughness(Material m) { return m._albedoRoughness.a; }
|
|
|
|
vec3 getMaterialFresnel(Material m) { return m._fresnelMetallic.rgb; }
|
|
float getMaterialMetallic(Material m) { return m._fresnelMetallic.a; }
|
|
|
|
float getMaterialShininess(Material m) { return 1.0 - getMaterialRoughness(m); }
|
|
|
|
int getMaterialKey(Material m) { return floatBitsToInt(m._spareKey.w); }
|
|
|
|
const int EMISSIVE_VAL_BIT = 0x00000001;
|
|
const int UNLIT_VAL_BIT = 0x00000002;
|
|
const int ALBEDO_VAL_BIT = 0x00000004;
|
|
const int METALLIC_VAL_BIT = 0x00000008;
|
|
const int GLOSSY_VAL_BIT = 0x00000010;
|
|
const int OPACITY_VAL_BIT = 0x00000020;
|
|
const int OPACITY_MASK_MAP_BIT = 0x00000040;
|
|
const int OPACITY_TRANSLUCENT_MAP_BIT = 0x00000080;
|
|
|
|
const int EMISSIVE_MAP_BIT = 0x00000100;
|
|
const int ALBEDO_MAP_BIT = 0x00000200;
|
|
const int METALLIC_MAP_BIT = 0x00000400;
|
|
const int ROUGHNESS_MAP_BIT = 0x00000800;
|
|
const int NORMAL_MAP_BIT = 0x00001000;
|
|
const int OCCLUSION_MAP_BIT = 0x00002000;
|
|
const int LIGHTMAP_MAP_BIT = 0x00004000;
|
|
|
|
|
|
<@endif@>
|