mirror of
https://github.com/overte-org/overte.git
synced 2025-08-06 14:29:50 +02:00
Removing the specular pipeline since we now take care of it with the base shader, remove unused shader include files adding the tone map pass
This commit is contained in:
parent
b66da1897d
commit
f20e1a727e
28 changed files with 121 additions and 875 deletions
|
@ -1,68 +0,0 @@
|
||||||
<!
|
|
||||||
// ForwardBuffer.slh
|
|
||||||
// libraries/render-utils/src
|
|
||||||
//
|
|
||||||
// Created by Gabriel Calero & Cristian Duarte on 31/07/17.
|
|
||||||
// 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 FORWARD_BUFFER_SLH@>
|
|
||||||
<@def FORWARD_BUFFER_SLH@>
|
|
||||||
|
|
||||||
<@include gpu/PackedNormal.slh@>
|
|
||||||
|
|
||||||
// Unpack the metallic-mode value
|
|
||||||
const float FRAG_PACK_SHADED_NON_METALLIC = 0.0;
|
|
||||||
const float FRAG_PACK_SHADED_METALLIC = 0.1;
|
|
||||||
const float FRAG_PACK_SHADED_RANGE_INV = 1.0 / (FRAG_PACK_SHADED_METALLIC - FRAG_PACK_SHADED_NON_METALLIC);
|
|
||||||
|
|
||||||
const float FRAG_PACK_LIGHTMAPPED_NON_METALLIC = 0.2;
|
|
||||||
const float FRAG_PACK_LIGHTMAPPED_METALLIC = 0.3;
|
|
||||||
const float FRAG_PACK_LIGHTMAPPED_RANGE_INV = 1.0 / (FRAG_PACK_LIGHTMAPPED_METALLIC - FRAG_PACK_LIGHTMAPPED_NON_METALLIC);
|
|
||||||
|
|
||||||
const float FRAG_PACK_SCATTERING_NON_METALLIC = 0.4;
|
|
||||||
const float FRAG_PACK_SCATTERING_METALLIC = 0.5;
|
|
||||||
const float FRAG_PACK_SCATTERING_RANGE_INV = 1.0 / (FRAG_PACK_SCATTERING_METALLIC - FRAG_PACK_SCATTERING_NON_METALLIC);
|
|
||||||
|
|
||||||
const float FRAG_PACK_UNLIT = 0.6;
|
|
||||||
|
|
||||||
const int FRAG_MODE_UNLIT = 0;
|
|
||||||
const int FRAG_MODE_SHADED = 1;
|
|
||||||
const int FRAG_MODE_LIGHTMAPPED = 2;
|
|
||||||
const int FRAG_MODE_SCATTERING = 3;
|
|
||||||
|
|
||||||
void unpackModeMetallic(float rawValue, out int mode, out float metallic) {
|
|
||||||
if (rawValue <= FRAG_PACK_SHADED_METALLIC) {
|
|
||||||
mode = FRAG_MODE_SHADED;
|
|
||||||
metallic = clamp((rawValue - FRAG_PACK_SHADED_NON_METALLIC) * FRAG_PACK_SHADED_RANGE_INV, 0.0, 1.0);
|
|
||||||
} else if (rawValue <= FRAG_PACK_LIGHTMAPPED_METALLIC) {
|
|
||||||
mode = FRAG_MODE_LIGHTMAPPED;
|
|
||||||
metallic = clamp((rawValue - FRAG_PACK_LIGHTMAPPED_NON_METALLIC) * FRAG_PACK_LIGHTMAPPED_RANGE_INV, 0.0, 1.0);
|
|
||||||
} else if (rawValue <= FRAG_PACK_SCATTERING_METALLIC) {
|
|
||||||
mode = FRAG_MODE_SCATTERING;
|
|
||||||
metallic = clamp((rawValue - FRAG_PACK_SCATTERING_NON_METALLIC) * FRAG_PACK_SCATTERING_RANGE_INV, 0.0, 1.0);
|
|
||||||
} else if (rawValue >= FRAG_PACK_UNLIT) {
|
|
||||||
mode = FRAG_MODE_UNLIT;
|
|
||||||
metallic = 0.0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
float packShadedMetallic(float metallic) {
|
|
||||||
return mix(FRAG_PACK_SHADED_NON_METALLIC, FRAG_PACK_SHADED_METALLIC, metallic);
|
|
||||||
}
|
|
||||||
|
|
||||||
float packLightmappedMetallic(float metallic) {
|
|
||||||
return mix(FRAG_PACK_LIGHTMAPPED_NON_METALLIC, FRAG_PACK_LIGHTMAPPED_METALLIC, metallic);
|
|
||||||
}
|
|
||||||
|
|
||||||
float packScatteringMetallic(float metallic) {
|
|
||||||
return mix(FRAG_PACK_SCATTERING_NON_METALLIC, FRAG_PACK_SCATTERING_METALLIC, metallic);
|
|
||||||
}
|
|
||||||
|
|
||||||
float packUnlit() {
|
|
||||||
return FRAG_PACK_UNLIT;
|
|
||||||
}
|
|
||||||
|
|
||||||
<@endif@>
|
|
|
@ -1,25 +0,0 @@
|
||||||
<!
|
|
||||||
// ForwardBufferWrite.slh
|
|
||||||
// libraries/render-utils/src
|
|
||||||
//
|
|
||||||
// Created by Gabriel Calero & Cristian Duarte on 31/07/17.
|
|
||||||
// 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 FORWARD_BUFFER_WRITE_SLH@>
|
|
||||||
<@def FORWARD_BUFFER_WRITE_SLH@>
|
|
||||||
|
|
||||||
layout(location = 0) out vec4 _fragColor0;
|
|
||||||
|
|
||||||
const float DEFAULT_ROUGHNESS = 0.9;
|
|
||||||
const float DEFAULT_SHININESS = 10.0;
|
|
||||||
const float DEFAULT_METALLIC = 0.0;
|
|
||||||
const vec3 DEFAULT_SPECULAR = vec3(0.1);
|
|
||||||
const vec3 DEFAULT_EMISSIVE = vec3(0.0);
|
|
||||||
const float DEFAULT_OCCLUSION = 1.0;
|
|
||||||
const float DEFAULT_SCATTERING = 0.0;
|
|
||||||
const vec3 DEFAULT_FRESNEL = DEFAULT_EMISSIVE;
|
|
||||||
|
|
||||||
<@endif@>
|
|
|
@ -139,8 +139,6 @@ vec3 evalSkyboxGlobalColor(mat4 invViewMat, float shadowAttenuation, float obscu
|
||||||
// color = computeHazeColorKeyLightAttenuation(color, lightDirection, position);
|
// color = computeHazeColorKeyLightAttenuation(color, lightDirection, position);
|
||||||
// }
|
// }
|
||||||
|
|
||||||
// return normal;
|
|
||||||
// return pow(color, vec3(1.0/2.2));
|
|
||||||
return color;
|
return color;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
#include "StencilMaskPass.h"
|
#include "StencilMaskPass.h"
|
||||||
#include "ZoneRenderer.h"
|
#include "ZoneRenderer.h"
|
||||||
#include "FadeEffect.h"
|
#include "FadeEffect.h"
|
||||||
|
#include "ToneMappingEffect.h"
|
||||||
#include "BackgroundStage.h"
|
#include "BackgroundStage.h"
|
||||||
#include "FramebufferCache.h"
|
#include "FramebufferCache.h"
|
||||||
#include "TextureCache.h"
|
#include "TextureCache.h"
|
||||||
|
@ -83,6 +84,10 @@ void RenderForwardTask::build(JobModel& task, const render::Varying& input, rend
|
||||||
const auto transparentInputs = DrawForward::Inputs(transparents, lightingModel).asVarying();
|
const auto transparentInputs = DrawForward::Inputs(transparents, lightingModel).asVarying();
|
||||||
task.addJob<DrawForward>("DrawTransparents", transparentInputs, shapePlumber);
|
task.addJob<DrawForward>("DrawTransparents", transparentInputs, shapePlumber);
|
||||||
|
|
||||||
|
// Lighting Buffer ready for tone mapping
|
||||||
|
const auto toneMappingInputs = ToneMappingDeferred::Inputs(framebuffer, framebuffer).asVarying();
|
||||||
|
task.addJob<ToneMappingDeferred>("ToneMapping", toneMappingInputs);
|
||||||
|
|
||||||
{ // Debug the bounds of the rendered items, still look at the zbuffer
|
{ // Debug the bounds of the rendered items, still look at the zbuffer
|
||||||
|
|
||||||
task.addJob<DrawBounds>("DrawMetaBounds", metas);
|
task.addJob<DrawBounds>("DrawMetaBounds", metas);
|
||||||
|
|
|
@ -49,36 +49,25 @@
|
||||||
#include "model_frag.h"
|
#include "model_frag.h"
|
||||||
#include "model_unlit_frag.h"
|
#include "model_unlit_frag.h"
|
||||||
#include "model_normal_map_frag.h"
|
#include "model_normal_map_frag.h"
|
||||||
#include "model_normal_specular_map_frag.h"
|
|
||||||
#include "model_specular_map_frag.h"
|
|
||||||
|
|
||||||
#include "model_fade_vert.h"
|
#include "model_fade_vert.h"
|
||||||
#include "model_normal_map_fade_vert.h"
|
#include "model_normal_map_fade_vert.h"
|
||||||
|
|
||||||
#include "model_fade_frag.h"
|
#include "model_fade_frag.h"
|
||||||
#include "model_unlit_fade_frag.h"
|
#include "model_unlit_fade_frag.h"
|
||||||
#include "model_normal_map_fade_frag.h"
|
#include "model_normal_map_fade_frag.h"
|
||||||
#include "model_normal_specular_map_fade_frag.h"
|
|
||||||
#include "model_specular_map_fade_frag.h"
|
|
||||||
|
|
||||||
#include "forward_model_frag.h"
|
#include "forward_model_frag.h"
|
||||||
#include "forward_model_unlit_frag.h"
|
#include "forward_model_unlit_frag.h"
|
||||||
#include "forward_model_normal_map_frag.h"
|
#include "forward_model_normal_map_frag.h"
|
||||||
#include "forward_model_normal_specular_map_frag.h"
|
|
||||||
#include "forward_model_specular_map_frag.h"
|
|
||||||
#include "forward_model_translucent_frag.h"
|
#include "forward_model_translucent_frag.h"
|
||||||
|
|
||||||
#include "model_lightmap_frag.h"
|
#include "model_lightmap_frag.h"
|
||||||
#include "model_lightmap_normal_map_frag.h"
|
#include "model_lightmap_normal_map_frag.h"
|
||||||
#include "model_lightmap_normal_specular_map_frag.h"
|
|
||||||
#include "model_lightmap_specular_map_frag.h"
|
|
||||||
#include "model_translucent_frag.h"
|
#include "model_translucent_frag.h"
|
||||||
#include "model_translucent_unlit_frag.h"
|
#include "model_translucent_unlit_frag.h"
|
||||||
|
|
||||||
#include "model_lightmap_fade_frag.h"
|
#include "model_lightmap_fade_frag.h"
|
||||||
#include "model_lightmap_normal_map_fade_frag.h"
|
#include "model_lightmap_normal_map_fade_frag.h"
|
||||||
#include "model_lightmap_normal_specular_map_fade_frag.h"
|
|
||||||
#include "model_lightmap_specular_map_fade_frag.h"
|
|
||||||
#include "model_translucent_fade_frag.h"
|
#include "model_translucent_fade_frag.h"
|
||||||
#include "model_translucent_unlit_fade_frag.h"
|
#include "model_translucent_unlit_fade_frag.h"
|
||||||
|
|
||||||
|
@ -216,20 +205,20 @@ void initDeferredPipelines(render::ShapePlumber& plumber, const render::ShapePip
|
||||||
auto simpleUnlitPixel = simple_textured_unlit_frag::getShader();
|
auto simpleUnlitPixel = simple_textured_unlit_frag::getShader();
|
||||||
auto simpleTranslucentPixel = simple_transparent_textured_frag::getShader();
|
auto simpleTranslucentPixel = simple_transparent_textured_frag::getShader();
|
||||||
auto simpleTranslucentUnlitPixel = simple_transparent_textured_unlit_frag::getShader();
|
auto simpleTranslucentUnlitPixel = simple_transparent_textured_unlit_frag::getShader();
|
||||||
auto modelPixel = model_specular_map_frag::getShader(); //model_frag::getShader();
|
auto modelPixel = model_frag::getShader();
|
||||||
auto modelUnlitPixel = model_unlit_frag::getShader();
|
auto modelUnlitPixel = model_unlit_frag::getShader();
|
||||||
auto modelNormalMapPixel = model_normal_specular_map_frag::getShader(); //model_normal_map_frag::getShader();
|
auto modelNormalMapPixel = model_normal_map_frag::getShader();
|
||||||
auto modelTranslucentPixel = model_translucent_frag::getShader();
|
auto modelTranslucentPixel = model_translucent_frag::getShader();
|
||||||
auto modelTranslucentUnlitPixel = model_translucent_unlit_frag::getShader();
|
auto modelTranslucentUnlitPixel = model_translucent_unlit_frag::getShader();
|
||||||
auto modelShadowPixel = model_shadow_frag::getShader();
|
auto modelShadowPixel = model_shadow_frag::getShader();
|
||||||
auto modelLightmapPixel = model_lightmap_specular_map_frag::getShader(); // model_lightmap_frag::getShader();
|
auto modelLightmapPixel = model_lightmap_frag::getShader();
|
||||||
auto modelLightmapNormalMapPixel = model_lightmap_normal_specular_map_frag::getShader(); //model_lightmap_normal_map_frag::getShader();
|
auto modelLightmapNormalMapPixel = model_lightmap_normal_map_frag::getShader();
|
||||||
auto modelLightmapFadePixel = model_lightmap_specular_map_fade_frag::getShader(); //model_lightmap_fade_frag::getShader();
|
auto modelLightmapFadePixel = model_lightmap_fade_frag::getShader();
|
||||||
auto modelLightmapNormalMapFadePixel = model_lightmap_normal_specular_map_fade_frag::getShader(); //model_lightmap_normal_map_fade_frag::getShader();
|
auto modelLightmapNormalMapFadePixel = model_lightmap_normal_map_fade_frag::getShader();
|
||||||
|
|
||||||
auto modelFadePixel = model_specular_map_fade_frag::getShader(); //model_fade_frag::getShader();
|
auto modelFadePixel = model_fade_frag::getShader();
|
||||||
auto modelUnlitFadePixel = model_unlit_fade_frag::getShader();
|
auto modelUnlitFadePixel = model_unlit_fade_frag::getShader();
|
||||||
auto modelNormalMapFadePixel = model_normal_specular_map_fade_frag::getShader(); //model_normal_map_fade_frag::getShader();
|
auto modelNormalMapFadePixel = model_normal_map_fade_frag::getShader();
|
||||||
auto modelShadowFadePixel = model_shadow_fade_frag::getShader();
|
auto modelShadowFadePixel = model_shadow_fade_frag::getShader();
|
||||||
auto modelTranslucentFadePixel = model_translucent_fade_frag::getShader();
|
auto modelTranslucentFadePixel = model_translucent_fade_frag::getShader();
|
||||||
auto modelTranslucentUnlitFadePixel = model_translucent_unlit_fade_frag::getShader();
|
auto modelTranslucentUnlitFadePixel = model_translucent_unlit_fade_frag::getShader();
|
||||||
|
@ -385,9 +374,9 @@ void initForwardPipelines(ShapePlumber& plumber, const render::ShapePipeline::Ba
|
||||||
auto skinModelNormalMapVertex = skin_model_normal_map_vert::getShader();
|
auto skinModelNormalMapVertex = skin_model_normal_map_vert::getShader();
|
||||||
|
|
||||||
// Pixel shaders
|
// Pixel shaders
|
||||||
auto modelPixel = forward_model_specular_map_frag::getShader(); //forward_model_frag::getShader();
|
auto modelPixel = forward_model_frag::getShader();
|
||||||
auto modelUnlitPixel = forward_model_unlit_frag::getShader();
|
auto modelUnlitPixel = forward_model_unlit_frag::getShader();
|
||||||
auto modelNormalMapPixel = forward_model_normal_specular_map_frag::getShader(); //forward_model_normal_map_frag::getShader();
|
auto modelNormalMapPixel = forward_model_normal_map_frag::getShader();
|
||||||
auto modelTranslucentPixel = forward_model_translucent_frag::getShader();
|
auto modelTranslucentPixel = forward_model_translucent_frag::getShader();
|
||||||
|
|
||||||
using Key = render::ShapeKey;
|
using Key = render::ShapeKey;
|
||||||
|
@ -400,8 +389,8 @@ void initForwardPipelines(ShapePlumber& plumber, const render::ShapePipeline::Ba
|
||||||
};
|
};
|
||||||
|
|
||||||
// Forward pipelines need the lightBatchSetter for opaques and transparents
|
// Forward pipelines need the lightBatchSetter for opaques and transparents
|
||||||
forceLightBatchSetter = true;
|
// forceLightBatchSetter = true;
|
||||||
// forceLightBatchSetter = false;
|
forceLightBatchSetter = false;
|
||||||
|
|
||||||
// Opaques
|
// Opaques
|
||||||
addPipeline(Key::Builder().withMaterial(), modelVertex, modelPixel);
|
addPipeline(Key::Builder().withMaterial(), modelVertex, modelPixel);
|
||||||
|
|
|
@ -1,18 +1,16 @@
|
||||||
<@include gpu/Config.slh@>
|
<@include gpu/Config.slh@>
|
||||||
<$VERSION_HEADER$>
|
<$VERSION_HEADER$>
|
||||||
// Generated on <$_SCRIBE_DATE$>
|
// Generated on <$_SCRIBE_DATE$>
|
||||||
// forward_model.frag
|
//
|
||||||
|
// forward_model_specular_map.frag
|
||||||
// fragment shader
|
// fragment shader
|
||||||
//
|
//
|
||||||
// Created by Andrzej Kapolka on 10/14/13.
|
// Created by Sam Gateau on 2/15/2016.
|
||||||
// Copyright 2013 High Fidelity, Inc.
|
// Copyright 2014 High Fidelity, Inc.
|
||||||
//
|
//
|
||||||
// Distributed under the Apache License, Version 2.0.
|
// Distributed under the Apache License, Version 2.0.
|
||||||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||||
//
|
//
|
||||||
|
|
||||||
<! <@include ForwardBufferWrite.slh@> !>
|
|
||||||
|
|
||||||
<@include ForwardGlobalLight.slh@>
|
<@include ForwardGlobalLight.slh@>
|
||||||
<$declareEvalSkyboxGlobalColor()$>
|
<$declareEvalSkyboxGlobalColor()$>
|
||||||
|
|
||||||
|
@ -22,21 +20,21 @@
|
||||||
<$declareStandardCameraTransform()$>
|
<$declareStandardCameraTransform()$>
|
||||||
|
|
||||||
<@include MaterialTextures.slh@>
|
<@include MaterialTextures.slh@>
|
||||||
<$declareMaterialTextures(ALBEDO, ROUGHNESS, _SCRIBE_NULL, _SCRIBE_NULL, EMISSIVE, _SCRIBE_NULL)$>
|
<$declareMaterialTextures(ALBEDO, ROUGHNESS, _SCRIBE_NULL, METALLIC, EMISSIVE, OCCLUSION)$>
|
||||||
|
|
||||||
in vec4 _position;
|
in vec4 _position;
|
||||||
in vec3 _normal;
|
|
||||||
in vec3 _color;
|
|
||||||
in vec2 _texCoord0;
|
in vec2 _texCoord0;
|
||||||
in vec2 _texCoord1;
|
in vec2 _texCoord1;
|
||||||
|
in vec3 _normal;
|
||||||
|
in vec3 _color;
|
||||||
|
|
||||||
out vec4 _fragColor;
|
layout(location = 0) out vec4 _fragColor0;
|
||||||
|
|
||||||
void main(void) {
|
void main(void) {
|
||||||
Material mat = getMaterial();
|
Material mat = getMaterial();
|
||||||
BITFIELD matKey = getMaterialKey(mat);
|
BITFIELD matKey = getMaterialKey(mat);
|
||||||
<$fetchMaterialTexturesCoord0(matKey, _texCoord0, albedoTex, roughnessTex, _SCRIBE_NULL, _SCRIBE_NULL, emissiveTex)$>
|
<$fetchMaterialTexturesCoord0(matKey, _texCoord0, albedoTex, roughnessTex, _SCRIBE_NULL, metallicTex, emissiveTex)$>
|
||||||
<! <$fetchMaterialTexturesCoord1(matKey, _texCoord1, occlusionTex)$> !>
|
<$fetchMaterialTexturesCoord1(matKey, _texCoord1, occlusionTex)$>
|
||||||
|
|
||||||
float opacity = 1.0;
|
float opacity = 1.0;
|
||||||
<$evalMaterialOpacity(albedoTex.a, opacity, matKey, opacity)$>;
|
<$evalMaterialOpacity(albedoTex.a, opacity, matKey, opacity)$>;
|
||||||
|
@ -46,21 +44,20 @@ void main(void) {
|
||||||
<$evalMaterialAlbedo(albedoTex, albedo, matKey, albedo)$>;
|
<$evalMaterialAlbedo(albedoTex, albedo, matKey, albedo)$>;
|
||||||
albedo *= _color;
|
albedo *= _color;
|
||||||
|
|
||||||
float metallic = getMaterialMetallic(mat);
|
|
||||||
vec3 fresnel = getFresnelF0(metallic, albedo);
|
|
||||||
|
|
||||||
float roughness = getMaterialRoughness(mat);
|
float roughness = getMaterialRoughness(mat);
|
||||||
<$evalMaterialRoughness(roughnessTex, roughness, matKey, roughness)$>;
|
<$evalMaterialRoughness(roughnessTex, roughness, matKey, roughness)$>;
|
||||||
|
|
||||||
vec3 emissive = getMaterialEmissive(mat);
|
vec3 emissive = getMaterialEmissive(mat);
|
||||||
<$evalMaterialEmissive(emissiveTex, emissive, matKey, emissive)$>;
|
<$evalMaterialEmissive(emissiveTex, emissive, matKey, emissive)$>;
|
||||||
|
|
||||||
|
float metallic = getMaterialMetallic(mat);
|
||||||
|
<$evalMaterialMetallic(metallicTex, metallic, matKey, metallic)$>;
|
||||||
|
vec3 fresnel = getFresnelF0(metallic, albedo);
|
||||||
|
|
||||||
vec3 fragPosition = _position.xyz;
|
vec3 fragPosition = _position.xyz;
|
||||||
|
vec3 fragNormal = normalize(_normal);
|
||||||
|
|
||||||
TransformCamera cam = getTransformCamera();
|
TransformCamera cam = getTransformCamera();
|
||||||
vec3 fragNormal;
|
|
||||||
fragNormal = normalize(_normal);
|
|
||||||
|
|
||||||
vec4 color = vec4(evalSkyboxGlobalColor(
|
vec4 color = vec4(evalSkyboxGlobalColor(
|
||||||
cam._viewInverse,
|
cam._viewInverse,
|
||||||
|
@ -72,7 +69,8 @@ void main(void) {
|
||||||
fresnel,
|
fresnel,
|
||||||
metallic,
|
metallic,
|
||||||
roughness),
|
roughness),
|
||||||
opacity);
|
opacity);
|
||||||
color.rgb += emissive * isEmissiveEnabled();
|
color.rgb += emissive * isEmissiveEnabled();
|
||||||
_fragColor = color;
|
|
||||||
|
_fragColor0 = color;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,18 +2,16 @@
|
||||||
<$VERSION_HEADER$>
|
<$VERSION_HEADER$>
|
||||||
// Generated on <$_SCRIBE_DATE$>
|
// Generated on <$_SCRIBE_DATE$>
|
||||||
//
|
//
|
||||||
// forward_model_normal_map.frag
|
// forward_model_normal_specular_map.frag
|
||||||
// fragment shader
|
// fragment shader
|
||||||
//
|
//
|
||||||
// Created by Andrzej Kapolka on 10/29/13.
|
// Created by Sam Gateau on 2/15/2016.
|
||||||
// Copyright 2013 High Fidelity, Inc.
|
// Copyright 2014 High Fidelity, Inc.
|
||||||
//
|
//
|
||||||
// Distributed under the Apache License, Version 2.0.
|
// Distributed under the Apache License, Version 2.0.
|
||||||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||||
//
|
//
|
||||||
|
|
||||||
<! <@include ForwardBufferWrite.slh@> !>
|
|
||||||
|
|
||||||
<@include ForwardGlobalLight.slh@>
|
<@include ForwardGlobalLight.slh@>
|
||||||
<$declareEvalSkyboxGlobalColor()$>
|
<$declareEvalSkyboxGlobalColor()$>
|
||||||
|
|
||||||
|
@ -23,7 +21,7 @@
|
||||||
<$declareStandardCameraTransform()$>
|
<$declareStandardCameraTransform()$>
|
||||||
|
|
||||||
<@include MaterialTextures.slh@>
|
<@include MaterialTextures.slh@>
|
||||||
<$declareMaterialTextures(ALBEDO, ROUGHNESS, NORMAL, _SCRIBE_NULL, EMISSIVE, OCCLUSION, SCATTERING)$>
|
<$declareMaterialTextures(ALBEDO, ROUGHNESS, NORMAL, METALLIC, EMISSIVE, OCCLUSION)$>
|
||||||
|
|
||||||
in vec4 _position;
|
in vec4 _position;
|
||||||
in vec2 _texCoord0;
|
in vec2 _texCoord0;
|
||||||
|
@ -32,40 +30,38 @@ in vec3 _normal;
|
||||||
in vec3 _tangent;
|
in vec3 _tangent;
|
||||||
in vec3 _color;
|
in vec3 _color;
|
||||||
|
|
||||||
out vec4 _fragColor;
|
layout(location = 0) out vec4 _fragColor0;
|
||||||
|
|
||||||
void main(void) {
|
void main(void) {
|
||||||
Material mat = getMaterial();
|
Material mat = getMaterial();
|
||||||
BITFIELD matKey = getMaterialKey(mat);
|
BITFIELD matKey = getMaterialKey(mat);
|
||||||
<$fetchMaterialTexturesCoord0(matKey, _texCoord0, albedoTex, roughnessTex, normalTex, _SCRIBE_NULL, emissiveTex, scatteringTex)$>
|
<$fetchMaterialTexturesCoord0(matKey, _texCoord0, albedoTex, roughnessTex, normalTex, metallicTex, emissiveTex)$>
|
||||||
<$fetchMaterialTexturesCoord1(matKey, _texCoord1, occlusionTex)$>
|
<$fetchMaterialTexturesCoord1(matKey, _texCoord1, occlusionTex)$>
|
||||||
|
|
||||||
float opacity = 1.0;
|
float opacity = 1.0;
|
||||||
<$evalMaterialOpacity(albedoTex.a, opacity, matKey, opacity)$>;
|
<$evalMaterialOpacity(albedoTex.a, opacity, matKey, opacity)&>;
|
||||||
<$discardTransparent(opacity)$>;
|
<$discardTransparent(opacity)$>;
|
||||||
|
|
||||||
vec3 albedo = getMaterialAlbedo(mat);
|
vec3 albedo = getMaterialAlbedo(mat);
|
||||||
<$evalMaterialAlbedo(albedoTex, albedo, matKey, albedo)$>;
|
<$evalMaterialAlbedo(albedoTex, albedo, matKey, albedo)$>;
|
||||||
albedo *= _color;
|
albedo *= _color;
|
||||||
|
|
||||||
float metallic = getMaterialMetallic(mat);
|
|
||||||
vec3 fresnel = getFresnelF0(metallic, albedo);
|
|
||||||
|
|
||||||
float roughness = getMaterialRoughness(mat);
|
float roughness = getMaterialRoughness(mat);
|
||||||
<$evalMaterialRoughness(roughnessTex, roughness, matKey, roughness)$>;
|
<$evalMaterialRoughness(roughnessTex, roughness, matKey, roughness)$>;
|
||||||
|
|
||||||
vec3 emissive = getMaterialEmissive(mat);
|
vec3 emissive = getMaterialEmissive(mat);
|
||||||
<$evalMaterialEmissive(emissiveTex, emissive, matKey, emissive)$>;
|
<$evalMaterialEmissive(emissiveTex, emissive, matKey, emissive)$>;
|
||||||
|
|
||||||
float scattering = getMaterialScattering(mat);
|
float metallic = getMaterialMetallic(mat);
|
||||||
<$evalMaterialScattering(scatteringTex, scattering, matKey, scattering)$>;
|
<$evalMaterialMetallic(metallicTex, metallic, matKey, metallic)$>;
|
||||||
|
vec3 fresnel = getFresnelF0(metallic, albedo);
|
||||||
|
|
||||||
vec3 fragPosition = _position.xyz;
|
vec3 fragPosition = _position.xyz;
|
||||||
vec3 fragNormal;
|
vec3 fragNormal;
|
||||||
<$tangentToViewSpace(normalTex, _normal, _tangent, fragNormal)$>
|
<$tangentToViewSpace(normalTex, _normal, _tangent, fragNormal)$>
|
||||||
|
|
||||||
TransformCamera cam = getTransformCamera();
|
TransformCamera cam = getTransformCamera();
|
||||||
|
|
||||||
vec4 color = vec4(evalSkyboxGlobalColor(
|
vec4 color = vec4(evalSkyboxGlobalColor(
|
||||||
cam._viewInverse,
|
cam._viewInverse,
|
||||||
1.0,
|
1.0,
|
||||||
|
@ -76,10 +72,9 @@ void main(void) {
|
||||||
fresnel,
|
fresnel,
|
||||||
metallic,
|
metallic,
|
||||||
roughness),
|
roughness),
|
||||||
opacity);
|
opacity);
|
||||||
|
|
||||||
color.rgb += emissive * isEmissiveEnabled();
|
color.rgb += emissive * isEmissiveEnabled();
|
||||||
|
|
||||||
// _fragColor = vec4(albedo, opacity);
|
_fragColor0 = color;
|
||||||
_fragColor = color;
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,81 +0,0 @@
|
||||||
<@include gpu/Config.slh@>
|
|
||||||
<$VERSION_HEADER$>
|
|
||||||
// Generated on <$_SCRIBE_DATE$>
|
|
||||||
//
|
|
||||||
// forward_model_normal_specular_map.frag
|
|
||||||
// fragment shader
|
|
||||||
//
|
|
||||||
// Created by Andrzej Kapolka on 5/6/14.
|
|
||||||
// Copyright 2014 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
|
|
||||||
//
|
|
||||||
|
|
||||||
<@include ForwardGlobalLight.slh@>
|
|
||||||
<$declareEvalSkyboxGlobalColor()$>
|
|
||||||
|
|
||||||
<@include graphics/Material.slh@>
|
|
||||||
|
|
||||||
<@include gpu/Transform.slh@>
|
|
||||||
<$declareStandardCameraTransform()$>
|
|
||||||
|
|
||||||
<@include MaterialTextures.slh@>
|
|
||||||
<$declareMaterialTextures(ALBEDO, ROUGHNESS, NORMAL, METALLIC, EMISSIVE, OCCLUSION)$>
|
|
||||||
|
|
||||||
in vec4 _position;
|
|
||||||
in vec2 _texCoord0;
|
|
||||||
in vec2 _texCoord1;
|
|
||||||
in vec3 _normal;
|
|
||||||
in vec3 _tangent;
|
|
||||||
in vec3 _color;
|
|
||||||
|
|
||||||
out vec4 _fragColor;
|
|
||||||
|
|
||||||
void main(void) {
|
|
||||||
Material mat = getMaterial();
|
|
||||||
BITFIELD matKey = getMaterialKey(mat);
|
|
||||||
<$fetchMaterialTexturesCoord0(matKey, _texCoord0, albedoTex, roughnessTex, normalTex, metallicTex, emissiveTex)$>
|
|
||||||
<$fetchMaterialTexturesCoord1(matKey, _texCoord1, occlusionTex)$>
|
|
||||||
|
|
||||||
float opacity = 1.0;
|
|
||||||
<$evalMaterialOpacity(albedoTex.a, opacity, matKey, opacity)&>;
|
|
||||||
<$discardTransparent(opacity)$>;
|
|
||||||
|
|
||||||
vec3 albedo = getMaterialAlbedo(mat);
|
|
||||||
<$evalMaterialAlbedo(albedoTex, albedo, matKey, albedo)$>;
|
|
||||||
albedo *= _color;
|
|
||||||
|
|
||||||
float roughness = getMaterialRoughness(mat);
|
|
||||||
<$evalMaterialRoughness(roughnessTex, roughness, matKey, roughness)$>;
|
|
||||||
|
|
||||||
vec3 emissive = getMaterialEmissive(mat);
|
|
||||||
<$evalMaterialEmissive(emissiveTex, emissive, matKey, emissive)$>;
|
|
||||||
|
|
||||||
float metallic = getMaterialMetallic(mat);
|
|
||||||
<$evalMaterialMetallic(metallicTex, metallic, matKey, metallic)$>;
|
|
||||||
vec3 fresnel = getFresnelF0(metallic, albedo);
|
|
||||||
|
|
||||||
vec3 fragPosition = _position.xyz;
|
|
||||||
vec3 fragNormal;
|
|
||||||
<$tangentToViewSpace(normalTex, _normal, _tangent, fragNormal)$>
|
|
||||||
|
|
||||||
TransformCamera cam = getTransformCamera();
|
|
||||||
|
|
||||||
vec4 color = vec4(evalSkyboxGlobalColor(
|
|
||||||
cam._viewInverse,
|
|
||||||
1.0,
|
|
||||||
occlusionTex,
|
|
||||||
fragPosition,
|
|
||||||
fragNormal,
|
|
||||||
albedo,
|
|
||||||
fresnel,
|
|
||||||
metallic,
|
|
||||||
roughness),
|
|
||||||
opacity);
|
|
||||||
|
|
||||||
color.rgb += emissive * isEmissiveEnabled();
|
|
||||||
|
|
||||||
// _fragColor = vec4(albedo, opacity);
|
|
||||||
_fragColor = color;
|
|
||||||
}
|
|
|
@ -1,81 +0,0 @@
|
||||||
<@include gpu/Config.slh@>
|
|
||||||
<$VERSION_HEADER$>
|
|
||||||
// Generated on <$_SCRIBE_DATE$>
|
|
||||||
//
|
|
||||||
// forward_model_specular_map.frag
|
|
||||||
// fragment shader
|
|
||||||
//
|
|
||||||
// Created by Andrzej Kapolka on 5/6/14.
|
|
||||||
// Copyright 2014 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
|
|
||||||
//
|
|
||||||
|
|
||||||
|
|
||||||
<!<@include ForwardBufferWrite.slh@> !>
|
|
||||||
|
|
||||||
<@include ForwardGlobalLight.slh@>
|
|
||||||
<$declareEvalSkyboxGlobalColor()$>
|
|
||||||
|
|
||||||
<@include graphics/Material.slh@>
|
|
||||||
|
|
||||||
<@include gpu/Transform.slh@>
|
|
||||||
<$declareStandardCameraTransform()$>
|
|
||||||
|
|
||||||
<@include MaterialTextures.slh@>
|
|
||||||
<$declareMaterialTextures(ALBEDO, ROUGHNESS, _SCRIBE_NULL, METALLIC, EMISSIVE, OCCLUSION)$>
|
|
||||||
|
|
||||||
in vec4 _position;
|
|
||||||
in vec2 _texCoord0;
|
|
||||||
in vec2 _texCoord1;
|
|
||||||
in vec3 _normal;
|
|
||||||
in vec3 _color;
|
|
||||||
|
|
||||||
out vec4 _fragColor;
|
|
||||||
|
|
||||||
void main(void) {
|
|
||||||
Material mat = getMaterial();
|
|
||||||
BITFIELD matKey = getMaterialKey(mat);
|
|
||||||
<$fetchMaterialTexturesCoord0(matKey, _texCoord0, albedoTex, roughnessTex, _SCRIBE_NULL, metallicTex, emissiveTex)$>
|
|
||||||
<$fetchMaterialTexturesCoord1(matKey, _texCoord1, occlusionTex)$>
|
|
||||||
|
|
||||||
float opacity = 1.0;
|
|
||||||
<$evalMaterialOpacity(albedoTex.a, opacity, matKey, opacity)$>;
|
|
||||||
<$discardTransparent(opacity)$>;
|
|
||||||
|
|
||||||
vec3 albedo = getMaterialAlbedo(mat);
|
|
||||||
<$evalMaterialAlbedo(albedoTex, albedo, matKey, albedo)$>;
|
|
||||||
albedo *= _color;
|
|
||||||
|
|
||||||
float roughness = getMaterialRoughness(mat);
|
|
||||||
<$evalMaterialRoughness(roughnessTex, roughness, matKey, roughness)$>;
|
|
||||||
|
|
||||||
vec3 emissive = getMaterialEmissive(mat);
|
|
||||||
<$evalMaterialEmissive(emissiveTex, emissive, matKey, emissive)$>;
|
|
||||||
|
|
||||||
float metallic = getMaterialMetallic(mat);
|
|
||||||
<$evalMaterialMetallic(metallicTex, metallic, matKey, metallic)$>;
|
|
||||||
vec3 fresnel = getFresnelF0(metallic, albedo);
|
|
||||||
|
|
||||||
vec3 fragPosition = _position.xyz;
|
|
||||||
vec3 fragNormal = normalize(_normal);
|
|
||||||
|
|
||||||
TransformCamera cam = getTransformCamera();
|
|
||||||
|
|
||||||
vec4 color = vec4(evalSkyboxGlobalColor(
|
|
||||||
cam._viewInverse,
|
|
||||||
1.0,
|
|
||||||
1.0,
|
|
||||||
fragPosition,
|
|
||||||
fragNormal,
|
|
||||||
albedo,
|
|
||||||
fresnel,
|
|
||||||
metallic,
|
|
||||||
roughness),
|
|
||||||
opacity);
|
|
||||||
color.rgb += emissive * isEmissiveEnabled();
|
|
||||||
|
|
||||||
// _fragColor = vec4(albedo, opacity);
|
|
||||||
_fragColor = color;
|
|
||||||
}
|
|
|
@ -22,7 +22,7 @@
|
||||||
<$declareStandardCameraTransform()$>
|
<$declareStandardCameraTransform()$>
|
||||||
|
|
||||||
<@include MaterialTextures.slh@>
|
<@include MaterialTextures.slh@>
|
||||||
<$declareMaterialTextures(ALBEDO, ROUGHNESS, _SCRIBE_NULL, _SCRIBE_NULL, EMISSIVE, OCCLUSION)$>
|
<$declareMaterialTextures(ALBEDO, ROUGHNESS, _SCRIBE_NULL, METALLIC, EMISSIVE, OCCLUSION)$>
|
||||||
|
|
||||||
in vec2 _texCoord0;
|
in vec2 _texCoord0;
|
||||||
in vec2 _texCoord1;
|
in vec2 _texCoord1;
|
||||||
|
@ -31,12 +31,12 @@ in vec3 _normal;
|
||||||
in vec3 _color;
|
in vec3 _color;
|
||||||
in float _alpha;
|
in float _alpha;
|
||||||
|
|
||||||
out vec4 _fragColor;
|
layout(location = 0) out vec4 _fragColor0;
|
||||||
|
|
||||||
void main(void) {
|
void main(void) {
|
||||||
Material mat = getMaterial();
|
Material mat = getMaterial();
|
||||||
BITFIELD matKey = getMaterialKey(mat);
|
BITFIELD matKey = getMaterialKey(mat);
|
||||||
<$fetchMaterialTexturesCoord0(matKey, _texCoord0, albedoTex, roughnessTex, _SCRIBE_NULL, _SCRIBE_NULL, emissiveTex)$>
|
<$fetchMaterialTexturesCoord0(matKey, _texCoord0, albedoTex, roughnessTex, _SCRIBE_NULL, metallicTex, emissiveTex)$>
|
||||||
<$fetchMaterialTexturesCoord1(matKey, _texCoord1, occlusionTex)$>
|
<$fetchMaterialTexturesCoord1(matKey, _texCoord1, occlusionTex)$>
|
||||||
|
|
||||||
float opacity = getMaterialOpacity(mat) * _alpha;
|
float opacity = getMaterialOpacity(mat) * _alpha;
|
||||||
|
@ -50,6 +50,7 @@ void main(void) {
|
||||||
<$evalMaterialRoughness(roughnessTex, roughness, matKey, roughness)$>;
|
<$evalMaterialRoughness(roughnessTex, roughness, matKey, roughness)$>;
|
||||||
|
|
||||||
float metallic = getMaterialMetallic(mat);
|
float metallic = getMaterialMetallic(mat);
|
||||||
|
<$evalMaterialMetallic(metallicTex, metallic, matKey, metallic)$>;
|
||||||
vec3 fresnel = getFresnelF0(metallic, albedo);
|
vec3 fresnel = getFresnelF0(metallic, albedo);
|
||||||
|
|
||||||
vec3 emissive = getMaterialEmissive(mat);
|
vec3 emissive = getMaterialEmissive(mat);
|
||||||
|
@ -60,7 +61,7 @@ void main(void) {
|
||||||
|
|
||||||
TransformCamera cam = getTransformCamera();
|
TransformCamera cam = getTransformCamera();
|
||||||
|
|
||||||
_fragColor = vec4(evalGlobalLightingAlphaBlendedWithHaze(
|
_fragColor0 = vec4(evalGlobalLightingAlphaBlendedWithHaze(
|
||||||
cam._viewInverse,
|
cam._viewInverse,
|
||||||
1.0,
|
1.0,
|
||||||
occlusionTex,
|
occlusionTex,
|
||||||
|
|
|
@ -12,7 +12,6 @@
|
||||||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||||
//
|
//
|
||||||
|
|
||||||
<@include ForwardBufferWrite.slh@>
|
|
||||||
<@include LightingModel.slh@>
|
<@include LightingModel.slh@>
|
||||||
<@include graphics/Material.slh@>
|
<@include graphics/Material.slh@>
|
||||||
|
|
||||||
|
@ -24,6 +23,8 @@ in vec3 _normal;
|
||||||
in vec3 _color;
|
in vec3 _color;
|
||||||
in float _alpha;
|
in float _alpha;
|
||||||
|
|
||||||
|
layout(location = 0) out vec4 _fragColor0;
|
||||||
|
|
||||||
void main(void) {
|
void main(void) {
|
||||||
|
|
||||||
Material mat = getMaterial();
|
Material mat = getMaterial();
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
<@include gpu/Config.slh@>
|
<@include gpu/Config.slh@>
|
||||||
<$VERSION_HEADER$>
|
<$VERSION_HEADER$>
|
||||||
// Generated on <$_SCRIBE_DATE$>
|
// Generated on <$_SCRIBE_DATE$>
|
||||||
// model.frag
|
//
|
||||||
|
// model_specular_map.frag
|
||||||
// fragment shader
|
// fragment shader
|
||||||
//
|
//
|
||||||
// Created by Andrzej Kapolka on 10/14/13.
|
// Created by Andrzej Kapolka on 5/6/14.
|
||||||
// Copyright 2013 High Fidelity, Inc.
|
// Copyright 2014 High Fidelity, Inc.
|
||||||
//
|
//
|
||||||
// Distributed under the Apache License, Version 2.0.
|
// Distributed under the Apache License, Version 2.0.
|
||||||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||||
|
@ -16,19 +17,19 @@
|
||||||
<@include graphics/Material.slh@>
|
<@include graphics/Material.slh@>
|
||||||
|
|
||||||
<@include MaterialTextures.slh@>
|
<@include MaterialTextures.slh@>
|
||||||
<$declareMaterialTextures(ALBEDO, ROUGHNESS, _SCRIBE_NULL, METALLIC, EMISSIVE, OCCLUSION)$>
|
<$declareMaterialTextures(ALBEDO, ROUGHNESS, _SCRIBE_NULL, METALLIC, EMISSIVE, OCCLUSION, SCATTERING)$>
|
||||||
|
|
||||||
in vec4 _position;
|
in vec4 _position;
|
||||||
in vec3 _normal;
|
|
||||||
in vec3 _color;
|
|
||||||
in vec2 _texCoord0;
|
in vec2 _texCoord0;
|
||||||
in vec2 _texCoord1;
|
in vec2 _texCoord1;
|
||||||
|
in vec3 _normal;
|
||||||
|
in vec3 _color;
|
||||||
|
|
||||||
|
|
||||||
void main(void) {
|
void main(void) {
|
||||||
Material mat = getMaterial();
|
Material mat = getMaterial();
|
||||||
BITFIELD matKey = getMaterialKey(mat);
|
BITFIELD matKey = getMaterialKey(mat);
|
||||||
<$fetchMaterialTexturesCoord0(matKey, _texCoord0, albedoTex, roughnessTex, _SCRIBE_NULL, _SCRIBE_NULL, emissiveTex)$>
|
<$fetchMaterialTexturesCoord0(matKey, _texCoord0, albedoTex, roughnessTex, _SCRIBE_NULL, metallicTex, emissiveTex, scatteringTex)$>
|
||||||
<$fetchMaterialTexturesCoord1(matKey, _texCoord1, occlusionTex)$>
|
<$fetchMaterialTexturesCoord1(matKey, _texCoord1, occlusionTex)$>
|
||||||
|
|
||||||
float opacity = 1.0;
|
float opacity = 1.0;
|
||||||
|
@ -52,7 +53,7 @@ void main(void) {
|
||||||
<$evalMaterialScattering(scatteringTex, scattering, matKey, scattering)$>;
|
<$evalMaterialScattering(scatteringTex, scattering, matKey, scattering)$>;
|
||||||
|
|
||||||
packDeferredFragment(
|
packDeferredFragment(
|
||||||
normalize(_normal.xyz),
|
normalize(_normal),
|
||||||
opacity,
|
opacity,
|
||||||
albedo,
|
albedo,
|
||||||
roughness,
|
roughness,
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
<@include gpu/Config.slh@>
|
<@include gpu/Config.slh@>
|
||||||
<$VERSION_HEADER$>
|
<$VERSION_HEADER$>
|
||||||
// Generated on <$_SCRIBE_DATE$>
|
// Generated on <$_SCRIBE_DATE$>
|
||||||
// model_fade.frag
|
//
|
||||||
|
// model_specular_map_fade.frag
|
||||||
// fragment shader
|
// fragment shader
|
||||||
//
|
//
|
||||||
// Created by Olivier Prat on 04/19/17.
|
// Created by Olivier Prat on 06/05/17.
|
||||||
// Copyright 2017 High Fidelity, Inc.
|
// Copyright 2017 High Fidelity, Inc.
|
||||||
//
|
//
|
||||||
// Distributed under the Apache License, Version 2.0.
|
// Distributed under the Apache License, Version 2.0.
|
||||||
|
@ -16,18 +17,17 @@
|
||||||
<@include graphics/Material.slh@>
|
<@include graphics/Material.slh@>
|
||||||
|
|
||||||
<@include MaterialTextures.slh@>
|
<@include MaterialTextures.slh@>
|
||||||
<$declareMaterialTextures(ALBEDO, ROUGHNESS, _SCRIBE_NULL, _SCRIBE_NULL, EMISSIVE, OCCLUSION)$>
|
<$declareMaterialTextures(ALBEDO, ROUGHNESS, _SCRIBE_NULL, METALLIC, EMISSIVE, OCCLUSION)$>
|
||||||
|
|
||||||
<@include Fade.slh@>
|
<@include Fade.slh@>
|
||||||
<$declareFadeFragment()$>
|
<$declareFadeFragment()$>
|
||||||
|
|
||||||
in vec4 _position;
|
in vec4 _position;
|
||||||
in vec4 _worldPosition;
|
|
||||||
in vec3 _normal;
|
|
||||||
in vec3 _color;
|
|
||||||
in vec2 _texCoord0;
|
in vec2 _texCoord0;
|
||||||
in vec2 _texCoord1;
|
in vec2 _texCoord1;
|
||||||
|
in vec3 _normal;
|
||||||
|
in vec3 _color;
|
||||||
|
in vec4 _worldPosition;
|
||||||
|
|
||||||
void main(void) {
|
void main(void) {
|
||||||
vec3 fadeEmissive;
|
vec3 fadeEmissive;
|
||||||
|
@ -38,7 +38,7 @@ void main(void) {
|
||||||
|
|
||||||
Material mat = getMaterial();
|
Material mat = getMaterial();
|
||||||
BITFIELD matKey = getMaterialKey(mat);
|
BITFIELD matKey = getMaterialKey(mat);
|
||||||
<$fetchMaterialTexturesCoord0(matKey, _texCoord0, albedoTex, roughnessTex, _SCRIBE_NULL, _SCRIBE_NULL, emissiveTex)$>
|
<$fetchMaterialTexturesCoord0(matKey, _texCoord0, albedoTex, roughnessTex, _SCRIBE_NULL, metallicTex, emissiveTex)$>
|
||||||
<$fetchMaterialTexturesCoord1(matKey, _texCoord1, occlusionTex)$>
|
<$fetchMaterialTexturesCoord1(matKey, _texCoord1, occlusionTex)$>
|
||||||
|
|
||||||
float opacity = 1.0;
|
float opacity = 1.0;
|
||||||
|
@ -54,17 +54,19 @@ void main(void) {
|
||||||
|
|
||||||
vec3 emissive = getMaterialEmissive(mat);
|
vec3 emissive = getMaterialEmissive(mat);
|
||||||
<$evalMaterialEmissive(emissiveTex, emissive, matKey, emissive)$>;
|
<$evalMaterialEmissive(emissiveTex, emissive, matKey, emissive)$>;
|
||||||
emissive += fadeEmissive;
|
|
||||||
|
float metallic = getMaterialMetallic(mat);
|
||||||
|
<$evalMaterialMetallic(metallicTex, metallic, matKey, metallic)$>;
|
||||||
|
|
||||||
float scattering = getMaterialScattering(mat);
|
float scattering = getMaterialScattering(mat);
|
||||||
|
|
||||||
packDeferredFragment(
|
packDeferredFragment(
|
||||||
normalize(_normal.xyz),
|
normalize(_normal),
|
||||||
opacity,
|
opacity,
|
||||||
albedo,
|
albedo,
|
||||||
roughness,
|
roughness,
|
||||||
getMaterialMetallic(mat),
|
metallic,
|
||||||
emissive,
|
emissive+fadeEmissive,
|
||||||
occlusionTex,
|
occlusionTex,
|
||||||
scattering);
|
scattering);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,11 +2,11 @@
|
||||||
<$VERSION_HEADER$>
|
<$VERSION_HEADER$>
|
||||||
// Generated on <$_SCRIBE_DATE$>
|
// Generated on <$_SCRIBE_DATE$>
|
||||||
//
|
//
|
||||||
// model_lightmap.frag
|
// model_lightmap_specular_map.frag
|
||||||
// fragment shader
|
// fragment shader
|
||||||
//
|
//
|
||||||
// Created by Samuel Gateau on 11/19/14.
|
// Created by Samuel Gateau on 11/19/14.
|
||||||
// Copyright 2013 High Fidelity, Inc.
|
// Copyright 2014 High Fidelity, Inc.
|
||||||
//
|
//
|
||||||
// Distributed under the Apache License, Version 2.0.
|
// Distributed under the Apache License, Version 2.0.
|
||||||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
<@include graphics/Material.slh@>
|
<@include graphics/Material.slh@>
|
||||||
|
|
||||||
<@include MaterialTextures.slh@>
|
<@include MaterialTextures.slh@>
|
||||||
<$declareMaterialTextures(ALBEDO, ROUGHNESS)$>
|
<$declareMaterialTextures(ALBEDO, ROUGHNESS, _SCRIBE_NULL, METALLIC)$>
|
||||||
<$declareMaterialLightmap()$>
|
<$declareMaterialLightmap()$>
|
||||||
|
|
||||||
in vec4 _position;
|
in vec4 _position;
|
||||||
|
@ -29,16 +29,15 @@ in vec3 _color;
|
||||||
void main(void) {
|
void main(void) {
|
||||||
Material mat = getMaterial();
|
Material mat = getMaterial();
|
||||||
BITFIELD matKey = getMaterialKey(mat);
|
BITFIELD matKey = getMaterialKey(mat);
|
||||||
<$fetchMaterialTexturesCoord0(matKey, _texCoord0, albedo, roughness)$>
|
<$fetchMaterialTexturesCoord0(matKey, _texCoord0, albedo, roughness, _SCRIBE_NULL, metallicTex)$>
|
||||||
<$fetchMaterialTexturesCoord1(matKey, _texCoord1, _SCRIBE_NULL, lightmapVal)$>
|
<$fetchMaterialTexturesCoord1(matKey, _texCoord1, _SCRIBE_NULL, lightmapVal)$>
|
||||||
|
|
||||||
|
|
||||||
packDeferredFragmentLightmap(
|
packDeferredFragmentLightmap(
|
||||||
normalize(_normal),
|
normalize(_normal),
|
||||||
evalOpaqueFinalAlpha(getMaterialOpacity(mat), albedo.a),
|
evalOpaqueFinalAlpha(getMaterialOpacity(mat), albedo.a),
|
||||||
getMaterialAlbedo(mat) * albedo.rgb * _color,
|
getMaterialAlbedo(mat) * albedo.rgb * _color,
|
||||||
getMaterialRoughness(mat) * roughness,
|
getMaterialRoughness(mat) * roughness,
|
||||||
getMaterialMetallic(mat),
|
getMaterialMetallic(mat) * metallicTex,
|
||||||
getMaterialFresnel(mat),
|
/*metallicTex, // no use of */getMaterialFresnel(mat),
|
||||||
lightmapVal);
|
lightmapVal);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<$VERSION_HEADER$>
|
<$VERSION_HEADER$>
|
||||||
// Generated on <$_SCRIBE_DATE$>
|
// Generated on <$_SCRIBE_DATE$>
|
||||||
//
|
//
|
||||||
// model_lightmap_fade.frag
|
// model_lightmap_specular_map_fade.frag
|
||||||
// fragment shader
|
// fragment shader
|
||||||
//
|
//
|
||||||
// Created by Olivier Prat on 06/05/17.
|
// Created by Olivier Prat on 06/05/17.
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
<@include graphics/Material.slh@>
|
<@include graphics/Material.slh@>
|
||||||
|
|
||||||
<@include MaterialTextures.slh@>
|
<@include MaterialTextures.slh@>
|
||||||
<$declareMaterialTextures(ALBEDO, ROUGHNESS)$>
|
<$declareMaterialTextures(ALBEDO, ROUGHNESS, _SCRIBE_NULL, METALLIC)$>
|
||||||
<$declareMaterialLightmap()$>
|
<$declareMaterialLightmap()$>
|
||||||
|
|
||||||
<@include Fade.slh@>
|
<@include Fade.slh@>
|
||||||
|
@ -39,16 +39,15 @@ void main(void) {
|
||||||
|
|
||||||
Material mat = getMaterial();
|
Material mat = getMaterial();
|
||||||
BITFIELD matKey = getMaterialKey(mat);
|
BITFIELD matKey = getMaterialKey(mat);
|
||||||
<$fetchMaterialTexturesCoord0(matKey, _texCoord0, albedo, roughness)$>
|
<$fetchMaterialTexturesCoord0(matKey, _texCoord0, albedo, roughness, _SCRIBE_NULL, metallicTex)$>
|
||||||
<$fetchMaterialTexturesCoord1(matKey, _texCoord1, _SCRIBE_NULL, lightmapVal)$>
|
<$fetchMaterialTexturesCoord1(matKey, _texCoord1, _SCRIBE_NULL, lightmapVal)$>
|
||||||
|
|
||||||
|
|
||||||
packDeferredFragmentLightmap(
|
packDeferredFragmentLightmap(
|
||||||
normalize(_normal),
|
normalize(_normal),
|
||||||
evalOpaqueFinalAlpha(getMaterialOpacity(mat), albedo.a),
|
evalOpaqueFinalAlpha(getMaterialOpacity(mat), albedo.a),
|
||||||
getMaterialAlbedo(mat) * albedo.rgb * _color,
|
getMaterialAlbedo(mat) * albedo.rgb * _color,
|
||||||
getMaterialRoughness(mat) * roughness,
|
getMaterialRoughness(mat) * roughness,
|
||||||
getMaterialMetallic(mat),
|
getMaterialMetallic(mat) * metallicTex,
|
||||||
getMaterialFresnel(mat),
|
/*metallicTex, // no use of */getMaterialFresnel(mat),
|
||||||
lightmapVal+fadeEmissive);
|
lightmapVal+fadeEmissive);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,11 +2,11 @@
|
||||||
<$VERSION_HEADER$>
|
<$VERSION_HEADER$>
|
||||||
// Generated on <$_SCRIBE_DATE$>
|
// Generated on <$_SCRIBE_DATE$>
|
||||||
//
|
//
|
||||||
// model_lightmap_normal_map.frag
|
// model_lightmap_normal_specular_map.frag
|
||||||
// fragment shader
|
// fragment shader
|
||||||
//
|
//
|
||||||
// Created by Samuel Gateau on 11/19/14.
|
// Created by Samuel Gateau on 11/19/14.
|
||||||
// Copyright 2013 High Fidelity, Inc.
|
// Copyright 2014 High Fidelity, Inc.
|
||||||
//
|
//
|
||||||
// Distributed under the Apache License, Version 2.0.
|
// Distributed under the Apache License, Version 2.0.
|
||||||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
<@include graphics/Material.slh@>
|
<@include graphics/Material.slh@>
|
||||||
|
|
||||||
<@include MaterialTextures.slh@>
|
<@include MaterialTextures.slh@>
|
||||||
<$declareMaterialTextures(ALBEDO, ROUGHNESS, NORMAL)$>
|
<$declareMaterialTextures(ALBEDO, ROUGHNESS, NORMAL, METALLIC)$>
|
||||||
<$declareMaterialLightmap()$>
|
<$declareMaterialLightmap()$>
|
||||||
|
|
||||||
in vec4 _position;
|
in vec4 _position;
|
||||||
|
@ -30,9 +30,9 @@ in vec3 _color;
|
||||||
void main(void) {
|
void main(void) {
|
||||||
Material mat = getMaterial();
|
Material mat = getMaterial();
|
||||||
BITFIELD matKey = getMaterialKey(mat);
|
BITFIELD matKey = getMaterialKey(mat);
|
||||||
<$fetchMaterialTexturesCoord0(matKey, _texCoord0, albedo, roughness, normalTexel)$>
|
<$fetchMaterialTexturesCoord0(matKey, _texCoord0, albedo, roughness, normalTexel, metallicTex)$>
|
||||||
<$fetchMaterialTexturesCoord1(matKey, _texCoord1, _SCRIBE_NULL, lightmapVal)$>
|
<$fetchMaterialTexturesCoord1(matKey, _texCoord1, _SCRIBE_NULL, lightmapVal)$>
|
||||||
|
|
||||||
vec3 viewNormal;
|
vec3 viewNormal;
|
||||||
<$tangentToViewSpaceLOD(_position, normalTexel, _normal, _tangent, viewNormal)$>
|
<$tangentToViewSpaceLOD(_position, normalTexel, _normal, _tangent, viewNormal)$>
|
||||||
|
|
||||||
|
@ -40,8 +40,8 @@ void main(void) {
|
||||||
normalize(viewNormal.xyz),
|
normalize(viewNormal.xyz),
|
||||||
evalOpaqueFinalAlpha(getMaterialOpacity(mat), albedo.a),
|
evalOpaqueFinalAlpha(getMaterialOpacity(mat), albedo.a),
|
||||||
getMaterialAlbedo(mat) * albedo.rgb * _color,
|
getMaterialAlbedo(mat) * albedo.rgb * _color,
|
||||||
getMaterialRoughness(mat),
|
getMaterialRoughness(mat) * roughness,
|
||||||
getMaterialMetallic(mat),
|
getMaterialMetallic(mat) * metallicTex,
|
||||||
getMaterialFresnel(mat),
|
/*specular, // no use of */ getMaterialFresnel(mat),
|
||||||
lightmapVal);
|
lightmapVal);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<$VERSION_HEADER$>
|
<$VERSION_HEADER$>
|
||||||
// Generated on <$_SCRIBE_DATE$>
|
// Generated on <$_SCRIBE_DATE$>
|
||||||
//
|
//
|
||||||
// model_lightmap_normal_map_fade.frag
|
// model_lightmap_normal_specular_map_fade.frag
|
||||||
// fragment shader
|
// fragment shader
|
||||||
//
|
//
|
||||||
// Created by Olivier Prat on 06/05/17.
|
// Created by Olivier Prat on 06/05/17.
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
<@include graphics/Material.slh@>
|
<@include graphics/Material.slh@>
|
||||||
|
|
||||||
<@include MaterialTextures.slh@>
|
<@include MaterialTextures.slh@>
|
||||||
<$declareMaterialTextures(ALBEDO, ROUGHNESS, NORMAL)$>
|
<$declareMaterialTextures(ALBEDO, ROUGHNESS, NORMAL, METALLIC)$>
|
||||||
<$declareMaterialLightmap()$>
|
<$declareMaterialLightmap()$>
|
||||||
|
|
||||||
<@include Fade.slh@>
|
<@include Fade.slh@>
|
||||||
|
@ -40,9 +40,9 @@ void main(void) {
|
||||||
|
|
||||||
Material mat = getMaterial();
|
Material mat = getMaterial();
|
||||||
BITFIELD matKey = getMaterialKey(mat);
|
BITFIELD matKey = getMaterialKey(mat);
|
||||||
<$fetchMaterialTexturesCoord0(matKey, _texCoord0, albedo, roughness, normalTexel)$>
|
<$fetchMaterialTexturesCoord0(matKey, _texCoord0, albedo, roughness, normalTexel, metallicTex)$>
|
||||||
<$fetchMaterialTexturesCoord1(matKey, _texCoord1, _SCRIBE_NULL, lightmapVal)$>
|
<$fetchMaterialTexturesCoord1(matKey, _texCoord1, _SCRIBE_NULL, lightmapVal)$>
|
||||||
|
|
||||||
vec3 viewNormal;
|
vec3 viewNormal;
|
||||||
<$tangentToViewSpaceLOD(_position, normalTexel, _normal, _tangent, viewNormal)$>
|
<$tangentToViewSpaceLOD(_position, normalTexel, _normal, _tangent, viewNormal)$>
|
||||||
|
|
||||||
|
@ -50,8 +50,8 @@ void main(void) {
|
||||||
normalize(viewNormal.xyz),
|
normalize(viewNormal.xyz),
|
||||||
evalOpaqueFinalAlpha(getMaterialOpacity(mat), albedo.a),
|
evalOpaqueFinalAlpha(getMaterialOpacity(mat), albedo.a),
|
||||||
getMaterialAlbedo(mat) * albedo.rgb * _color,
|
getMaterialAlbedo(mat) * albedo.rgb * _color,
|
||||||
getMaterialRoughness(mat),
|
getMaterialRoughness(mat) * roughness,
|
||||||
getMaterialMetallic(mat),
|
getMaterialMetallic(mat) * metallicTex,
|
||||||
getMaterialFresnel(mat),
|
/*specular, // no use of */ getMaterialFresnel(mat),
|
||||||
lightmapVal+fadeEmissive);
|
lightmapVal+fadeEmissive);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,47 +0,0 @@
|
||||||
<@include gpu/Config.slh@>
|
|
||||||
<$VERSION_HEADER$>
|
|
||||||
// Generated on <$_SCRIBE_DATE$>
|
|
||||||
//
|
|
||||||
// model_lightmap_normal_specular_map.frag
|
|
||||||
// fragment shader
|
|
||||||
//
|
|
||||||
// Created by Samuel Gateau on 11/19/14.
|
|
||||||
// Copyright 2014 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
|
|
||||||
//
|
|
||||||
|
|
||||||
<@include DeferredBufferWrite.slh@>
|
|
||||||
|
|
||||||
<@include graphics/Material.slh@>
|
|
||||||
|
|
||||||
<@include MaterialTextures.slh@>
|
|
||||||
<$declareMaterialTextures(ALBEDO, ROUGHNESS, NORMAL, METALLIC)$>
|
|
||||||
<$declareMaterialLightmap()$>
|
|
||||||
|
|
||||||
in vec4 _position;
|
|
||||||
in vec2 _texCoord0;
|
|
||||||
in vec2 _texCoord1;
|
|
||||||
in vec3 _normal;
|
|
||||||
in vec3 _tangent;
|
|
||||||
in vec3 _color;
|
|
||||||
|
|
||||||
void main(void) {
|
|
||||||
Material mat = getMaterial();
|
|
||||||
BITFIELD matKey = getMaterialKey(mat);
|
|
||||||
<$fetchMaterialTexturesCoord0(matKey, _texCoord0, albedo, roughness, normalTexel, metallicTex)$>
|
|
||||||
<$fetchMaterialTexturesCoord1(matKey, _texCoord1, _SCRIBE_NULL, lightmapVal)$>
|
|
||||||
|
|
||||||
vec3 viewNormal;
|
|
||||||
<$tangentToViewSpaceLOD(_position, normalTexel, _normal, _tangent, viewNormal)$>
|
|
||||||
|
|
||||||
packDeferredFragmentLightmap(
|
|
||||||
normalize(viewNormal.xyz),
|
|
||||||
evalOpaqueFinalAlpha(getMaterialOpacity(mat), albedo.a),
|
|
||||||
getMaterialAlbedo(mat) * albedo.rgb * _color,
|
|
||||||
getMaterialRoughness(mat) * roughness,
|
|
||||||
getMaterialMetallic(mat) * metallicTex,
|
|
||||||
/*specular, // no use of */ getMaterialFresnel(mat),
|
|
||||||
lightmapVal);
|
|
||||||
}
|
|
|
@ -1,57 +0,0 @@
|
||||||
<@include gpu/Config.slh@>
|
|
||||||
<$VERSION_HEADER$>
|
|
||||||
// Generated on <$_SCRIBE_DATE$>
|
|
||||||
//
|
|
||||||
// model_lightmap_normal_specular_map_fade.frag
|
|
||||||
// fragment shader
|
|
||||||
//
|
|
||||||
// Created by Olivier Prat on 06/05/17.
|
|
||||||
// Copyright 2017 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
|
|
||||||
//
|
|
||||||
|
|
||||||
<@include DeferredBufferWrite.slh@>
|
|
||||||
|
|
||||||
<@include graphics/Material.slh@>
|
|
||||||
|
|
||||||
<@include MaterialTextures.slh@>
|
|
||||||
<$declareMaterialTextures(ALBEDO, ROUGHNESS, NORMAL, METALLIC)$>
|
|
||||||
<$declareMaterialLightmap()$>
|
|
||||||
|
|
||||||
<@include Fade.slh@>
|
|
||||||
<$declareFadeFragment()$>
|
|
||||||
|
|
||||||
in vec4 _position;
|
|
||||||
in vec2 _texCoord0;
|
|
||||||
in vec2 _texCoord1;
|
|
||||||
in vec3 _normal;
|
|
||||||
in vec3 _tangent;
|
|
||||||
in vec3 _color;
|
|
||||||
in vec4 _worldPosition;
|
|
||||||
|
|
||||||
void main(void) {
|
|
||||||
vec3 fadeEmissive;
|
|
||||||
FadeObjectParams fadeParams;
|
|
||||||
|
|
||||||
<$fetchFadeObjectParams(fadeParams)$>
|
|
||||||
applyFade(fadeParams, _worldPosition.xyz, fadeEmissive);
|
|
||||||
|
|
||||||
Material mat = getMaterial();
|
|
||||||
BITFIELD matKey = getMaterialKey(mat);
|
|
||||||
<$fetchMaterialTexturesCoord0(matKey, _texCoord0, albedo, roughness, normalTexel, metallicTex)$>
|
|
||||||
<$fetchMaterialTexturesCoord1(matKey, _texCoord1, _SCRIBE_NULL, lightmapVal)$>
|
|
||||||
|
|
||||||
vec3 viewNormal;
|
|
||||||
<$tangentToViewSpaceLOD(_position, normalTexel, _normal, _tangent, viewNormal)$>
|
|
||||||
|
|
||||||
packDeferredFragmentLightmap(
|
|
||||||
normalize(viewNormal.xyz),
|
|
||||||
evalOpaqueFinalAlpha(getMaterialOpacity(mat), albedo.a),
|
|
||||||
getMaterialAlbedo(mat) * albedo.rgb * _color,
|
|
||||||
getMaterialRoughness(mat) * roughness,
|
|
||||||
getMaterialMetallic(mat) * metallicTex,
|
|
||||||
/*specular, // no use of */ getMaterialFresnel(mat),
|
|
||||||
lightmapVal+fadeEmissive);
|
|
||||||
}
|
|
|
@ -1,43 +0,0 @@
|
||||||
<@include gpu/Config.slh@>
|
|
||||||
<$VERSION_HEADER$>
|
|
||||||
// Generated on <$_SCRIBE_DATE$>
|
|
||||||
//
|
|
||||||
// model_lightmap_specular_map.frag
|
|
||||||
// fragment shader
|
|
||||||
//
|
|
||||||
// Created by Samuel Gateau on 11/19/14.
|
|
||||||
// Copyright 2014 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
|
|
||||||
//
|
|
||||||
|
|
||||||
<@include DeferredBufferWrite.slh@>
|
|
||||||
|
|
||||||
<@include graphics/Material.slh@>
|
|
||||||
|
|
||||||
<@include MaterialTextures.slh@>
|
|
||||||
<$declareMaterialTextures(ALBEDO, ROUGHNESS, _SCRIBE_NULL, METALLIC)$>
|
|
||||||
<$declareMaterialLightmap()$>
|
|
||||||
|
|
||||||
in vec4 _position;
|
|
||||||
in vec2 _texCoord0;
|
|
||||||
in vec2 _texCoord1;
|
|
||||||
in vec3 _normal;
|
|
||||||
in vec3 _color;
|
|
||||||
|
|
||||||
void main(void) {
|
|
||||||
Material mat = getMaterial();
|
|
||||||
BITFIELD matKey = getMaterialKey(mat);
|
|
||||||
<$fetchMaterialTexturesCoord0(matKey, _texCoord0, albedo, roughness, _SCRIBE_NULL, metallicTex)$>
|
|
||||||
<$fetchMaterialTexturesCoord1(matKey, _texCoord1, _SCRIBE_NULL, lightmapVal)$>
|
|
||||||
|
|
||||||
packDeferredFragmentLightmap(
|
|
||||||
normalize(_normal),
|
|
||||||
evalOpaqueFinalAlpha(getMaterialOpacity(mat), albedo.a),
|
|
||||||
getMaterialAlbedo(mat) * albedo.rgb * _color,
|
|
||||||
getMaterialRoughness(mat) * roughness,
|
|
||||||
getMaterialMetallic(mat) * metallicTex,
|
|
||||||
/*metallicTex, // no use of */getMaterialFresnel(mat),
|
|
||||||
lightmapVal);
|
|
||||||
}
|
|
|
@ -1,53 +0,0 @@
|
||||||
<@include gpu/Config.slh@>
|
|
||||||
<$VERSION_HEADER$>
|
|
||||||
// Generated on <$_SCRIBE_DATE$>
|
|
||||||
//
|
|
||||||
// model_lightmap_specular_map_fade.frag
|
|
||||||
// fragment shader
|
|
||||||
//
|
|
||||||
// Created by Olivier Prat on 06/05/17.
|
|
||||||
// Copyright 2017 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
|
|
||||||
//
|
|
||||||
|
|
||||||
<@include DeferredBufferWrite.slh@>
|
|
||||||
|
|
||||||
<@include graphics/Material.slh@>
|
|
||||||
|
|
||||||
<@include MaterialTextures.slh@>
|
|
||||||
<$declareMaterialTextures(ALBEDO, ROUGHNESS, _SCRIBE_NULL, METALLIC)$>
|
|
||||||
<$declareMaterialLightmap()$>
|
|
||||||
|
|
||||||
<@include Fade.slh@>
|
|
||||||
<$declareFadeFragment()$>
|
|
||||||
|
|
||||||
in vec4 _position;
|
|
||||||
in vec2 _texCoord0;
|
|
||||||
in vec2 _texCoord1;
|
|
||||||
in vec3 _normal;
|
|
||||||
in vec3 _color;
|
|
||||||
in vec4 _worldPosition;
|
|
||||||
|
|
||||||
void main(void) {
|
|
||||||
vec3 fadeEmissive;
|
|
||||||
FadeObjectParams fadeParams;
|
|
||||||
|
|
||||||
<$fetchFadeObjectParams(fadeParams)$>
|
|
||||||
applyFade(fadeParams, _worldPosition.xyz, fadeEmissive);
|
|
||||||
|
|
||||||
Material mat = getMaterial();
|
|
||||||
BITFIELD matKey = getMaterialKey(mat);
|
|
||||||
<$fetchMaterialTexturesCoord0(matKey, _texCoord0, albedo, roughness, _SCRIBE_NULL, metallicTex)$>
|
|
||||||
<$fetchMaterialTexturesCoord1(matKey, _texCoord1, _SCRIBE_NULL, lightmapVal)$>
|
|
||||||
|
|
||||||
packDeferredFragmentLightmap(
|
|
||||||
normalize(_normal),
|
|
||||||
evalOpaqueFinalAlpha(getMaterialOpacity(mat), albedo.a),
|
|
||||||
getMaterialAlbedo(mat) * albedo.rgb * _color,
|
|
||||||
getMaterialRoughness(mat) * roughness,
|
|
||||||
getMaterialMetallic(mat) * metallicTex,
|
|
||||||
/*metallicTex, // no use of */getMaterialFresnel(mat),
|
|
||||||
lightmapVal+fadeEmissive);
|
|
||||||
}
|
|
|
@ -5,8 +5,8 @@
|
||||||
// model_normal_map.frag
|
// model_normal_map.frag
|
||||||
// fragment shader
|
// fragment shader
|
||||||
//
|
//
|
||||||
// Created by Andrzej Kapolka on 10/29/13.
|
// Created by Andrzej Kapolka on 5/6/14.
|
||||||
// Copyright 2013 High Fidelity, Inc.
|
// Copyright 2014 High Fidelity, Inc.
|
||||||
//
|
//
|
||||||
// Distributed under the Apache License, Version 2.0.
|
// Distributed under the Apache License, Version 2.0.
|
||||||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||||
|
@ -33,7 +33,7 @@ void main(void) {
|
||||||
<$fetchMaterialTexturesCoord1(matKey, _texCoord1, occlusionTex)$>
|
<$fetchMaterialTexturesCoord1(matKey, _texCoord1, occlusionTex)$>
|
||||||
|
|
||||||
float opacity = 1.0;
|
float opacity = 1.0;
|
||||||
<$evalMaterialOpacity(albedoTex.a, opacity, matKey, opacity)$>;
|
<$evalMaterialOpacity(albedoTex.a, opacity, matKey, opacity)&>;
|
||||||
<$discardTransparent(opacity)$>;
|
<$discardTransparent(opacity)$>;
|
||||||
|
|
||||||
vec3 albedo = getMaterialAlbedo(mat);
|
vec3 albedo = getMaterialAlbedo(mat);
|
||||||
|
@ -47,7 +47,7 @@ void main(void) {
|
||||||
<$evalMaterialEmissive(emissiveTex, emissive, matKey, emissive)$>;
|
<$evalMaterialEmissive(emissiveTex, emissive, matKey, emissive)$>;
|
||||||
|
|
||||||
vec3 viewNormal;
|
vec3 viewNormal;
|
||||||
<$tangentToViewSpaceLOD(_position, normalTex, _normal, _tangent, viewNormal)$>
|
<$tangentToViewSpaceLOD(_position, normalTex, _normal, _tangent, viewNormal)$>
|
||||||
|
|
||||||
float metallic = getMaterialMetallic(mat);
|
float metallic = getMaterialMetallic(mat);
|
||||||
<$evalMaterialMetallic(metallicTex, metallic, matKey, metallic)$>;
|
<$evalMaterialMetallic(metallicTex, metallic, matKey, metallic)$>;
|
||||||
|
@ -56,7 +56,7 @@ void main(void) {
|
||||||
<$evalMaterialScattering(scatteringTex, scattering, matKey, scattering)$>;
|
<$evalMaterialScattering(scatteringTex, scattering, matKey, scattering)$>;
|
||||||
|
|
||||||
packDeferredFragment(
|
packDeferredFragment(
|
||||||
viewNormal,
|
normalize(viewNormal.xyz),
|
||||||
opacity,
|
opacity,
|
||||||
albedo,
|
albedo,
|
||||||
roughness,
|
roughness,
|
||||||
|
|
|
@ -2,10 +2,10 @@
|
||||||
<$VERSION_HEADER$>
|
<$VERSION_HEADER$>
|
||||||
// Generated on <$_SCRIBE_DATE$>
|
// Generated on <$_SCRIBE_DATE$>
|
||||||
//
|
//
|
||||||
// model_normal_map_fade.frag
|
// model_normal_specular_map_fade.frag
|
||||||
// fragment shader
|
// fragment shader
|
||||||
//
|
//
|
||||||
// Created by Olivier Prat on 04/19/17.
|
// Created by Olivier Prat on 06/05/17.
|
||||||
// Copyright 2017 High Fidelity, Inc.
|
// Copyright 2017 High Fidelity, Inc.
|
||||||
//
|
//
|
||||||
// Distributed under the Apache License, Version 2.0.
|
// Distributed under the Apache License, Version 2.0.
|
||||||
|
@ -17,18 +17,18 @@
|
||||||
<@include graphics/Material.slh@>
|
<@include graphics/Material.slh@>
|
||||||
|
|
||||||
<@include MaterialTextures.slh@>
|
<@include MaterialTextures.slh@>
|
||||||
<$declareMaterialTextures(ALBEDO, ROUGHNESS, NORMAL, _SCRIBE_NULL, EMISSIVE, OCCLUSION, SCATTERING)$>
|
<$declareMaterialTextures(ALBEDO, ROUGHNESS, NORMAL, METALLIC, EMISSIVE, OCCLUSION)$>
|
||||||
|
|
||||||
<@include Fade.slh@>
|
<@include Fade.slh@>
|
||||||
<$declareFadeFragment()$>
|
<$declareFadeFragment()$>
|
||||||
|
|
||||||
in vec4 _position;
|
in vec4 _position;
|
||||||
in vec4 _worldPosition;
|
|
||||||
in vec2 _texCoord0;
|
in vec2 _texCoord0;
|
||||||
in vec2 _texCoord1;
|
in vec2 _texCoord1;
|
||||||
in vec3 _normal;
|
in vec3 _normal;
|
||||||
in vec3 _tangent;
|
in vec3 _tangent;
|
||||||
in vec3 _color;
|
in vec3 _color;
|
||||||
|
in vec4 _worldPosition;
|
||||||
|
|
||||||
void main(void) {
|
void main(void) {
|
||||||
vec3 fadeEmissive;
|
vec3 fadeEmissive;
|
||||||
|
@ -39,11 +39,11 @@ void main(void) {
|
||||||
|
|
||||||
Material mat = getMaterial();
|
Material mat = getMaterial();
|
||||||
BITFIELD matKey = getMaterialKey(mat);
|
BITFIELD matKey = getMaterialKey(mat);
|
||||||
<$fetchMaterialTexturesCoord0(matKey, _texCoord0, albedoTex, roughnessTex, normalTex, _SCRIBE_NULL, emissiveTex, scatteringTex)$>
|
<$fetchMaterialTexturesCoord0(matKey, _texCoord0, albedoTex, roughnessTex, normalTex, metallicTex, emissiveTex)$>
|
||||||
<$fetchMaterialTexturesCoord1(matKey, _texCoord1, occlusionTex)$>
|
<$fetchMaterialTexturesCoord1(matKey, _texCoord1, occlusionTex)$>
|
||||||
|
|
||||||
float opacity = 1.0;
|
float opacity = 1.0;
|
||||||
<$evalMaterialOpacity(albedoTex.a, opacity, matKey, opacity)$>;
|
<$evalMaterialOpacity(albedoTex.a, opacity, matKey, opacity)&>;
|
||||||
<$discardTransparent(opacity)$>;
|
<$discardTransparent(opacity)$>;
|
||||||
|
|
||||||
vec3 albedo = getMaterialAlbedo(mat);
|
vec3 albedo = getMaterialAlbedo(mat);
|
||||||
|
@ -57,17 +57,19 @@ void main(void) {
|
||||||
<$evalMaterialEmissive(emissiveTex, emissive, matKey, emissive)$>;
|
<$evalMaterialEmissive(emissiveTex, emissive, matKey, emissive)$>;
|
||||||
|
|
||||||
vec3 viewNormal;
|
vec3 viewNormal;
|
||||||
<$tangentToViewSpaceLOD(_position, normalTex, _normal, _tangent, viewNormal)$>
|
<$tangentToViewSpaceLOD(_position, normalTex, _normal, _tangent, viewNormal)$>
|
||||||
|
|
||||||
|
float metallic = getMaterialMetallic(mat);
|
||||||
|
<$evalMaterialMetallic(metallicTex, metallic, matKey, metallic)$>;
|
||||||
|
|
||||||
float scattering = getMaterialScattering(mat);
|
float scattering = getMaterialScattering(mat);
|
||||||
<$evalMaterialScattering(scatteringTex, scattering, matKey, scattering)$>;
|
|
||||||
|
|
||||||
packDeferredFragment(
|
packDeferredFragment(
|
||||||
viewNormal,
|
normalize(viewNormal.xyz),
|
||||||
opacity,
|
opacity,
|
||||||
albedo,
|
albedo,
|
||||||
roughness,
|
roughness,
|
||||||
getMaterialMetallic(mat),
|
metallic,
|
||||||
emissive+fadeEmissive,
|
emissive+fadeEmissive,
|
||||||
occlusionTex,
|
occlusionTex,
|
||||||
scattering);
|
scattering);
|
||||||
|
|
|
@ -1,67 +0,0 @@
|
||||||
<@include gpu/Config.slh@>
|
|
||||||
<$VERSION_HEADER$>
|
|
||||||
// Generated on <$_SCRIBE_DATE$>
|
|
||||||
//
|
|
||||||
// model_normal_specular_map.frag
|
|
||||||
// fragment shader
|
|
||||||
//
|
|
||||||
// Created by Andrzej Kapolka on 5/6/14.
|
|
||||||
// Copyright 2014 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
|
|
||||||
//
|
|
||||||
|
|
||||||
<@include DeferredBufferWrite.slh@>
|
|
||||||
|
|
||||||
<@include graphics/Material.slh@>
|
|
||||||
|
|
||||||
<@include MaterialTextures.slh@>
|
|
||||||
<$declareMaterialTextures(ALBEDO, ROUGHNESS, NORMAL, METALLIC, EMISSIVE, OCCLUSION)$>
|
|
||||||
|
|
||||||
in vec4 _position;
|
|
||||||
in vec2 _texCoord0;
|
|
||||||
in vec2 _texCoord1;
|
|
||||||
in vec3 _normal;
|
|
||||||
in vec3 _tangent;
|
|
||||||
in vec3 _color;
|
|
||||||
|
|
||||||
void main(void) {
|
|
||||||
Material mat = getMaterial();
|
|
||||||
BITFIELD matKey = getMaterialKey(mat);
|
|
||||||
<$fetchMaterialTexturesCoord0(matKey, _texCoord0, albedoTex, roughnessTex, normalTex, metallicTex, emissiveTex)$>
|
|
||||||
<$fetchMaterialTexturesCoord1(matKey, _texCoord1, occlusionTex)$>
|
|
||||||
|
|
||||||
float opacity = 1.0;
|
|
||||||
<$evalMaterialOpacity(albedoTex.a, opacity, matKey, opacity)&>;
|
|
||||||
<$discardTransparent(opacity)$>;
|
|
||||||
|
|
||||||
vec3 albedo = getMaterialAlbedo(mat);
|
|
||||||
<$evalMaterialAlbedo(albedoTex, albedo, matKey, albedo)$>;
|
|
||||||
albedo *= _color;
|
|
||||||
|
|
||||||
float roughness = getMaterialRoughness(mat);
|
|
||||||
<$evalMaterialRoughness(roughnessTex, roughness, matKey, roughness)$>;
|
|
||||||
|
|
||||||
vec3 emissive = getMaterialEmissive(mat);
|
|
||||||
<$evalMaterialEmissive(emissiveTex, emissive, matKey, emissive)$>;
|
|
||||||
|
|
||||||
vec3 viewNormal;
|
|
||||||
<$tangentToViewSpaceLOD(_position, normalTex, _normal, _tangent, viewNormal)$>
|
|
||||||
|
|
||||||
float metallic = getMaterialMetallic(mat);
|
|
||||||
<$evalMaterialMetallic(metallicTex, metallic, matKey, metallic)$>;
|
|
||||||
|
|
||||||
float scattering = getMaterialScattering(mat);
|
|
||||||
<$evalMaterialScattering(scatteringTex, scattering, matKey, scattering)$>;
|
|
||||||
|
|
||||||
packDeferredFragment(
|
|
||||||
normalize(viewNormal.xyz),
|
|
||||||
opacity,
|
|
||||||
albedo,
|
|
||||||
roughness,
|
|
||||||
metallic,
|
|
||||||
emissive,
|
|
||||||
occlusionTex,
|
|
||||||
scattering);
|
|
||||||
}
|
|
|
@ -1,76 +0,0 @@
|
||||||
<@include gpu/Config.slh@>
|
|
||||||
<$VERSION_HEADER$>
|
|
||||||
// Generated on <$_SCRIBE_DATE$>
|
|
||||||
//
|
|
||||||
// model_normal_specular_map_fade.frag
|
|
||||||
// fragment shader
|
|
||||||
//
|
|
||||||
// Created by Olivier Prat on 06/05/17.
|
|
||||||
// Copyright 2017 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
|
|
||||||
//
|
|
||||||
|
|
||||||
<@include DeferredBufferWrite.slh@>
|
|
||||||
|
|
||||||
<@include graphics/Material.slh@>
|
|
||||||
|
|
||||||
<@include MaterialTextures.slh@>
|
|
||||||
<$declareMaterialTextures(ALBEDO, ROUGHNESS, NORMAL, METALLIC, EMISSIVE, OCCLUSION)$>
|
|
||||||
|
|
||||||
<@include Fade.slh@>
|
|
||||||
<$declareFadeFragment()$>
|
|
||||||
|
|
||||||
in vec4 _position;
|
|
||||||
in vec2 _texCoord0;
|
|
||||||
in vec2 _texCoord1;
|
|
||||||
in vec3 _normal;
|
|
||||||
in vec3 _tangent;
|
|
||||||
in vec3 _color;
|
|
||||||
in vec4 _worldPosition;
|
|
||||||
|
|
||||||
void main(void) {
|
|
||||||
vec3 fadeEmissive;
|
|
||||||
FadeObjectParams fadeParams;
|
|
||||||
|
|
||||||
<$fetchFadeObjectParams(fadeParams)$>
|
|
||||||
applyFade(fadeParams, _worldPosition.xyz, fadeEmissive);
|
|
||||||
|
|
||||||
Material mat = getMaterial();
|
|
||||||
BITFIELD matKey = getMaterialKey(mat);
|
|
||||||
<$fetchMaterialTexturesCoord0(matKey, _texCoord0, albedoTex, roughnessTex, normalTex, metallicTex, emissiveTex)$>
|
|
||||||
<$fetchMaterialTexturesCoord1(matKey, _texCoord1, occlusionTex)$>
|
|
||||||
|
|
||||||
float opacity = 1.0;
|
|
||||||
<$evalMaterialOpacity(albedoTex.a, opacity, matKey, opacity)&>;
|
|
||||||
<$discardTransparent(opacity)$>;
|
|
||||||
|
|
||||||
vec3 albedo = getMaterialAlbedo(mat);
|
|
||||||
<$evalMaterialAlbedo(albedoTex, albedo, matKey, albedo)$>;
|
|
||||||
albedo *= _color;
|
|
||||||
|
|
||||||
float roughness = getMaterialRoughness(mat);
|
|
||||||
<$evalMaterialRoughness(roughnessTex, roughness, matKey, roughness)$>;
|
|
||||||
|
|
||||||
vec3 emissive = getMaterialEmissive(mat);
|
|
||||||
<$evalMaterialEmissive(emissiveTex, emissive, matKey, emissive)$>;
|
|
||||||
|
|
||||||
vec3 viewNormal;
|
|
||||||
<$tangentToViewSpaceLOD(_position, normalTex, _normal, _tangent, viewNormal)$>
|
|
||||||
|
|
||||||
float metallic = getMaterialMetallic(mat);
|
|
||||||
<$evalMaterialMetallic(metallicTex, metallic, matKey, metallic)$>;
|
|
||||||
|
|
||||||
float scattering = getMaterialScattering(mat);
|
|
||||||
|
|
||||||
packDeferredFragment(
|
|
||||||
normalize(viewNormal.xyz),
|
|
||||||
opacity,
|
|
||||||
albedo,
|
|
||||||
roughness,
|
|
||||||
metallic,
|
|
||||||
emissive+fadeEmissive,
|
|
||||||
occlusionTex,
|
|
||||||
scattering);
|
|
||||||
}
|
|
|
@ -1,64 +0,0 @@
|
||||||
<@include gpu/Config.slh@>
|
|
||||||
<$VERSION_HEADER$>
|
|
||||||
// Generated on <$_SCRIBE_DATE$>
|
|
||||||
//
|
|
||||||
// model_specular_map.frag
|
|
||||||
// fragment shader
|
|
||||||
//
|
|
||||||
// Created by Andrzej Kapolka on 5/6/14.
|
|
||||||
// Copyright 2014 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
|
|
||||||
//
|
|
||||||
|
|
||||||
<@include DeferredBufferWrite.slh@>
|
|
||||||
|
|
||||||
<@include graphics/Material.slh@>
|
|
||||||
|
|
||||||
<@include MaterialTextures.slh@>
|
|
||||||
<$declareMaterialTextures(ALBEDO, ROUGHNESS, _SCRIBE_NULL, METALLIC, EMISSIVE, OCCLUSION)$>
|
|
||||||
|
|
||||||
in vec4 _position;
|
|
||||||
in vec2 _texCoord0;
|
|
||||||
in vec2 _texCoord1;
|
|
||||||
in vec3 _normal;
|
|
||||||
in vec3 _color;
|
|
||||||
|
|
||||||
|
|
||||||
void main(void) {
|
|
||||||
Material mat = getMaterial();
|
|
||||||
BITFIELD matKey = getMaterialKey(mat);
|
|
||||||
<$fetchMaterialTexturesCoord0(matKey, _texCoord0, albedoTex, roughnessTex, _SCRIBE_NULL, metallicTex, emissiveTex)$>
|
|
||||||
<$fetchMaterialTexturesCoord1(matKey, _texCoord1, occlusionTex)$>
|
|
||||||
|
|
||||||
float opacity = 1.0;
|
|
||||||
<$evalMaterialOpacity(albedoTex.a, opacity, matKey, opacity)$>;
|
|
||||||
<$discardTransparent(opacity)$>;
|
|
||||||
|
|
||||||
vec3 albedo = getMaterialAlbedo(mat);
|
|
||||||
<$evalMaterialAlbedo(albedoTex, albedo, matKey, albedo)$>;
|
|
||||||
albedo *= _color;
|
|
||||||
|
|
||||||
float roughness = getMaterialRoughness(mat);
|
|
||||||
<$evalMaterialRoughness(roughnessTex, roughness, matKey, roughness)$>;
|
|
||||||
|
|
||||||
vec3 emissive = getMaterialEmissive(mat);
|
|
||||||
<$evalMaterialEmissive(emissiveTex, emissive, matKey, emissive)$>;
|
|
||||||
|
|
||||||
float metallic = getMaterialMetallic(mat);
|
|
||||||
<$evalMaterialMetallic(metallicTex, metallic, matKey, metallic)$>;
|
|
||||||
|
|
||||||
float scattering = getMaterialScattering(mat);
|
|
||||||
<$evalMaterialScattering(scatteringTex, scattering, matKey, scattering)$>;
|
|
||||||
|
|
||||||
packDeferredFragment(
|
|
||||||
normalize(_normal),
|
|
||||||
opacity,
|
|
||||||
albedo,
|
|
||||||
roughness,
|
|
||||||
metallic,
|
|
||||||
emissive,
|
|
||||||
occlusionTex,
|
|
||||||
scattering);
|
|
||||||
}
|
|
|
@ -1,72 +0,0 @@
|
||||||
<@include gpu/Config.slh@>
|
|
||||||
<$VERSION_HEADER$>
|
|
||||||
// Generated on <$_SCRIBE_DATE$>
|
|
||||||
//
|
|
||||||
// model_specular_map_fade.frag
|
|
||||||
// fragment shader
|
|
||||||
//
|
|
||||||
// Created by Olivier Prat on 06/05/17.
|
|
||||||
// Copyright 2017 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
|
|
||||||
//
|
|
||||||
|
|
||||||
<@include DeferredBufferWrite.slh@>
|
|
||||||
|
|
||||||
<@include graphics/Material.slh@>
|
|
||||||
|
|
||||||
<@include MaterialTextures.slh@>
|
|
||||||
<$declareMaterialTextures(ALBEDO, ROUGHNESS, _SCRIBE_NULL, METALLIC, EMISSIVE, OCCLUSION)$>
|
|
||||||
|
|
||||||
<@include Fade.slh@>
|
|
||||||
<$declareFadeFragment()$>
|
|
||||||
|
|
||||||
in vec4 _position;
|
|
||||||
in vec2 _texCoord0;
|
|
||||||
in vec2 _texCoord1;
|
|
||||||
in vec3 _normal;
|
|
||||||
in vec3 _color;
|
|
||||||
in vec4 _worldPosition;
|
|
||||||
|
|
||||||
void main(void) {
|
|
||||||
vec3 fadeEmissive;
|
|
||||||
FadeObjectParams fadeParams;
|
|
||||||
|
|
||||||
<$fetchFadeObjectParams(fadeParams)$>
|
|
||||||
applyFade(fadeParams, _worldPosition.xyz, fadeEmissive);
|
|
||||||
|
|
||||||
Material mat = getMaterial();
|
|
||||||
BITFIELD matKey = getMaterialKey(mat);
|
|
||||||
<$fetchMaterialTexturesCoord0(matKey, _texCoord0, albedoTex, roughnessTex, _SCRIBE_NULL, metallicTex, emissiveTex)$>
|
|
||||||
<$fetchMaterialTexturesCoord1(matKey, _texCoord1, occlusionTex)$>
|
|
||||||
|
|
||||||
float opacity = 1.0;
|
|
||||||
<$evalMaterialOpacity(albedoTex.a, opacity, matKey, opacity)$>;
|
|
||||||
<$discardTransparent(opacity)$>;
|
|
||||||
|
|
||||||
vec3 albedo = getMaterialAlbedo(mat);
|
|
||||||
<$evalMaterialAlbedo(albedoTex, albedo, matKey, albedo)$>;
|
|
||||||
albedo *= _color;
|
|
||||||
|
|
||||||
float roughness = getMaterialRoughness(mat);
|
|
||||||
<$evalMaterialRoughness(roughnessTex, roughness, matKey, roughness)$>;
|
|
||||||
|
|
||||||
vec3 emissive = getMaterialEmissive(mat);
|
|
||||||
<$evalMaterialEmissive(emissiveTex, emissive, matKey, emissive)$>;
|
|
||||||
|
|
||||||
float metallic = getMaterialMetallic(mat);
|
|
||||||
<$evalMaterialMetallic(metallicTex, metallic, matKey, metallic)$>;
|
|
||||||
|
|
||||||
float scattering = getMaterialScattering(mat);
|
|
||||||
|
|
||||||
packDeferredFragment(
|
|
||||||
normalize(_normal),
|
|
||||||
opacity,
|
|
||||||
albedo,
|
|
||||||
roughness,
|
|
||||||
metallic,
|
|
||||||
emissive+fadeEmissive,
|
|
||||||
occlusionTex,
|
|
||||||
scattering);
|
|
||||||
}
|
|
|
@ -50,12 +50,8 @@
|
||||||
#include <render-utils/model_frag.h>
|
#include <render-utils/model_frag.h>
|
||||||
#include <render-utils/model_shadow_frag.h>
|
#include <render-utils/model_shadow_frag.h>
|
||||||
#include <render-utils/model_normal_map_frag.h>
|
#include <render-utils/model_normal_map_frag.h>
|
||||||
#include <render-utils/model_normal_specular_map_frag.h>
|
|
||||||
#include <render-utils/model_specular_map_frag.h>
|
|
||||||
#include <render-utils/model_lightmap_frag.h>
|
#include <render-utils/model_lightmap_frag.h>
|
||||||
#include <render-utils/model_lightmap_normal_map_frag.h>
|
#include <render-utils/model_lightmap_normal_map_frag.h>
|
||||||
#include <render-utils/model_lightmap_normal_specular_map_frag.h>
|
|
||||||
#include <render-utils/model_lightmap_specular_map_frag.h>
|
|
||||||
#include <render-utils/model_translucent_frag.h>
|
#include <render-utils/model_translucent_frag.h>
|
||||||
|
|
||||||
#include <entities-renderer/textured_particle_frag.h>
|
#include <entities-renderer/textured_particle_frag.h>
|
||||||
|
@ -179,19 +175,13 @@ void QTestWindow::draw() {
|
||||||
|
|
||||||
testShaderBuild(model_vert::getSource(), model_frag::getSource());
|
testShaderBuild(model_vert::getSource(), model_frag::getSource());
|
||||||
testShaderBuild(model_normal_map_vert::getSource(), model_normal_map_frag::getSource());
|
testShaderBuild(model_normal_map_vert::getSource(), model_normal_map_frag::getSource());
|
||||||
testShaderBuild(model_vert::getSource(), model_specular_map_frag::getSource());
|
|
||||||
testShaderBuild(model_normal_map_vert::getSource(), model_normal_specular_map_frag::getSource());
|
|
||||||
testShaderBuild(model_vert::getSource(), model_translucent_frag::getSource());
|
testShaderBuild(model_vert::getSource(), model_translucent_frag::getSource());
|
||||||
testShaderBuild(model_normal_map_vert::getSource(), model_translucent_frag::getSource());
|
testShaderBuild(model_normal_map_vert::getSource(), model_translucent_frag::getSource());
|
||||||
testShaderBuild(model_lightmap_vert::getSource(), model_lightmap_frag::getSource());
|
testShaderBuild(model_lightmap_vert::getSource(), model_lightmap_frag::getSource());
|
||||||
testShaderBuild(model_lightmap_normal_map_vert::getSource(), model_lightmap_normal_map_frag::getSource());
|
testShaderBuild(model_lightmap_normal_map_vert::getSource(), model_lightmap_normal_map_frag::getSource());
|
||||||
testShaderBuild(model_lightmap_vert::getSource(), model_lightmap_specular_map_frag::getSource());
|
|
||||||
testShaderBuild(model_lightmap_normal_map_vert::getSource(), model_lightmap_normal_specular_map_frag::getSource());
|
|
||||||
|
|
||||||
testShaderBuild(skin_model_vert::getSource(), model_frag::getSource());
|
testShaderBuild(skin_model_vert::getSource(), model_frag::getSource());
|
||||||
testShaderBuild(skin_model_normal_map_vert::getSource(), model_normal_map_frag::getSource());
|
testShaderBuild(skin_model_normal_map_vert::getSource(), model_normal_map_frag::getSource());
|
||||||
testShaderBuild(skin_model_vert::getSource(), model_specular_map_frag::getSource());
|
|
||||||
testShaderBuild(skin_model_normal_map_vert::getSource(), model_normal_specular_map_frag::getSource());
|
|
||||||
testShaderBuild(skin_model_vert::getSource(), model_translucent_frag::getSource());
|
testShaderBuild(skin_model_vert::getSource(), model_translucent_frag::getSource());
|
||||||
testShaderBuild(skin_model_normal_map_vert::getSource(), model_translucent_frag::getSource());
|
testShaderBuild(skin_model_normal_map_vert::getSource(), model_translucent_frag::getSource());
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue