mirror of
https://github.com/JulianGro/overte.git
synced 2025-04-08 06:03:50 +02:00
Change descriptor declarations
Use INPUT and OUTPUT templates in shaders. Co-authored-by: Lubosz Sarnecki <lubosz@gmail.com>
This commit is contained in:
parent
60ec906637
commit
9e3acabb29
130 changed files with 576 additions and 536 deletions
|
@ -128,18 +128,17 @@ macro(AUTOSCRIBE_SHADER)
|
|||
AUTOSCRIBE_APPEND_QRC("${SHADER_COUNT}/name" "${SHADER_NAME_FILE}")
|
||||
|
||||
if (USE_GLES)
|
||||
set(SPIRV_CROSS_ARGS --version 310es)
|
||||
AUTOSCRIBE_PLATFORM_SHADER("310es")
|
||||
AUTOSCRIBE_PLATFORM_SHADER("310es/stereo")
|
||||
else()
|
||||
set(SPIRV_CROSS_ARGS --version 320es)
|
||||
AUTOSCRIBE_PLATFORM_SHADER("320es")
|
||||
AUTOSCRIBE_PLATFORM_SHADER("320es/stereo")
|
||||
elseif(APPLE)
|
||||
set(SPIRV_CROSS_ARGS --version 410 --no-420pack-extension)
|
||||
AUTOSCRIBE_PLATFORM_SHADER("410")
|
||||
AUTOSCRIBE_PLATFORM_SHADER("410/stereo")
|
||||
if (NOT APPLE)
|
||||
set(SPIRV_CROSS_ARGS --version 450)
|
||||
AUTOSCRIBE_PLATFORM_SHADER("450")
|
||||
AUTOSCRIBE_PLATFORM_SHADER("450/stereo")
|
||||
endif()
|
||||
else()
|
||||
set(SPIRV_CROSS_ARGS --version 450)
|
||||
AUTOSCRIBE_PLATFORM_SHADER("450")
|
||||
AUTOSCRIBE_PLATFORM_SHADER("450/stereo")
|
||||
endif()
|
||||
|
||||
string(CONCAT SHADER_LIST "${SHADER_LIST}" "${SHADER_NAME} = ${SHADER_COUNT},\n")
|
||||
|
@ -408,11 +407,11 @@ macro(AUTOSCRIBE_SHADER_LIBS)
|
|||
list(APPEND QT_RESOURCES_FILE ${CMAKE_CURRENT_BINARY_DIR}/shaders.qrc)
|
||||
|
||||
list(APPEND AUTOSCRIBE_SHADER_HEADERS ${AUTOSCRIBE_HEADER_DIR}/mono.glsl ${AUTOSCRIBE_HEADER_DIR}/stereo.glsl)
|
||||
list(APPEND AUTOSCRIBE_SHADER_HEADERS ${AUTOSCRIBE_HEADER_DIR}/450/header.glsl ${AUTOSCRIBE_HEADER_DIR}/410/header.glsl ${AUTOSCRIBE_HEADER_DIR}/310es/header.glsl)
|
||||
list(APPEND AUTOSCRIBE_SHADER_HEADERS ${AUTOSCRIBE_HEADER_DIR}/450/header.glsl ${AUTOSCRIBE_HEADER_DIR}/410/header.glsl ${AUTOSCRIBE_HEADER_DIR}/320es/header.glsl)
|
||||
source_group("Shader Headers" FILES ${AUTOSCRIBE_HEADER_DIR}/mono.glsl ${AUTOSCRIBE_HEADER_DIR}/stereo.glsl)
|
||||
source_group("Shader Headers\\450" FILES ${AUTOSCRIBE_HEADER_DIR}/450/header.glsl)
|
||||
source_group("Shader Headers\\410" FILES ${AUTOSCRIBE_HEADER_DIR}/410/header.glsl)
|
||||
source_group("Shader Headers\\310es" FILES ${AUTOSCRIBE_HEADER_DIR}/310es/header.glsl)
|
||||
source_group("Shader Headers\\320es" FILES ${AUTOSCRIBE_HEADER_DIR}/320es/header.glsl)
|
||||
|
||||
list(APPEND AUTOSCRIBE_SHADER_LIB_SRC ${AUTOSCRIBE_SHADER_HEADERS})
|
||||
list(APPEND AUTOSCRIBE_SHADER_LIB_SRC ${CMAKE_CURRENT_BINARY_DIR}/ShaderEnums.h ${CMAKE_CURRENT_BINARY_DIR}/ShaderEnums.cpp)
|
||||
|
|
|
@ -2,13 +2,13 @@ struct TextureData {
|
|||
ivec2 textureSize;
|
||||
};
|
||||
|
||||
LAYOUT_STD140(binding=0) uniform textureDataBuffer {
|
||||
UNIFORM_BUFFER(0, textureDataBuffer) {
|
||||
TextureData textureData;
|
||||
};
|
||||
|
||||
LAYOUT(binding=0) uniform sampler2D colorMap;
|
||||
layout(location=0) in vec2 varTexCoord0;
|
||||
layout(location=0) out vec4 outFragColor;
|
||||
TEXTURE(0, sampler2D, colorMap);
|
||||
INPUT(0, vec2, varTexCoord0);
|
||||
OUTPUT(0, vec4, outFragColor);
|
||||
|
||||
void main(void) {
|
||||
ivec2 texCoord = ivec2(floor(varTexCoord0 * vec2(textureData.textureSize)));
|
||||
|
|
|
@ -13,15 +13,15 @@
|
|||
<@if not HIFI_USE_FORWARD@>
|
||||
<@include DeferredBufferWrite.slh@>
|
||||
<@else@>
|
||||
layout(location=0) out vec4 _fragColor0;
|
||||
OUTPUT(0, vec4, _fragColor0);
|
||||
<@endif@>
|
||||
|
||||
<@include paintStroke.slh@>
|
||||
<$declarePolyLineBuffers()$>
|
||||
|
||||
<@include CullFace.slh@>
|
||||
|
||||
LAYOUT(binding=0) uniform sampler2D _texture;
|
||||
// the albedo texture
|
||||
TEXTURE(0, sampler2D, originalTexture);
|
||||
|
||||
<@if not HIFI_USE_FORWARD@>
|
||||
layout(location=0) in vec3 _normalWS;
|
||||
|
|
|
@ -11,10 +11,10 @@
|
|||
//
|
||||
|
||||
<@include gpu/ShaderConstants.h@>
|
||||
layout(location=GPU_ATTR_POSITION) in vec4 inPosition;
|
||||
layout(location=GPU_ATTR_NORMAL) in vec4 inNormal;
|
||||
layout(location=GPU_ATTR_COLOR) in vec4 inColor;
|
||||
layout(location=GPU_ATTR_TEXCOORD0) in vec4 inTexCoord0;
|
||||
INPUT(GPU_ATTR_POSITION, vec4, inPosition);
|
||||
INPUT(GPU_ATTR_NORMAL, vec4, inNormal);
|
||||
INPUT(GPU_ATTR_COLOR, vec4, inColor);
|
||||
INPUT(GPU_ATTR_TEXCOORD0, vec4, inTexCoord0);
|
||||
|
||||
<@include gpu/Color.slh@>
|
||||
<@include gpu/Transform.slh@>
|
||||
|
@ -24,11 +24,11 @@ layout(location=GPU_ATTR_TEXCOORD0) in vec4 inTexCoord0;
|
|||
<$declarePolyLineBuffers()$>
|
||||
|
||||
<@if not HIFI_USE_FORWARD@>
|
||||
layout(location=0) out vec3 _normalWS;
|
||||
OUTPUT(0, vec3, _normalWS);
|
||||
<@endif@>
|
||||
layout(location=1) out vec2 _texCoord;
|
||||
layout(location=2) out vec4 _color;
|
||||
layout(location=3) out float _distanceFromCenter;
|
||||
OUTPUT(1, vec2, _texCoord);
|
||||
OUTPUT(2, vec4, _color);
|
||||
OUTPUT(3, float, _distanceFromCenter);
|
||||
|
||||
void main(void) {
|
||||
PolylineVertex vertex = getPolylineVertex(gl_VertexID / 2);
|
||||
|
@ -53,20 +53,13 @@ void main(void) {
|
|||
vec3 normalEye = normalize(posEye.xyz);
|
||||
|
||||
vec3 binormalEye = normalize(cross(normalEye, tangentEye));
|
||||
// Workaround for Nvidia driver bug
|
||||
posEye.x += _distanceFromCenter * vertex.binormalAndHalfWidth.w * binormalEye.x;
|
||||
posEye.y += _distanceFromCenter * vertex.binormalAndHalfWidth.w * binormalEye.y;
|
||||
posEye.z += _distanceFromCenter * vertex.binormalAndHalfWidth.w * binormalEye.z;
|
||||
posEye.xyz += _distanceFromCenter * vertex.binormalAndHalfWidth.w * binormalEye;
|
||||
<$transformEyeToClipPos(cam, posEye, gl_Position)$>
|
||||
<@if not HIFI_USE_FORWARD@>
|
||||
<$transformEyeToWorldDir(cam, normalEye, _normalWS)$>
|
||||
<@endif@>
|
||||
} else {
|
||||
vec3 normal = vertex.normal.xyz;
|
||||
position.xyz += _distanceFromCenter * vertex.binormalAndHalfWidth.w * binormal;
|
||||
<$transformModelToClipPos(cam, obj, position, gl_Position)$>
|
||||
<@if not HIFI_USE_FORWARD@>
|
||||
<$transformModelToWorldDir(cam, obj, normal, _normalWS)$>
|
||||
<@endif@>
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
<@include Fade.slh@>
|
||||
<$declareFadeFragment()$>
|
||||
|
||||
layout(location=RENDER_UTILS_ATTR_POSITION_WS) in vec4 _positionWS;
|
||||
INPUT(RENDER_UTILS_ATTR_POSITION_WS, vec4, _positionWS);
|
||||
<@endif@>
|
||||
|
||||
<@if not HIFI_USE_SHADOW@>
|
||||
|
@ -35,26 +35,27 @@
|
|||
<@endif@>
|
||||
|
||||
<@if HIFI_USE_FORWARD@>
|
||||
layout(location=RENDER_UTILS_ATTR_POSITION_ES) in vec4 _positionES;
|
||||
INPUT(RENDER_UTILS_ATTR_POSITION_ES, vec4, _positionES);
|
||||
<@endif@>
|
||||
layout(location=RENDER_UTILS_ATTR_POSITION_MS) in vec3 _positionMS;
|
||||
layout(location=RENDER_UTILS_ATTR_NORMAL_WS) in vec3 _normalWS;
|
||||
INPUT(RENDER_UTILS_ATTR_POSITION_MS, vec4, _positionMS);
|
||||
INPUT(RENDER_UTILS_ATTR_NORMAL_WS, vec3, _normalWS);
|
||||
|
||||
LAYOUT(binding=ENTITIES_TEXTURE_POLYVOX_XMAP) uniform sampler2D xMap;
|
||||
LAYOUT(binding=ENTITIES_TEXTURE_POLYVOX_YMAP) uniform sampler2D yMap;
|
||||
LAYOUT(binding=ENTITIES_TEXTURE_POLYVOX_ZMAP) uniform sampler2D zMap;
|
||||
TEXTURE(ENTITIES_TEXTURE_POLYVOX_XMAP, sampler2D, xMap);
|
||||
TEXTURE(ENTITIES_TEXTURE_POLYVOX_YMAP, sampler2D, yMap);
|
||||
TEXTURE(ENTITIES_TEXTURE_POLYVOX_ZMAP, sampler2D, zMap);
|
||||
|
||||
struct PolyvoxParams {
|
||||
vec4 voxelVolumeSize;
|
||||
};
|
||||
|
||||
LAYOUT(binding=0) uniform polyvoxParamsBuffer {
|
||||
UNIFORM_BUFFER(0, polyvoxParamsBuffer) {
|
||||
PolyvoxParams params;
|
||||
};
|
||||
|
||||
<@endif@>
|
||||
|
||||
<@if HIFI_USE_SHADOW or HIFI_USE_FORWARD@>
|
||||
layout(location=0) out vec4 _fragColor0;
|
||||
OUTPUT(0, vec4, _fragColor0);
|
||||
<@endif@>
|
||||
|
||||
void main(void) {
|
||||
|
|
|
@ -10,8 +10,8 @@
|
|||
//
|
||||
|
||||
<@include gpu/ShaderConstants.h@>
|
||||
layout(location=GPU_ATTR_POSITION) in vec4 inPosition;
|
||||
layout(location=GPU_ATTR_NORMAL) in vec4 inNormal;
|
||||
INPUT(GPU_ATTR_POSITION, vec4, inPosition);
|
||||
INPUT(GPU_ATTR_NORMAL, vec4, inNormal);
|
||||
|
||||
<@include render-utils/ShaderConstants.h@>
|
||||
|
||||
|
@ -19,14 +19,14 @@ layout(location=GPU_ATTR_NORMAL) in vec4 inNormal;
|
|||
<$declareStandardTransform()$>
|
||||
|
||||
<@if HIFI_USE_FADE@>
|
||||
layout(location=RENDER_UTILS_ATTR_POSITION_WS) out vec4 _positionWS;
|
||||
OUTPUT(RENDER_UTILS_ATTR_POSITION_WS, vec4, _positionWS);
|
||||
<@endif@>
|
||||
<@if not HIFI_USE_SHADOW@>
|
||||
<@if HIFI_USE_FORWARD@>
|
||||
layout(location=RENDER_UTILS_ATTR_POSITION_ES) out vec4 _positionES;
|
||||
OUTPUT(RENDER_UTILS_ATTR_POSITION_ES, vec4, _positionES);
|
||||
<@endif@>
|
||||
layout(location=RENDER_UTILS_ATTR_POSITION_MS) out vec3 _positionMS;
|
||||
layout(location=RENDER_UTILS_ATTR_NORMAL_WS) out vec3 _normalWS;
|
||||
OUTPUT(RENDER_UTILS_ATTR_POSITION_MS, vec4, _positionMS);
|
||||
OUTPUT(RENDER_UTILS_ATTR_NORMAL_WS, vec3, _normalWS);
|
||||
<@endif@>
|
||||
|
||||
void main(void) {
|
||||
|
@ -44,7 +44,7 @@ void main(void) {
|
|||
<@endif@>
|
||||
|
||||
<$transformModelToWorldDir(cam, obj, inNormal.xyz, _normalWS)$>
|
||||
_positionMS = inPosition.xyz;
|
||||
_positionMS = inPosition;
|
||||
<@endif@>
|
||||
<@if HIFI_USE_FADE@>
|
||||
<$transformModelToWorldPos(obj, inPosition, _positionWS)$>
|
||||
|
|
|
@ -10,13 +10,13 @@
|
|||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||
//
|
||||
|
||||
LAYOUT(binding=0) uniform sampler2D colorMap;
|
||||
TEXTURE(0, sampler2D, colorMap);
|
||||
|
||||
layout(location=0) in vec4 varColor;
|
||||
layout(location=1) in vec2 varTexcoord;
|
||||
INPUT(0, vec4, varColor);
|
||||
INPUT(1, vec2, varTexcoord);
|
||||
|
||||
<@if HIFI_USE_FORWARD or HIFI_USE_SHADOW@>
|
||||
layout(location=0) out vec4 _fragColor0;
|
||||
OUTPUT(0, vec4, _fragColor0);
|
||||
<@else@>
|
||||
<@include DeferredBufferWrite.slh@>
|
||||
<@endif@>
|
||||
|
|
|
@ -43,15 +43,15 @@ struct ParticleUniforms {
|
|||
vec2 spare;
|
||||
};
|
||||
|
||||
LAYOUT_STD140(binding=0) uniform particleBuffer {
|
||||
UNIFORM_BUFFER(0, particleBuffer) {
|
||||
ParticleUniforms particle;
|
||||
};
|
||||
|
||||
layout(location=0) in vec3 inPosition;
|
||||
layout(location=2) in vec2 inColor; // This is actual Lifetime + Seed
|
||||
INPUT(0, vec3, inPosition);
|
||||
INPUT(2, vec2, inColor); // This is actual Lifetime + Seed
|
||||
|
||||
layout(location=0) out vec4 varColor;
|
||||
layout(location=1) out vec2 varTexcoord;
|
||||
OUTPUT(0, vec4, varColor);
|
||||
OUTPUT(1, vec2, varTexcoord);
|
||||
|
||||
float bezierInterpolate(float y1, float y2, float y3, float u) {
|
||||
// https://en.wikipedia.org/wiki/Bezier_curve
|
||||
|
|
|
@ -17,11 +17,11 @@ struct DrawColorParams {
|
|||
vec4 color;
|
||||
};
|
||||
|
||||
LAYOUT(binding=0) uniform drawColorParamsBuffer {
|
||||
UNIFORM_BUFFER(0, drawColorParamsBuffer) {
|
||||
DrawColorParams params;
|
||||
};
|
||||
|
||||
layout(location=0) out vec4 outFragColor;
|
||||
OUTPUT(0, vec4, outFragColor);
|
||||
|
||||
void main(void) {
|
||||
outFragColor = params.color;
|
||||
|
|
|
@ -13,18 +13,18 @@
|
|||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||
//
|
||||
|
||||
LAYOUT(binding=0) uniform sampler2D colorMap;
|
||||
TEXTURE(0, sampler2D, colorMap);
|
||||
|
||||
struct DrawColorParams {
|
||||
vec4 color;
|
||||
};
|
||||
|
||||
LAYOUT(binding=0) uniform drawColorParams {
|
||||
UNIFORM_BUFFER(0, drawColorParams) {
|
||||
DrawColorParams params;
|
||||
};
|
||||
|
||||
layout(location=0) in vec2 varTexCoord0;
|
||||
layout(location=0) out vec4 outFragColor;
|
||||
INPUT(0, vec2, varTexCoord0);
|
||||
OUTPUT(0, vec4, outFragColor);
|
||||
|
||||
void main(void) {
|
||||
outFragColor = texture(colorMap, varTexCoord0) * params.color;
|
||||
|
|
|
@ -25,11 +25,11 @@ struct TexCoordRectParams {
|
|||
vec4 texcoordRect;
|
||||
};
|
||||
|
||||
LAYOUT(binding=0) uniform texcoordRectBuffer {
|
||||
UNIFORM_BUFFER(0, texcoordRectBuffer) {
|
||||
TexCoordRectParams params;
|
||||
};
|
||||
|
||||
layout(location=0) out vec2 varTexCoord0;
|
||||
OUTPUT(0, vec2, varTexCoord0);
|
||||
|
||||
void main(void) {
|
||||
const vec4 UNIT_QUAD[4] = vec4[4](
|
||||
|
|
|
@ -14,10 +14,10 @@
|
|||
//
|
||||
|
||||
|
||||
LAYOUT(binding=0) uniform sampler2D colorMap;
|
||||
TEXTURE(0, sampler2D, colorMap);
|
||||
|
||||
layout(location=0) in vec2 varTexCoord0;
|
||||
layout(location=0) out vec4 outFragColor;
|
||||
INPUT(0, vec2, varTexCoord0);
|
||||
OUTPUT(0, vec4, outFragColor);
|
||||
|
||||
void main(void) {
|
||||
outFragColor = texture(colorMap, varTexCoord0);
|
||||
|
|
|
@ -15,10 +15,10 @@
|
|||
|
||||
<@include gpu/Color.slh@>
|
||||
|
||||
LAYOUT(binding=0) uniform sampler2D colorMap;
|
||||
TEXTURE(0, sampler2D, colorMap);
|
||||
|
||||
layout(location=0) in vec2 varTexCoord0;
|
||||
layout(location=0) out vec4 outFragColor;
|
||||
INPUT(0, vec2, varTexCoord0);
|
||||
OUTPUT(0, vec4, outFragColor);
|
||||
|
||||
void main(void) {
|
||||
outFragColor = vec4(texture(colorMap, vec2(1.0 - varTexCoord0.x, varTexCoord0.y)).xyz, 1.0);
|
||||
|
|
|
@ -14,11 +14,11 @@
|
|||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||
//
|
||||
|
||||
LAYOUT(binding=0) uniform sampler2D colorMap;
|
||||
TEXTURE(0, sampler2D, colorMap);
|
||||
|
||||
layout(location=0) in vec2 varTexCoord0;
|
||||
INPUT(0, vec2, varTexCoord0);
|
||||
|
||||
layout(location=0) out vec4 outFragColor;
|
||||
OUTPUT(0, vec4, outFragColor);
|
||||
|
||||
void main(void) {
|
||||
outFragColor = vec4(texture(colorMap, varTexCoord0).xyz, 1.0);
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
|
||||
<$declareStandardTransform()$>
|
||||
|
||||
layout(location=0) out vec2 varTexCoord0;
|
||||
OUTPUT(0, vec2, varTexCoord0);
|
||||
|
||||
void main(void) {
|
||||
const vec4 UNIT_QUAD[4] = vec4[4](
|
||||
|
|
|
@ -18,9 +18,9 @@
|
|||
|
||||
<$declareStandardTransform()$>
|
||||
|
||||
layout(location=0) in vec4 inPosition;
|
||||
INPUT(0, vec4, inPosition);
|
||||
|
||||
layout(location=0) out vec3 varWorldPos;
|
||||
OUTPUT(0, vec3, varWorldPos);
|
||||
|
||||
void main(void) {
|
||||
// standard transform
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
// Distributed under the Apache License, Version 2.0.
|
||||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||
//
|
||||
layout(location=0) out vec2 varTexCoord0;
|
||||
OUTPUT(0, vec2, varTexCoord0);
|
||||
|
||||
void main(void) {
|
||||
const float depth = 1.0;
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||
//
|
||||
|
||||
layout(location=0) in vec4 inPosition;
|
||||
INPUT(0, vec4, inPosition);
|
||||
|
||||
void main(void) {
|
||||
gl_Position = inPosition;
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
|
||||
<$declareStandardTransform()$>
|
||||
|
||||
layout(location=0) out vec2 varTexCoord0;
|
||||
OUTPUT(0, vec2, varTexCoord0);
|
||||
|
||||
void main(void) {
|
||||
const vec4 UNIT_QUAD[4] = vec4[4](
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||
//
|
||||
|
||||
layout(location=0) out vec4 outFragColor;
|
||||
OUTPUT(0, vec4, outFragColor);
|
||||
|
||||
void main(void) {
|
||||
outFragColor = vec4(1.0);
|
||||
|
|
|
@ -13,15 +13,15 @@
|
|||
|
||||
<@include gpu/ShaderConstants.h@>
|
||||
|
||||
layout(location=GPU_ATTR_POSITION) in vec4 inPosition;
|
||||
layout(location=GPU_ATTR_NORMAL) in vec4 inNormal;
|
||||
layout(location=GPU_ATTR_COLOR) in vec4 inColor;
|
||||
layout(location=GPU_ATTR_TEXCOORD0) in vec4 inTexCoord0;
|
||||
layout(location=GPU_ATTR_TANGENT) in vec4 inTangent;
|
||||
layout(location=GPU_ATTR_SKIN_CLUSTER_INDEX) in ivec4 inSkinClusterIndex;
|
||||
layout(location=GPU_ATTR_SKIN_CLUSTER_WEIGHT) in vec4 inSkinClusterWeight;
|
||||
layout(location=GPU_ATTR_TEXCOORD1) in vec4 inTexCoord1;
|
||||
layout(location=GPU_ATTR_TEXCOORD2) in vec4 inTexCoord2;
|
||||
layout(location=GPU_ATTR_TEXCOORD3) in vec4 inTexCoord3;
|
||||
layout(location=GPU_ATTR_TEXCOORD4) in vec4 inTexCoord4;
|
||||
INPUT(GPU_ATTR_POSITION, vec4, inPosition);
|
||||
INPUT(GPU_ATTR_NORMAL, vec4, inNormal);
|
||||
INPUT(GPU_ATTR_COLOR, vec4, inColor);
|
||||
INPUT(GPU_ATTR_TEXCOORD0, vec4, inTexCoord0);
|
||||
INPUT(GPU_ATTR_TANGENT, vec4, inTangent);
|
||||
INPUT(GPU_ATTR_SKIN_CLUSTER_INDEX, ivec4, inSkinClusterIndex);
|
||||
INPUT(GPU_ATTR_SKIN_CLUSTER_WEIGHT, vec4, inSkinClusterWeight);
|
||||
INPUT(GPU_ATTR_TEXCOORD1, vec4, inTexCoord1);
|
||||
INPUT(GPU_ATTR_TEXCOORD2, vec4, inTexCoord2);
|
||||
INPUT(GPU_ATTR_TEXCOORD3, vec4, inTexCoord3);
|
||||
INPUT(GPU_ATTR_TEXCOORD4, vec4, inTexCoord4);
|
||||
<@endif@>
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
|
||||
<@include gpu/ShaderConstants.h@>
|
||||
|
||||
LAYOUT(binding=GPU_TEXTURE_MIP_CREATION_INPUT) uniform sampler2D texMap;
|
||||
TEXTURE(GPU_TEXTURE_MIP_CREATION_INPUT, sampler2D, texMap);
|
||||
|
||||
in vec2 varTexCoord0;
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
|
||||
#define TransformCamera _TransformCamera
|
||||
|
||||
LAYOUT_STD140(binding=GPU_BUFFER_TRANSFORM_CAMERA) uniform transformCameraBuffer {
|
||||
UNIFORM_BUFFER(GPU_BUFFER_TRANSFORM_CAMERA, transformCameraBuffer) {
|
||||
#ifdef GPU_TRANSFORM_IS_STEREO
|
||||
#ifdef GPU_TRANSFORM_STEREO_CAMERA
|
||||
TransformCamera _camera[2];
|
||||
|
@ -32,10 +32,10 @@ LAYOUT_STD140(binding=GPU_BUFFER_TRANSFORM_CAMERA) uniform transformCameraBuffer
|
|||
#ifdef GPU_TRANSFORM_IS_STEREO
|
||||
#ifdef GPU_TRANSFORM_STEREO_CAMERA
|
||||
#ifdef GPU_TRANSFORM_STEREO_CAMERA_ATTRIBUTED
|
||||
layout(location=GPU_ATTR_STEREO_SIDE) in int _inStereoSide;
|
||||
INPUT(GPU_ATTR_STEREO_SIDE, int, _inStereoSide);
|
||||
#endif
|
||||
|
||||
layout(location=GPU_ATTR_V2F_STEREO_SIDE) flat out int _stereoSide;
|
||||
FLAT_OUTPUT(GPU_ATTR_V2F_STEREO_SIDE, int, _stereoSide);
|
||||
|
||||
// In stereo drawcall mode Instances are drawn twice (left then right) hence the true InstanceID is the gl_InstanceID / 2
|
||||
int gpu_InstanceID() {
|
||||
|
@ -60,7 +60,7 @@ int gpu_InstanceID() {
|
|||
|
||||
#ifdef GPU_PIXEL_SHADER
|
||||
#ifdef GPU_TRANSFORM_STEREO_CAMERA
|
||||
layout(location=GPU_ATTR_V2F_STEREO_SIDE) flat in int _stereoSide;
|
||||
FLAT_INPUT(GPU_ATTR_V2F_STEREO_SIDE, int, _stereoSide);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
@ -117,10 +117,10 @@ struct TransformObject {
|
|||
mat4 _modelInverse;
|
||||
};
|
||||
|
||||
layout(location=GPU_ATTR_DRAW_CALL_INFO) in ivec2 _drawCallInfo;
|
||||
INPUT(GPU_ATTR_DRAW_CALL_INFO, ivec2, _drawCallInfo);
|
||||
|
||||
#if defined(GPU_SSBO_TRANSFORM_OBJECT)
|
||||
LAYOUT_STD140(binding=GPU_STORAGE_TRANSFORM_OBJECT) buffer transformObjectBuffer {
|
||||
RESOURCE_BUFFER(GPU_STORAGE_TRANSFORM_OBJECT, transformObjectBuffer) {
|
||||
TransformObject _object[];
|
||||
};
|
||||
TransformObject getTransformObject() {
|
||||
|
@ -128,7 +128,7 @@ TransformObject getTransformObject() {
|
|||
return transformObject;
|
||||
}
|
||||
#else
|
||||
LAYOUT(binding=GPU_TEXTURE_TRANSFORM_OBJECT) uniform samplerBuffer transformObjectBuffer;
|
||||
RESOURCE_BUFFER(GPU_TEXTURE_TRANSFORM_OBJECT, transformObjectBuffer);
|
||||
|
||||
TransformObject getTransformObject() {
|
||||
int offset = 8 * _drawCallInfo.x;
|
||||
|
|
|
@ -38,7 +38,8 @@ struct HazeParams {
|
|||
float hazeKeyLightAltitudeFactor;
|
||||
};
|
||||
|
||||
LAYOUT_STD140(binding=GRAPHICS_BUFFER_HAZE_PARAMS) uniform hazeBuffer {
|
||||
// See ShapePipeline::Slot::BUFFER in ShapePipeline.h
|
||||
UNIFORM_BUFFER(GRAPHICS_BUFFER_HAZE_PARAMS, hazeBuffer) {
|
||||
HazeParams hazeParams;
|
||||
};
|
||||
|
||||
|
|
|
@ -63,7 +63,7 @@ float getLightAmbientMapNumMips(LightAmbient l) { return l._ambientInfo.y; }
|
|||
|
||||
|
||||
<@if N@>
|
||||
LAYOUT(binding=GRAPHICS_BUFFER_LIGHT) uniform lightBuffer {
|
||||
UNIFORM_BUFFER(GRAPHICS_BUFFER_LIGHT, lightBuffer) {
|
||||
Light lightArray[<$N$>];
|
||||
};
|
||||
Light getLight(int index) {
|
||||
|
@ -71,7 +71,7 @@ Light getLight(int index) {
|
|||
}
|
||||
|
||||
<@else@>
|
||||
LAYOUT(binding=GRAPHICS_BUFFER_KEY_LIGHT) uniform keyLightBuffer {
|
||||
UNIFORM_BUFFER(GRAPHICS_BUFFER_KEY_LIGHT, keyLightBuffer) {
|
||||
Light light;
|
||||
};
|
||||
Light getKeyLight() {
|
||||
|
@ -87,7 +87,7 @@ Light getKeyLight() {
|
|||
|
||||
<@if N@>
|
||||
|
||||
LAYOUT(binding=GRAPHICS_BUFFER_AMBIENT_LIGHT) uniform lightAmbientBuffer {
|
||||
UNIFORM_BUFFER(GRAPHICS_BUFFER_AMBIENT_LIGHT, lightAmbientBuffer) {
|
||||
LightAmbient lightAmbientArray[<$N$>];
|
||||
};
|
||||
|
||||
|
@ -96,7 +96,7 @@ LightAmbient getLightAmbient(int index) {
|
|||
}
|
||||
|
||||
<@else@>
|
||||
LAYOUT(binding=GRAPHICS_BUFFER_AMBIENT_LIGHT) uniform lightAmbientBuffer {
|
||||
UNIFORM_BUFFER(GRAPHICS_BUFFER_AMBIENT_LIGHT, lightAmbientBuffer) {
|
||||
LightAmbient lightAmbient;
|
||||
};
|
||||
|
||||
|
|
|
@ -67,7 +67,7 @@ struct Material {
|
|||
};
|
||||
<@endif@>
|
||||
|
||||
LAYOUT_STD140(binding=GRAPHICS_BUFFER_MATERIAL) uniform materialBuffer {
|
||||
UNIFORM_BUFFER(GRAPHICS_BUFFER_MATERIAL, materialBuffer) {
|
||||
Material _mat;
|
||||
TexMapArray _texMapArray;
|
||||
};
|
||||
|
|
|
@ -153,14 +153,14 @@ float fetchScatteringMap(vec2 uv) {
|
|||
#else
|
||||
|
||||
<@if withAlbedo@>
|
||||
LAYOUT(binding=GRAPHICS_TEXTURE_MATERIAL_ALBEDO) uniform sampler2D albedoMap;
|
||||
TEXTURE(GRAPHICS_TEXTURE_MATERIAL_ALBEDO, sampler2D, albedoMap);
|
||||
vec4 fetchAlbedoMap(vec2 uv) {
|
||||
return texture(albedoMap, uv, TAA_TEXTURE_LOD_BIAS);
|
||||
}
|
||||
<@endif@>
|
||||
|
||||
<@if withNormal@>
|
||||
LAYOUT(binding=GRAPHICS_TEXTURE_MATERIAL_NORMAL) uniform sampler2D normalMap;
|
||||
TEXTURE(GRAPHICS_TEXTURE_MATERIAL_NORMAL, sampler2D, normalMap);
|
||||
vec3 fetchNormalMap(vec2 uv) {
|
||||
// unpack normal, swizzle to get into hifi tangent space with Y axis pointing out
|
||||
vec2 t = 2.0 * (texture(normalMap, uv, TAA_TEXTURE_LOD_BIAS).rg - vec2(0.5, 0.5));
|
||||
|
@ -170,35 +170,35 @@ vec3 fetchNormalMap(vec2 uv) {
|
|||
<@endif@>
|
||||
|
||||
<@if withMetallic@>
|
||||
LAYOUT(binding=GRAPHICS_TEXTURE_MATERIAL_METALLIC) uniform sampler2D metallicMap;
|
||||
TEXTURE(GRAPHICS_TEXTURE_MATERIAL_METALLIC, sampler2D, metallicMap);
|
||||
float fetchMetallicMap(vec2 uv) {
|
||||
return (texture(metallicMap, uv, TAA_TEXTURE_LOD_BIAS).r);
|
||||
}
|
||||
<@endif@>
|
||||
|
||||
<@if withEmissive@>
|
||||
LAYOUT(binding=GRAPHICS_TEXTURE_MATERIAL_EMISSIVE_LIGHTMAP) uniform sampler2D emissiveMap;
|
||||
TEXTURE(GRAPHICS_TEXTURE_MATERIAL_EMISSIVE_LIGHTMAP, sampler2D, emissiveMap);
|
||||
vec3 fetchEmissiveMap(vec2 uv) {
|
||||
return texture(emissiveMap, uv, TAA_TEXTURE_LOD_BIAS).rgb;
|
||||
}
|
||||
<@endif@>
|
||||
|
||||
<@if withRoughness@>
|
||||
LAYOUT(binding=GRAPHICS_TEXTURE_MATERIAL_ROUGHNESS) uniform sampler2D roughnessMap;
|
||||
TEXTURE(GRAPHICS_TEXTURE_MATERIAL_ROUGHNESS, sampler2D, roughnessMap);
|
||||
float fetchRoughnessMap(vec2 uv) {
|
||||
return (texture(roughnessMap, uv, TAA_TEXTURE_LOD_BIAS).r);
|
||||
}
|
||||
<@endif@>
|
||||
|
||||
<@if withOcclusion@>
|
||||
LAYOUT(binding=GRAPHICS_TEXTURE_MATERIAL_OCCLUSION) uniform sampler2D occlusionMap;
|
||||
TEXTURE(GRAPHICS_TEXTURE_MATERIAL_OCCLUSION, sampler2D, occlusionMap);
|
||||
float fetchOcclusionMap(vec2 uv) {
|
||||
return texture(occlusionMap, uv).r;
|
||||
}
|
||||
<@endif@>
|
||||
|
||||
<@if withScattering@>
|
||||
LAYOUT(binding=GRAPHICS_TEXTURE_MATERIAL_SCATTERING) uniform sampler2D scatteringMap;
|
||||
TEXTURE(GRAPHICS_TEXTURE_MATERIAL_SCATTERING, sampler2D, scatteringMap);
|
||||
float fetchScatteringMap(vec2 uv) {
|
||||
float scattering = texture(scatteringMap, uv, TAA_TEXTURE_LOD_BIAS).r; // boolean scattering for now
|
||||
return max(((scattering - 0.1) / 0.9), 0.0);
|
||||
|
@ -248,9 +248,9 @@ float fetchScatteringMap(vec2 uv) {
|
|||
|
||||
<$declareMaterialTexMapArrayBuffer()$>
|
||||
|
||||
LAYOUT(binding=GRAPHICS_TEXTURE_MATERIAL_EMISSIVE_LIGHTMAP) uniform sampler2D emissiveMap;
|
||||
vec3 fetchLightMap(vec2 uv) {
|
||||
vec2 lightmapParams = getTexMapArray()._lightmapParams;
|
||||
TEXTURE(GRAPHICS_TEXTURE_MATERIAL_EMISSIVE_LIGHTMAP, sampler2D, emissiveMap);
|
||||
vec3 fetchLightmapMap(vec2 uv) {
|
||||
vec2 lightmapParams = getTexMapArray()._lightmapParams.xy;
|
||||
return (vec3(lightmapParams.x) + lightmapParams.y * texture(emissiveMap, uv).rgb);
|
||||
}
|
||||
<@endfunc@>
|
||||
|
|
|
@ -22,18 +22,18 @@
|
|||
<@include graphics/Haze.slh@>
|
||||
<@endif@>
|
||||
|
||||
LAYOUT(binding=GRAPHICS_TEXTURE_SKYBOX) uniform samplerCube cubeMap;
|
||||
TEXTURE(GRAPHICS_TEXTURE_SKYBOX, samplerCube, cubeMap);
|
||||
|
||||
struct Skybox {
|
||||
vec4 color;
|
||||
};
|
||||
|
||||
LAYOUT(binding=GRAPHICS_BUFFER_SKYBOX_PARAMS) uniform skyboxBuffer {
|
||||
UNIFORM_BUFFER(GRAPHICS_BUFFER_SKYBOX_PARAMS, skyboxBuffer) {
|
||||
Skybox skybox;
|
||||
};
|
||||
|
||||
layout(location=0) in vec3 _normal;
|
||||
layout(location=0) out vec4 _fragColor;
|
||||
INPUT(0, vec3, _normal);
|
||||
OUTPUT(0, vec4, _fragColor);
|
||||
|
||||
void main(void) {
|
||||
vec3 normal = normalize(_normal);
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
<@include gpu/Transform.slh@>
|
||||
<$declareStandardTransform()$>
|
||||
|
||||
layout(location=0) out vec3 _normal;
|
||||
OUTPUT(0, vec3, _normal);
|
||||
|
||||
void main(void) {
|
||||
const float depth = 0.0;
|
||||
|
|
|
@ -11,10 +11,10 @@
|
|||
<@include gpu/Noise.slh@>
|
||||
<@include procedural/ShaderConstants.h@>
|
||||
|
||||
LAYOUT(binding=PROCEDURAL_TEXTURE_CHANNEL0) uniform sampler2D iChannel0;
|
||||
LAYOUT(binding=PROCEDURAL_TEXTURE_CHANNEL1) uniform sampler2D iChannel1;
|
||||
LAYOUT(binding=PROCEDURAL_TEXTURE_CHANNEL2) uniform sampler2D iChannel2;
|
||||
LAYOUT(binding=PROCEDURAL_TEXTURE_CHANNEL3) uniform sampler2D iChannel3;
|
||||
TEXTURE(PROCEDURAL_TEXTURE_CHANNEL0, sampler2D, iChannel0);
|
||||
TEXTURE(PROCEDURAL_TEXTURE_CHANNEL1, sampler2D, iChannel1);
|
||||
TEXTURE(PROCEDURAL_TEXTURE_CHANNEL2, sampler2D, iChannel2);
|
||||
TEXTURE(PROCEDURAL_TEXTURE_CHANNEL3, sampler2D, iChannel3);
|
||||
|
||||
// DO NOT TOUCH
|
||||
// This block does not follow our normal rules of always using a struct and
|
||||
|
@ -24,7 +24,7 @@ LAYOUT(binding=PROCEDURAL_TEXTURE_CHANNEL3) uniform sampler2D iChannel3;
|
|||
// comptability with existing procedural shaders that previously relied on these
|
||||
// inputs as uniforms, not members of a UBO
|
||||
|
||||
LAYOUT_STD140(binding=PROCEDURAL_BUFFER_INPUTS) uniform standardInputsBuffer {
|
||||
UNIFORM_BUFFER(0, standardInputsBuffer) {
|
||||
// Offset 0
|
||||
vec4 date;
|
||||
// Offset 16, acts as vec4 for alignment purposes
|
||||
|
|
|
@ -12,18 +12,18 @@
|
|||
//
|
||||
<@include graphics/ShaderConstants.h@>
|
||||
|
||||
LAYOUT(binding=GRAPHICS_TEXTURE_SKYBOX) uniform samplerCube cubeMap;
|
||||
TEXTURE(GRAPHICS_TEXTURE_SKYBOX, samplerCube, cubeMap);
|
||||
|
||||
struct Skybox {
|
||||
vec4 color;
|
||||
};
|
||||
|
||||
LAYOUT(binding=GRAPHICS_BUFFER_SKYBOX_PARAMS) uniform skyboxBuffer {
|
||||
UNIFORM_BUFFER(GRAPHICS_BUFFER_SKYBOX_PARAMS, skyboxBuffer) {
|
||||
Skybox skybox;
|
||||
};
|
||||
|
||||
layout(location=0) in vec3 _normal;
|
||||
layout(location=0) out vec4 _fragColor;
|
||||
INPUT(0, vec3, _normal);
|
||||
OUTPUT(0, vec4, _fragColor);
|
||||
|
||||
<@include procedural/ProceduralCommon.slh@>
|
||||
|
||||
|
|
|
@ -11,12 +11,12 @@
|
|||
<@func declareBlendshape(USE_NORMAL, USE_TANGENT)@>
|
||||
|
||||
#if !defined(GPU_SSBO_TRANSFORM_OBJECT)
|
||||
LAYOUT(binding=GPU_RESOURCE_BUFFER_SLOT0_TEXTURE) uniform samplerBuffer blendshapeOffsetsBuffer;
|
||||
RESOURCE_BUFFER(GPU_RESOURCE_BUFFER_SLOT0_TEXTURE, blendshapeOffsetsBuffer);
|
||||
uvec4 getPackedBlendshapeOffset(int i) {
|
||||
return floatBitsToUint(texelFetch(blendshapeOffsetsBuffer, i));
|
||||
}
|
||||
#else
|
||||
LAYOUT_STD140(binding=GPU_RESOURCE_BUFFER_SLOT0_STORAGE) buffer blendshapeOffsetsBuffer {
|
||||
RESOURCE_BUFFER(GPU_RESOURCE_BUFFER_SLOT0_STORAGE, blendshapeOffsetsBuffer) {
|
||||
uvec4 _packedBlendshapeOffsets[];
|
||||
};
|
||||
uvec4 getPackedBlendshapeOffset(int i) {
|
||||
|
|
|
@ -12,16 +12,16 @@
|
|||
<@include BloomApply.shared.slh@>
|
||||
<@include render-utils/ShaderConstants.h@>
|
||||
|
||||
LAYOUT(binding=0) uniform sampler2D blurMap0;
|
||||
LAYOUT(binding=1) uniform sampler2D blurMap1;
|
||||
LAYOUT(binding=2) uniform sampler2D blurMap2;
|
||||
TEXTURE(0, sampler2D, blurMap0);
|
||||
TEXTURE(1, sampler2D, blurMap1);
|
||||
TEXTURE(2, sampler2D, blurMap2);
|
||||
|
||||
LAYOUT_STD140(binding=RENDER_UTILS_BUFFER_BLOOM_PARAMS) uniform parametersBuffer {
|
||||
UNIFORM_BUFFER(RENDER_UTILS_BUFFER_BLOOM_PARAMS, parametersBuffer) {
|
||||
Parameters parameters;
|
||||
};
|
||||
|
||||
layout(location=0) in vec2 varTexCoord0;
|
||||
layout(location=0) out vec4 outFragColor;
|
||||
INPUT(0, vec2, varTexCoord0);
|
||||
OUTPUT(0, vec4, outFragColor);
|
||||
|
||||
void main(void) {
|
||||
vec4 blur0 = texture(blurMap0, varTexCoord0);
|
||||
|
|
|
@ -12,13 +12,13 @@
|
|||
<@include BloomThreshold.shared.slh@>
|
||||
<@include render-utils/ShaderConstants.h@>
|
||||
|
||||
LAYOUT(binding=RENDER_UTILS_TEXTURE_BLOOM_COLOR) uniform sampler2D colorMap;
|
||||
LAYOUT_STD140(binding=RENDER_UTILS_BUFFER_BLOOM_PARAMS) uniform parametersBuffer {
|
||||
TEXTURE(RENDER_UTILS_TEXTURE_BLOOM_COLOR, sampler2D, colorMap);
|
||||
UNIFORM_BUFFER(RENDER_UTILS_BUFFER_BLOOM_PARAMS, parametersBuffer) {
|
||||
Parameters parameters;
|
||||
};
|
||||
|
||||
layout(location=0) in vec2 varTexCoord0;
|
||||
layout(location=0) out vec4 outFragColor;
|
||||
INPUT(0, vec2, varTexCoord0);
|
||||
OUTPUT(0, vec4, outFragColor);
|
||||
|
||||
void main(void) {
|
||||
vec2 startUv = varTexCoord0;
|
||||
|
|
|
@ -17,23 +17,23 @@
|
|||
// See DeferredShader_MapSlot in DeferredLightingEffect.cpp for constants
|
||||
|
||||
// the albedo texture
|
||||
LAYOUT(binding=RENDER_UTILS_TEXTURE_DEFERRRED_COLOR) uniform sampler2D albedoMap;
|
||||
TEXTURE(RENDER_UTILS_TEXTURE_DEFERRRED_COLOR, sampler2D, albedoMap);
|
||||
|
||||
// the normal texture
|
||||
LAYOUT(binding=RENDER_UTILS_TEXTURE_DEFERRRED_NORMAL) uniform sampler2D normalMap;
|
||||
TEXTURE(RENDER_UTILS_TEXTURE_DEFERRRED_NORMAL, sampler2D, normalMap);
|
||||
|
||||
// the specular texture
|
||||
LAYOUT(binding=RENDER_UTILS_TEXTURE_DEFERRRED_SPECULAR) uniform sampler2D specularMap;
|
||||
TEXTURE(RENDER_UTILS_TEXTURE_DEFERRRED_SPECULAR, sampler2D, specularMap);
|
||||
|
||||
// the depth texture
|
||||
LAYOUT(binding=RENDER_UTILS_TEXTURE_DEFERRRED_DEPTH) uniform sampler2D depthMap;
|
||||
LAYOUT(binding=RENDER_UTILS_TEXTURE_DEFERRRED_LINEAR_Z_EYE) uniform sampler2D linearZeyeMap;
|
||||
TEXTURE(RENDER_UTILS_TEXTURE_DEFERRRED_DEPTH, sampler2D, depthMap);
|
||||
TEXTURE(RENDER_UTILS_TEXTURE_DEFERRRED_LINEAR_Z_EYE, sampler2D, linearZeyeMap);
|
||||
|
||||
// the obscurance texture
|
||||
LAYOUT(binding=RENDER_UTILS_TEXTURE_DEFERRED_OBSCURANCE) uniform sampler2D obscuranceMap;
|
||||
TEXTURE(RENDER_UTILS_TEXTURE_DEFERRED_OBSCURANCE, sampler2D, obscuranceMap);
|
||||
|
||||
// the lighting texture
|
||||
LAYOUT(binding=RENDER_UTILS_TEXTURE_DEFERRED_LIGHTING) uniform sampler2D lightingMap;
|
||||
TEXTURE(RENDER_UTILS_TEXTURE_DEFERRED_LIGHTING, sampler2D, lightingMap);
|
||||
|
||||
|
||||
struct DeferredFragment {
|
||||
|
@ -160,14 +160,14 @@ DeferredFragment unpackDeferredFragment(DeferredFrameTransform deferredTransform
|
|||
<@func declareDeferredCurvature()@>
|
||||
|
||||
// the curvature texture
|
||||
LAYOUT(binding=RENDER_UTILS_TEXTURE_DEFERRED_CURVATURE) uniform sampler2D curvatureMap;
|
||||
TEXTURE(RENDER_UTILS_TEXTURE_DEFERRED_CURVATURE, sampler2D, curvatureMap);
|
||||
|
||||
vec4 fetchCurvature(vec2 texcoord) {
|
||||
return texture(curvatureMap, texcoord);
|
||||
}
|
||||
|
||||
// the curvature texture
|
||||
LAYOUT(binding=RENDER_UTILS_TEXTURE_DEFERRED_DIFFUSED_CURVATURE) uniform sampler2D diffusedCurvatureMap;
|
||||
TEXTURE(RENDER_UTILS_TEXTURE_DEFERRED_DIFFUSED_CURVATURE, sampler2D, diffusedCurvatureMap);
|
||||
|
||||
vec4 fetchDiffusedCurvature(vec2 texcoord) {
|
||||
return texture(diffusedCurvatureMap, texcoord);
|
||||
|
|
|
@ -14,10 +14,10 @@
|
|||
<@include DeferredBuffer.slh@>
|
||||
|
||||
|
||||
layout(location=0) out vec4 _fragColor0; // albedo / metallic
|
||||
layout(location=1) out vec4 _fragColor1; // Normal
|
||||
layout(location=2) out vec4 _fragColor2; // scattering / emissive / occlusion
|
||||
layout(location=3) out vec4 _fragColor3; // emissive
|
||||
OUTPUT(0, vec4, _fragColor0); // albedo / metallic
|
||||
OUTPUT(1, vec4, _fragColor1); // Normal
|
||||
OUTPUT(2, vec4, _fragColor2); // scattering / emissive / occlusion
|
||||
OUTPUT(3, vec4, _fragColor3); // emissive
|
||||
|
||||
// the alpha threshold
|
||||
const float alphaThreshold = 0.5;
|
||||
|
|
|
@ -24,7 +24,7 @@ struct CameraCorrection {
|
|||
mat4 _prevViewInverse;
|
||||
};
|
||||
|
||||
LAYOUT(binding=GPU_BUFFER_CAMERA_CORRECTION) uniform cameraCorrectionBuffer {
|
||||
UNIFORM_BUFFER(GPU_BUFFER_CAMERA_CORRECTION, cameraCorrectionBuffer) {
|
||||
CameraCorrection cameraCorrection;
|
||||
};
|
||||
|
||||
|
@ -42,7 +42,7 @@ struct DeferredFrameTransform {
|
|||
mat4 _invProjectionUnJittered[2];
|
||||
};
|
||||
|
||||
LAYOUT(binding=RENDER_UTILS_BUFFER_DEFERRED_FRAME_TRANSFORM) uniform deferredFrameTransformBuffer {
|
||||
UNIFORM_BUFFER(RENDER_UTILS_BUFFER_DEFERRED_FRAME_TRANSFORM, deferredFrameTransformBuffer) {
|
||||
DeferredFrameTransform frameTransform;
|
||||
};
|
||||
|
||||
|
|
|
@ -19,12 +19,12 @@
|
|||
<@include FadeObjectParams.shared.slh@>
|
||||
|
||||
// See ShapePipeline::Slot::BUFFER in ShapePipeline.h
|
||||
LAYOUT_STD140(binding=RENDER_UTILS_BUFFER_FADE_PARAMS) uniform fadeParametersBuffer {
|
||||
UNIFORM_BUFFER(RENDER_UTILS_BUFFER_FADE_PARAMS, fadeParametersBuffer) {
|
||||
FadeParameters fadeParameters[CATEGORY_COUNT];
|
||||
};
|
||||
|
||||
// See ShapePipeline::Slot::MAP in ShapePipeline.h
|
||||
LAYOUT(binding=RENDER_UTILS_TEXTURE_FADE_MASK) uniform sampler2D fadeMaskMap;
|
||||
TEXTURE(RENDER_UTILS_TEXTURE_FADE_MASK, sampler2D, fadeMaskMap);
|
||||
|
||||
vec3 getNoiseInverseSize(int category) {
|
||||
return fadeParameters[category]._noiseInvSizeAndLevel.xyz;
|
||||
|
@ -116,7 +116,7 @@ void applyFade(FadeObjectParams params, vec3 position, out vec3 emissive) {
|
|||
|
||||
<@func declareFadeFragmentUniform()@>
|
||||
|
||||
LAYOUT_STD140(binding=RENDER_UTILS_BUFFER_FADE_OBJECT_PARAMS) uniform fadeObjectParametersBuffer {
|
||||
UNIFORM_BUFFER(RENDER_UTILS_BUFFER_FADE_OBJECT_PARAMS, fadeObjectParametersBuffer) {
|
||||
FadeObjectParams fadeObjectParams;
|
||||
};
|
||||
|
||||
|
@ -128,9 +128,9 @@ LAYOUT_STD140(binding=RENDER_UTILS_BUFFER_FADE_OBJECT_PARAMS) uniform fadeObject
|
|||
|
||||
<@func declareFadeFragmentVertexInput()@>
|
||||
|
||||
layout(location=RENDER_UTILS_ATTR_FADE1) in vec4 _fadeData1;
|
||||
layout(location=RENDER_UTILS_ATTR_FADE2) in vec4 _fadeData2;
|
||||
layout(location=RENDER_UTILS_ATTR_FADE3) in vec4 _fadeData3;
|
||||
INPUT(RENDER_UTILS_ATTR_FADE1, vec4, _fadeData1);
|
||||
INPUT(RENDER_UTILS_ATTR_FADE2, vec4, _fadeData2);
|
||||
INPUT(RENDER_UTILS_ATTR_FADE3, vec4, _fadeData3);
|
||||
|
||||
<@endfunc@>
|
||||
|
||||
|
@ -153,9 +153,9 @@ layout(location=RENDER_UTILS_ATTR_FADE3) in vec4 _fadeData3;
|
|||
<@endfunc@>
|
||||
|
||||
<@func declareFadeVertexInstanced()@>
|
||||
layout(location=RENDER_UTILS_ATTR_FADE1) out vec4 _fadeData1;
|
||||
layout(location=RENDER_UTILS_ATTR_FADE2) out vec4 _fadeData2;
|
||||
layout(location=RENDER_UTILS_ATTR_FADE3) out vec4 _fadeData3;
|
||||
OUTPUT(RENDER_UTILS_ATTR_FADE1, vec4, _fadeData1);
|
||||
OUTPUT(RENDER_UTILS_ATTR_FADE2, vec4, _fadeData2);
|
||||
OUTPUT(RENDER_UTILS_ATTR_FADE3, vec4, _fadeData3);
|
||||
<@endfunc@>
|
||||
|
||||
<@func passThroughFadeObjectParams()@>
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
<@include graphics/Haze.slh@>
|
||||
|
||||
<@if not HIFI_USE_BACKGROUND@>
|
||||
LAYOUT(binding=RENDER_UTILS_TEXTURE_HAZE_LINEAR_DEPTH) uniform sampler2D linearDepthMap;
|
||||
TEXTURE(RENDER_UTILS_TEXTURE_HAZE_LINEAR_DEPTH, sampler2D, linearDepthMap);
|
||||
<@endif@>
|
||||
|
||||
vec4 unpackPositionFromZeye(vec2 texcoord) {
|
||||
|
@ -42,8 +42,8 @@ vec4 unpackPositionFromZeye(vec2 texcoord) {
|
|||
return vec4(evalEyePositionFromZeye(side, Zeye, texcoord), 1.0);
|
||||
}
|
||||
|
||||
layout(location=0) in vec2 varTexCoord0;
|
||||
layout(location=0) out vec4 outFragColor;
|
||||
INPUT(0, vec2, varTexCoord0);
|
||||
OUTPUT(0, vec4, outFragColor);
|
||||
|
||||
void main(void) {
|
||||
vec4 fragPositionES = unpackPositionFromZeye(varTexCoord0);
|
||||
|
|
|
@ -15,15 +15,15 @@
|
|||
|
||||
<@include Highlight_shared.slh@>
|
||||
|
||||
LAYOUT_STD140(binding=RENDER_UTILS_BUFFER_HIGHLIGHT_PARAMS) uniform highlightParamsBuffer {
|
||||
UNIFORM_BUFFER(RENDER_UTILS_BUFFER_HIGHLIGHT_PARAMS, highlightParamsBuffer) {
|
||||
HighlightParameters params;
|
||||
};
|
||||
|
||||
LAYOUT(binding=RENDER_UTILS_TEXTURE_HIGHLIGHT_SCENE_DEPTH) uniform sampler2D sceneDepthMap;
|
||||
LAYOUT(binding=RENDER_UTILS_TEXTURE_HIGHLIGHT_DEPTH) uniform sampler2D highlightedDepthMap;
|
||||
TEXTURE(RENDER_UTILS_TEXTURE_HIGHLIGHT_SCENE_DEPTH, sampler2D, sceneDepthMap);
|
||||
TEXTURE(RENDER_UTILS_TEXTURE_HIGHLIGHT_DEPTH, sampler2D, highlightedDepthMap);
|
||||
|
||||
layout(location=0) in vec2 varTexCoord0;
|
||||
layout(location=0) out vec4 outFragColor;
|
||||
INPUT(0, vec2, varTexCoord0);
|
||||
OUTPUT(0, vec4, outFragColor);
|
||||
|
||||
const float FAR_Z = 1.0;
|
||||
const float OPACITY_EPSILON = 5e-3;
|
||||
|
|
|
@ -23,7 +23,7 @@ struct ItemBound {
|
|||
};
|
||||
|
||||
#if !defined(GPU_SSBO_TRANSFORM_OBJECT)
|
||||
LAYOUT(binding=GPU_RESOURCE_BUFFER_SLOT0_TEXTURE) uniform samplerBuffer ssbo0Buffer;
|
||||
RESOURCE_BUFFER(GPU_RESOURCE_BUFFER_SLOT0_TEXTURE, ssbo0Buffer);
|
||||
ItemBound getItemBound(int i) {
|
||||
int offset = 2 * i;
|
||||
ItemBound bound;
|
||||
|
@ -32,7 +32,7 @@ ItemBound getItemBound(int i) {
|
|||
return bound;
|
||||
}
|
||||
#else
|
||||
LAYOUT_STD140(binding=GPU_RESOURCE_BUFFER_SLOT0_STORAGE) buffer ssbo0Buffer {
|
||||
RESOURCE_BUFFER(GPU_RESOURCE_BUFFER_SLOT0_STORAGE, ssbo0Buffer) {
|
||||
ItemBound bounds[];
|
||||
};
|
||||
ItemBound getItemBound(int i) {
|
||||
|
@ -45,7 +45,7 @@ struct HighlightParameters {
|
|||
vec2 outlineWidth;
|
||||
};
|
||||
|
||||
LAYOUT_STD140(binding=0) uniform parametersBuffer {
|
||||
UNIFORM_BUFFER(0, parametersBuffer) {
|
||||
HighlightParameters _parameters;
|
||||
};
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
<@include render-utils/ShaderConstants.h@>
|
||||
<@func declareSkyboxMap()@>
|
||||
// declareSkyboxMap
|
||||
LAYOUT(binding=RENDER_UTILS_TEXTURE_SKYBOX) uniform samplerCube skyboxMap;
|
||||
TEXTURE(RENDER_UTILS_TEXTURE_SKYBOX, samplerCube, skyboxMap);
|
||||
|
||||
vec4 evalSkyboxLight(vec3 direction, float lod) {
|
||||
// textureQueryLevels is not available until #430, so we require explicit lod
|
||||
|
|
|
@ -24,7 +24,7 @@ struct FrustumGrid {
|
|||
mat4 eyeToWorldMat;
|
||||
};
|
||||
|
||||
LAYOUT_STD140(binding=RENDER_UTILS_BUFFER_LIGHT_CLUSTER_FRUSTUM_GRID) uniform frustumGridBuffer {
|
||||
UNIFORM_BUFFER(RENDER_UTILS_BUFFER_LIGHT_CLUSTER_FRUSTUM_GRID, frustumGridBuffer) {
|
||||
FrustumGrid frustumGrid;
|
||||
};
|
||||
|
||||
|
@ -60,11 +60,11 @@ float projection_getFar(mat4 projection) {
|
|||
#define GRID_FETCH_BUFFER(i) i!>
|
||||
<@endif@>
|
||||
|
||||
LAYOUT_STD140(binding=RENDER_UTILS_BUFFER_LIGHT_CLUSTER_GRID) uniform clusterGridBuffer {
|
||||
UNIFORM_BUFFER(RENDER_UTILS_BUFFER_LIGHT_CLUSTER_GRID, clusterGridBuffer) {
|
||||
GRID_INDEX_TYPE _clusterGridTable[GRID_NUM_ELEMENTS];
|
||||
};
|
||||
|
||||
LAYOUT_STD140(binding=RENDER_UTILS_BUFFER_LIGHT_CLUSTER_CONTENT) uniform clusterContentBuffer {
|
||||
UNIFORM_BUFFER(RENDER_UTILS_BUFFER_LIGHT_CLUSTER_CONTENT, clusterContentBuffer) {
|
||||
GRID_INDEX_TYPE _clusterGridContent[GRID_NUM_ELEMENTS];
|
||||
};
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ struct LightingModel {
|
|||
};
|
||||
|
||||
// See DeferredShader_BufferSlot in DeferredLightingEffect.cpp
|
||||
LAYOUT(binding=RENDER_UTILS_BUFFER_LIGHT_MODEL) uniform lightingModelBuffer{
|
||||
UNIFORM_BUFFER(RENDER_UTILS_BUFFER_LIGHT_MODEL, lightingModelBuffer) {
|
||||
LightingModel lightingModel;
|
||||
};
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
|
||||
<@func declareBeckmannSpecular()@>
|
||||
|
||||
LAYOUT(binding=RENDER_UTILS_TEXTURE_SSSC_SPECULAR_BECKMANN) uniform sampler2D scatteringSpecularBeckmann;
|
||||
TEXTURE(RENDER_UTILS_TEXTURE_SSSC_SPECULAR_BECKMANN, sampler2D, scatteringSpecularBeckmann);
|
||||
|
||||
float fetchSpecularBeckmann(float ndoth, float roughness) {
|
||||
return pow(2.0 * texture(scatteringSpecularBeckmann, vec2(ndoth, roughness)).r, 10.0);
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
#define SHADOW_SCREEN_SPACE_DITHER 1
|
||||
|
||||
// the shadow texture
|
||||
LAYOUT(binding=RENDER_UTILS_TEXTURE_SHADOW) uniform sampler2DArrayShadow shadowMaps;
|
||||
TEXTURE(RENDER_UTILS_TEXTURE_SHADOW, sampler2DArrayShadow, shadowMaps);
|
||||
|
||||
// Sample the shadowMap with PCF (built-in)
|
||||
float fetchShadow(int cascadeIndex, vec3 shadowTexcoord) {
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
|
||||
<@include Shadows_shared.slh@>
|
||||
|
||||
LAYOUT_STD140(binding=RENDER_UTILS_BUFFER_SHADOW_PARAMS) uniform shadowTransformBuffer {
|
||||
UNIFORM_BUFFER(RENDER_UTILS_BUFFER_SHADOW_PARAMS, shadowTransformBuffer) {
|
||||
ShadowParameters shadow;
|
||||
};
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
const int MAX_CLUSTERS = 128;
|
||||
const int INDICES_PER_VERTEX = 4;
|
||||
|
||||
LAYOUT_STD140(binding=GRAPHICS_BUFFER_SKINNING) uniform skinClusterBuffer {
|
||||
UNIFORM_BUFFER(GRAPHICS_BUFFER_SKINNING, skinClusterBuffer) {
|
||||
mat4 clusterMatrices[MAX_CLUSTERS];
|
||||
};
|
||||
|
||||
|
|
|
@ -56,7 +56,7 @@ vec3 generateProfile(vec2 uv) {
|
|||
|
||||
<@func declareSubsurfaceScatteringProfileMap()@>
|
||||
|
||||
LAYOUT(binding=RENDER_UTILS_TEXTURE_SSSC_PROFILE) uniform sampler2D scatteringProfile;
|
||||
TEXTURE(RENDER_UTILS_TEXTURE_SSSC_PROFILE, sampler2D, scatteringProfile);
|
||||
|
||||
vec3 scatter(float r) {
|
||||
return texture(scatteringProfile, vec2(r * 0.5, 0.5)).rgb;
|
||||
|
@ -102,7 +102,7 @@ vec3 integrate(float cosTheta, float skinRadius) {
|
|||
|
||||
<@func declareSubsurfaceScatteringResource()@>
|
||||
|
||||
LAYOUT(binding=RENDER_UTILS_TEXTURE_SSSC_LUT) uniform sampler2D scatteringLUT;
|
||||
TEXTURE(RENDER_UTILS_TEXTURE_SSSC_LUT, sampler2D, scatteringLUT);
|
||||
|
||||
vec3 fetchBRDF(float LdotN, float curvature) {
|
||||
return texture(scatteringLUT, vec2( clamp(LdotN * 0.5 + 0.5, 0.0, 1.0), clamp(2.0 * curvature, 0.0, 1.0))).xyz;
|
||||
|
@ -122,7 +122,7 @@ struct ScatteringParameters {
|
|||
vec4 debugFlags;
|
||||
};
|
||||
|
||||
LAYOUT(binding=RENDER_UTILS_BUFFER_SSSC_PARAMS) uniform subsurfaceScatteringParametersBuffer {
|
||||
UNIFORM_BUFFER(RENDER_UTILS_BUFFER_SSSC_PARAMS, subsurfaceScatteringParametersBuffer) {
|
||||
ScatteringParameters parameters;
|
||||
};
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@ struct WorkloadProxy {
|
|||
};
|
||||
|
||||
#if !defined(GPU_SSBO_TRANSFORM_OBJECT)
|
||||
LAYOUT(binding=GPU_RESOURCE_BUFFER_SLOT0_TEXTURE) uniform samplerBuffer workloadProxiesBuffer;
|
||||
RESOURCE_BUFFER(GPU_RESOURCE_BUFFER_SLOT0_TEXTURE, workloadProxiesBuffer)
|
||||
WorkloadProxy getWorkloadProxy(int i) {
|
||||
int offset = 2 * i;
|
||||
WorkloadProxy proxy;
|
||||
|
@ -35,7 +35,7 @@ WorkloadProxy getWorkloadProxy(int i) {
|
|||
return proxy;
|
||||
}
|
||||
#else
|
||||
LAYOUT_STD140(binding=GPU_RESOURCE_BUFFER_SLOT0_STORAGE) buffer workloadProxiesBuffer {
|
||||
RESOURCE_BUFFER(GPU_RESOURCE_BUFFER_SLOT0_STORAGE, workloadProxiesBuffer) {
|
||||
WorkloadProxy _proxies[];
|
||||
};
|
||||
WorkloadProxy getWorkloadProxy(int i) {
|
||||
|
@ -58,7 +58,7 @@ struct WorkloadView {
|
|||
};
|
||||
|
||||
#if !defined(GPU_SSBO_TRANSFORM_OBJECT)
|
||||
LAYOUT(binding=GPU_RESOURCE_BUFFER_SLOT1_TEXTURE) uniform samplerBuffer workloadViewsBuffer;
|
||||
RESOURCE_BUFFER(GPU_RESOURCE_BUFFER_SLOT1_TEXTURE, workloadViewsBuffer);
|
||||
WorkloadView getWorkloadView(int i) {
|
||||
int offset = 8 * i;
|
||||
WorkloadView view;
|
||||
|
@ -73,7 +73,7 @@ WorkloadView getWorkloadView(int i) {
|
|||
return view;
|
||||
}
|
||||
#else
|
||||
LAYOUT_STD140(binding=GPU_RESOURCE_BUFFER_SLOT1_STORAGE) buffer workloadViewsBuffer {
|
||||
RESOURCE_BUFFER(GPU_RESOURCE_BUFFER_SLOT1_STORAGE, workloadViewsBuffer) {
|
||||
WorkloadView _views[];
|
||||
};
|
||||
WorkloadView getWorkloadView(int i) {
|
||||
|
|
|
@ -12,9 +12,9 @@
|
|||
|
||||
<@include render-utils/ShaderConstants.h@>
|
||||
|
||||
layout(location=RENDER_UTILS_ATTR_COLOR) in vec4 _color;
|
||||
INPUT(RENDER_UTILS_ATTR_COLOR, vec4, _color);
|
||||
|
||||
layout(location=0) out vec4 _fragColor;
|
||||
OUTPUT(0, vec4, _fragColor);
|
||||
|
||||
void main(void) {
|
||||
_fragColor = _color;
|
||||
|
|
|
@ -9,8 +9,8 @@
|
|||
//
|
||||
|
||||
<@include gpu/ShaderConstants.h@>
|
||||
layout(location=GPU_ATTR_POSITION) in vec4 inPosition;
|
||||
layout(location=GPU_ATTR_COLOR) in vec4 inColor;
|
||||
INPUT(GPU_ATTR_POSITION, vec4, inPosition);
|
||||
INPUT(GPU_ATTR_COLOR, vec4, inColor);
|
||||
|
||||
<@include gpu/Color.slh@>
|
||||
<@include gpu/Transform.slh@>
|
||||
|
@ -18,7 +18,7 @@ layout(location=GPU_ATTR_COLOR) in vec4 inColor;
|
|||
|
||||
<@include render-utils/ShaderConstants.h@>
|
||||
|
||||
layout(location=RENDER_UTILS_ATTR_COLOR) out vec4 _color;
|
||||
OUTPUT(RENDER_UTILS_ATTR_COLOR, vec4, _color);
|
||||
|
||||
void main(void) {
|
||||
// pass along the color
|
||||
|
|
|
@ -16,8 +16,8 @@
|
|||
<@include gpu/Color.slh@>
|
||||
<$declareColorWheel()$>
|
||||
|
||||
LAYOUT(binding=RENDER_UTILS_DEBUG_TEXTURE0) uniform sampler2D debugTexture0;
|
||||
LAYOUT(binding=RENDER_UTILS_TEXTURE_SHADOW) uniform sampler2DArrayShadow shadowMaps;
|
||||
TEXTURE(RENDER_UTILS_DEBUG_TEXTURE0, sampler2D, debugTexture0);
|
||||
TEXTURE(RENDER_UTILS_TEXTURE_SHADOW, sampler2DArrayShadow, shadowMaps);
|
||||
|
||||
<@include ShadowCore.slh@>
|
||||
|
||||
|
@ -25,7 +25,7 @@ LAYOUT(binding=RENDER_UTILS_TEXTURE_SHADOW) uniform sampler2DArrayShadow shadowM
|
|||
|
||||
<@include debug_deferred_buffer_shared.slh@>
|
||||
|
||||
LAYOUT_STD140(binding=RENDER_UTILS_BUFFER_DEBUG_DEFERRED_PARAMS) uniform parametersBuffer {
|
||||
UNIFORM_BUFFER(RENDER_UTILS_BUFFER_DEBUG_DEFERRED_PARAMS, parametersBuffer) {
|
||||
DebugParameters parameters;
|
||||
};
|
||||
|
||||
|
@ -33,8 +33,8 @@ float curvatureAO(float k) {
|
|||
return 1.0f - (0.0022f * k * k) + (0.0776f * k) + 0.7369f;
|
||||
}
|
||||
|
||||
layout(location=0) in vec2 uv;
|
||||
layout(location=0) out vec4 outFragColor;
|
||||
INPUT(0, vec2, uv);
|
||||
OUTPUT(0, vec4, outFragColor);
|
||||
|
||||
//SOURCE_PLACEHOLDER_BEGIN
|
||||
vec4 getFragmentColor() {
|
||||
|
|
|
@ -13,10 +13,10 @@
|
|||
//
|
||||
|
||||
<@include gpu/ShaderConstants.h@>
|
||||
layout(location=GPU_ATTR_POSITION) in vec4 inPosition;
|
||||
INPUT(GPU_ATTR_POSITION, vec4, inPosition);
|
||||
|
||||
|
||||
layout(location=0) out vec2 uv;
|
||||
OUTPUT(0, vec2, uv);
|
||||
|
||||
void main(void) {
|
||||
uv = (inPosition.xy + 1.0) * 0.5;
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
<@include render-utils/ShaderConstants.h@>
|
||||
|
||||
layout(location=RENDER_UTILS_ATTR_TEXCOORD01) out vec4 _texCoord01;
|
||||
OUTPUT(RENDER_UTILS_ATTR_TEXCOORD01, vec4, _texCoord01);
|
||||
|
||||
void main(void) {
|
||||
const float depth = 1.0;
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
<@include gpu/Transform.slh@>
|
||||
<@include gpu/ShaderConstants.h@>
|
||||
layout(location=GPU_ATTR_POSITION) in vec4 inPosition;
|
||||
INPUT(GPU_ATTR_POSITION, vec4, inPosition);
|
||||
|
||||
<@include render-utils/ShaderConstants.h@>
|
||||
|
||||
|
@ -23,7 +23,7 @@ layout(location=GPU_ATTR_POSITION) in vec4 inPosition;
|
|||
// FIXME make into a uniform buffer or push constant if this shader ever comes into use
|
||||
vec4 sphereParam = vec4(0.0);
|
||||
|
||||
layout(location=RENDER_UTILS_ATTR_TEXCOORD01) out vec4 _texCoord01;
|
||||
OUTPUT(RENDER_UTILS_ATTR_TEXCOORD01, vec4, _texCoord01);
|
||||
|
||||
void main(void) {
|
||||
if (sphereParam.w != 0.0) {
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
|
||||
<@include gpu/Transform.slh@>
|
||||
<@include gpu/ShaderConstants.h@>
|
||||
layout(location=GPU_ATTR_POSITION) in vec4 inPosition;
|
||||
INPUT(GPU_ATTR_POSITION, vec4, inPosition);
|
||||
|
||||
<@include graphics/Light.slh@>
|
||||
<@include render-utils/ShaderConstants.h@>
|
||||
|
@ -24,11 +24,11 @@ layout(location=GPU_ATTR_POSITION) in vec4 inPosition;
|
|||
|
||||
<$declareLightBuffer(256)$>
|
||||
|
||||
LAYOUT(binding=RENDER_UTILS_BUFFER_LIGHT_INDEX) uniform lightIndexBuffer {
|
||||
UNIFORM_BUFFER(RENDER_UTILS_BUFFER_LIGHT_INDEX, lightIndexBuffer) {
|
||||
int lightIndex[256];
|
||||
};
|
||||
|
||||
layout(location=RENDER_UTILS_ATTR_TEXCOORD01) out vec4 _texCoord0;
|
||||
OUTPUT(RENDER_UTILS_ATTR_TEXCOORD01, vec4, _texCoord0);
|
||||
|
||||
void main(void) {
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
//
|
||||
|
||||
<@include gpu/ShaderConstants.h@>
|
||||
layout(location=GPU_ATTR_POSITION) in vec4 inPosition;
|
||||
INPUT(GPU_ATTR_POSITION, vec4, inPosition);
|
||||
|
||||
<@include gpu/Transform.slh@>
|
||||
<@include graphics/Light.slh@>
|
||||
|
@ -23,10 +23,10 @@ layout(location=GPU_ATTR_POSITION) in vec4 inPosition;
|
|||
|
||||
<$declareLightBuffer(256)$>
|
||||
|
||||
LAYOUT(binding=RENDER_UTILS_BUFFER_LIGHT_INDEX) uniform lightIndexBuffer {
|
||||
UNIFORM_BUFFER(RENDER_UTILS_BUFFER_LIGHT_INDEX, lightIndexBuffer) {
|
||||
int lightIndex[256];
|
||||
};
|
||||
layout(location=RENDER_UTILS_ATTR_TEXCOORD01) out vec4 _texCoord0;
|
||||
OUTPUT(RENDER_UTILS_ATTR_TEXCOORD01, vec4, _texCoord0);
|
||||
|
||||
void main(void) {
|
||||
vec4 coneVertex = inPosition;
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
// Distributed under the Apache License, Version 2.0.
|
||||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||
//
|
||||
|
||||
<@include DeferredBufferRead.slh@>
|
||||
<@include render-utils/ShaderConstants.h@>
|
||||
|
||||
|
@ -23,11 +24,10 @@
|
|||
<@include Shadow.slh@>
|
||||
<@endif@>
|
||||
|
||||
layout(location=RENDER_UTILS_ATTR_TEXCOORD01) in vec4 _texCoord01;
|
||||
INPUT(RENDER_UTILS_ATTR_TEXCOORD01, vec4, _texCoord01);
|
||||
#define _texCoord0 _texCoord01.xy
|
||||
#define _texCoord1 _texCoord01.zw
|
||||
|
||||
layout(location=0) out vec4 _fragColor;
|
||||
OUTPUT(0, vec4, _fragColor);
|
||||
|
||||
void main(void) {
|
||||
DeferredFrameTransform deferredTransform = getDeferredFrameTransform();
|
||||
|
@ -43,6 +43,7 @@ void main(void) {
|
|||
float shadowAttenuation = 1.0;
|
||||
<@endif@>
|
||||
|
||||
// Light mapped or not ?
|
||||
if (frag.mode == FRAG_MODE_UNLIT || frag.mode == FRAG_MODE_LIGHTMAPPED) {
|
||||
discard;
|
||||
} else {
|
||||
|
|
|
@ -13,9 +13,9 @@
|
|||
<@include DeferredBufferWrite.slh@>
|
||||
<@include gpu/Paint.slh@>
|
||||
|
||||
layout(location=0) in vec4 varColor;
|
||||
layout(location=1) in vec3 varTexcoord;
|
||||
layout(location=2) in vec3 varEyePos;
|
||||
INPUT(0, vec4, varColor);
|
||||
INPUT(1, vec3, varTexcoord);
|
||||
INPUT(2, vec3, varEyePos);
|
||||
|
||||
void main(void) {
|
||||
if (varColor.w > 0.0) {
|
||||
|
|
|
@ -19,9 +19,9 @@
|
|||
<$declareWorkloadProxies()$>
|
||||
|
||||
|
||||
layout(location=0) out vec4 varColor;
|
||||
layout(location=1) out vec3 varTexcoord;
|
||||
layout(location=2) out vec3 varEyePos;
|
||||
OUTPUT(0, vec4, varColor);
|
||||
OUTPUT(1, vec3, varTexcoord);
|
||||
OUTPUT(2, vec3, varEyePos);
|
||||
|
||||
void main(void) {
|
||||
const vec4 UNIT_SPRITE[3] = vec4[3](
|
||||
|
|
|
@ -14,9 +14,9 @@
|
|||
<@include DeferredBufferWrite.slh@>
|
||||
<@include gpu/Paint.slh@>
|
||||
|
||||
layout(location=0) in vec4 varColor;
|
||||
layout(location=1) in vec3 varTexcoord;
|
||||
layout(location=2) in vec3 varEyePos;
|
||||
INPUT(0, vec4, varColor);
|
||||
INPUT(1, vec3, varTexcoord);
|
||||
INPUT(2, vec3, varEyePos);
|
||||
|
||||
void main(void) {
|
||||
if (varColor.w > 0.0) {
|
||||
|
|
|
@ -18,9 +18,9 @@
|
|||
<@include WorkloadResource.slh@>
|
||||
<$declareWorkloadViews()$>
|
||||
|
||||
layout(location=0) out vec4 varColor;
|
||||
layout(location=1) out vec3 varTexcoord;
|
||||
layout(location=2) out vec3 varEyePos;
|
||||
OUTPUT(0, vec4, varColor);
|
||||
OUTPUT(1, vec3, varTexcoord);
|
||||
OUTPUT(2, vec3, varEyePos);
|
||||
|
||||
const int NUM_VERTICES_PER_SEGMENT = 2;
|
||||
const int NUM_SEGMENT_PER_VIEW_REGION = 65;
|
||||
|
@ -32,7 +32,7 @@ struct DrawMesh {
|
|||
vec4 verts[NUM_SEGMENT_PER_VIEW_REGION];
|
||||
};
|
||||
|
||||
LAYOUT_STD140(binding=0) uniform DrawMeshBuffer {
|
||||
UNIFORM_BUFFER(0, DrawMeshBuffer) {
|
||||
DrawMesh _drawMeshBuffer;
|
||||
};
|
||||
|
||||
|
|
|
@ -22,15 +22,15 @@ precision mediump float;
|
|||
precision mediump int;
|
||||
#endif
|
||||
|
||||
LAYOUT(binding=0) uniform sampler2D colorTexture;
|
||||
TEXTURE(0, sampler2D, colorTexture);
|
||||
//uniform sampler2D historyTexture;
|
||||
|
||||
// FIXME make into a uniform buffer or push constant if this shader ever comes into use
|
||||
vec2 texcoordOffset = vec2(0.0);
|
||||
|
||||
layout(location=0) in vec2 varTexCoord0;
|
||||
layout(location=0) out vec4 outFragColor;
|
||||
//layout(location=0) out vec4 outFragHistory;
|
||||
INPUT(0, vec2, varTexCoord0);
|
||||
OUTPUT(0, vec4, outFragColor);
|
||||
//OUTPUT(0, vec4, outFragHistory);
|
||||
|
||||
void main() {
|
||||
outFragColor = vec4(texture(colorTexture, varTexCoord0).xyz, 1.0/8.0);
|
||||
|
|
|
@ -13,15 +13,15 @@
|
|||
//
|
||||
|
||||
<@include gpu/ShaderConstants.h@>
|
||||
layout(location=GPU_ATTR_POSITION) in vec4 inPosition;
|
||||
layout(location=GPU_ATTR_TEXCOORD0) in vec4 inTexCoord0;
|
||||
INPUT(GPU_ATTR_POSITION, vec4, inPosition);
|
||||
INPUT(GPU_ATTR_TEXCOORD0, vec4, inTexCoord0);
|
||||
|
||||
|
||||
<@include gpu/Transform.slh@>
|
||||
|
||||
<$declareStandardTransform()$>
|
||||
|
||||
layout(location=0) out vec2 varTexcoord;
|
||||
OUTPUT(0, vec2, varTexcoord);
|
||||
|
||||
void main(void) {
|
||||
varTexcoord = inTexCoord0.xy;
|
||||
|
|
|
@ -14,16 +14,16 @@
|
|||
|
||||
<@include gpu/ShaderConstants.h@>
|
||||
|
||||
layout(location=0) in vec2 varTexCoord0;
|
||||
layout(location=0) out vec4 outFragColor;
|
||||
INPUT(0, vec2, varTexCoord0);
|
||||
OUTPUT(0, vec4, outFragColor);
|
||||
|
||||
LAYOUT(binding=0) uniform sampler2D colorTexture;
|
||||
TEXTURE(0, sampler2D, colorTexture);
|
||||
|
||||
struct FxaaBlendParams {
|
||||
vec4 sharpenIntensity;
|
||||
};
|
||||
|
||||
LAYOUT(binding=0) uniform fxaaBlendParamsBuffer {
|
||||
UNIFORM_BUFFER(0, fxaaBlendParamsBuffer) {
|
||||
FxaaBlendParams params;
|
||||
};
|
||||
|
||||
|
|
|
@ -25,12 +25,16 @@ struct Grid {
|
|||
vec4 edge;
|
||||
};
|
||||
|
||||
LAYOUT(binding=0) uniform gridBuffer {
|
||||
Grid grid;
|
||||
UNIFORM_BUFFER(0, gridBuffer) {
|
||||
Grid grid;
|
||||
};
|
||||
|
||||
layout(location=GPU_ATTR_TEXCOORD0) in vec2 varTexCoord0;
|
||||
layout(location=GPU_ATTR_COLOR) in vec4 varColor;
|
||||
Grid getGrid() { return grid; }
|
||||
|
||||
INPUT(GPU_ATTR_TEXCOORD0, vec2, varTexCoord0);
|
||||
INPUT(GPU_ATTR_COLOR, vec4, varColor);
|
||||
|
||||
OUTPUT(0, vec4, outFragColor);
|
||||
|
||||
void main(void) {
|
||||
float gridLine = mix(paintGridMajorMinor(varTexCoord0, grid.offset, grid.period, grid.edge),
|
||||
|
|
|
@ -14,21 +14,21 @@
|
|||
<@include render-utils/ShaderConstants.h@>
|
||||
<@include gpu/Color.slh@>
|
||||
|
||||
LAYOUT(binding=0) uniform sampler2D hudTexture;
|
||||
TEXTURE(0, sampler2D, hudTexture);
|
||||
|
||||
struct HUDData {
|
||||
float alpha;
|
||||
};
|
||||
|
||||
LAYOUT_STD140(binding=0) uniform hudBuffer {
|
||||
UNIFORM_BUFFER(0, hudBuffer) {
|
||||
HUDData hud;
|
||||
};
|
||||
|
||||
layout(location=RENDER_UTILS_ATTR_TEXCOORD01) in vec4 _texCoord01;
|
||||
INPUT(RENDER_UTILS_ATTR_TEXCOORD01, vec4, _texCoord01);
|
||||
#define _texCoord0 _texCoord01.xy
|
||||
#define _texCoord1 _texCoord01.zw
|
||||
|
||||
layout(location=0) out vec4 fragColor0;
|
||||
OUTPUT(0, vec4, fragColor0);
|
||||
|
||||
void main() {
|
||||
vec4 color = texture(hudTexture, _texCoord0);
|
||||
|
|
|
@ -13,8 +13,8 @@
|
|||
//
|
||||
|
||||
<@include gpu/ShaderConstants.h@>
|
||||
layout(location=GPU_ATTR_POSITION) in vec4 inPosition;
|
||||
layout(location=GPU_ATTR_TEXCOORD0) in vec4 inTexCoord0;
|
||||
INPUT(GPU_ATTR_POSITION, vec4, inPosition);
|
||||
INPUT(GPU_ATTR_TEXCOORD0, vec4, inTexCoord0);
|
||||
|
||||
<@include gpu/Transform.slh@>
|
||||
<@include render-utils/ShaderConstants.h@>
|
||||
|
@ -25,11 +25,11 @@ struct HUDData {
|
|||
float alpha;
|
||||
};
|
||||
|
||||
LAYOUT_STD140(binding=0) uniform hudBuffer {
|
||||
UNIFORM_BUFFER(0, hudBuffer) {
|
||||
HUDData hud;
|
||||
};
|
||||
|
||||
layout(location=RENDER_UTILS_ATTR_TEXCOORD01) out vec4 _texCoord01;
|
||||
OUTPUT(RENDER_UTILS_ATTR_TEXCOORD01, vec4, _texCoord01);
|
||||
|
||||
void main() {
|
||||
_texCoord01 = vec4(inTexCoord0.st, 0.0, 0.0);
|
||||
|
|
|
@ -24,8 +24,8 @@
|
|||
<$declareColorWheel()$>
|
||||
|
||||
|
||||
layout(location=0) in vec2 varTexCoord0;
|
||||
layout(location=0) out vec4 _fragColor;
|
||||
INPUT(0, vec2, varTexCoord0);
|
||||
OUTPUT(0, vec4, _fragColor);
|
||||
|
||||
void main(void) {
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
<$declareColorWheel()$>
|
||||
|
||||
|
||||
layout(location=0) out vec4 varColor;
|
||||
OUTPUT(0, vec4, varColor);
|
||||
|
||||
|
||||
void main(void) {
|
||||
|
|
|
@ -21,8 +21,8 @@
|
|||
<$declareColorWheel()$>
|
||||
|
||||
|
||||
layout(location=0) in vec2 varTexCoord0;
|
||||
layout(location=0) out vec4 _fragColor;
|
||||
INPUT(0, vec2, varTexCoord0);
|
||||
OUTPUT(0, vec4, _fragColor);
|
||||
|
||||
void main(void) {
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
|
||||
|
||||
|
||||
layout(location=0) out vec4 varColor;
|
||||
OUTPUT(0, vec4, varColor);
|
||||
|
||||
|
||||
void main(void) {
|
||||
|
|
|
@ -10,8 +10,8 @@
|
|||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||
//
|
||||
|
||||
layout(location=0) in vec4 varColor;
|
||||
layout(location=0) out vec4 outFragColor;
|
||||
INPUT(0, vec4, varColor);
|
||||
OUTPUT(0, vec4, outFragColor);
|
||||
|
||||
|
||||
void main(void) {
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
|
||||
|
||||
|
||||
layout(location=0) out vec4 varColor;
|
||||
OUTPUT(0, vec4, varColor);
|
||||
|
||||
|
||||
void main(void) {
|
||||
|
|
|
@ -33,10 +33,10 @@
|
|||
<@include render-utils/ShaderConstants.h@>
|
||||
|
||||
|
||||
layout(location=RENDER_UTILS_ATTR_TEXCOORD01) in vec4 _texCoord01;
|
||||
INPUT(RENDER_UTILS_ATTR_TEXCOORD01, vec4, _texCoord01);
|
||||
#define _texCoord0 _texCoord01.xy
|
||||
#define _texCoord1 _texCoord01.zw
|
||||
layout(location=0) out vec4 _fragColor;
|
||||
OUTPUT(0, vec4, _fragColor);
|
||||
|
||||
void main(void) {
|
||||
|
||||
|
|
|
@ -21,10 +21,10 @@
|
|||
|
||||
<@include render-utils/ShaderConstants.h@>
|
||||
|
||||
layout(location=RENDER_UTILS_ATTR_TEXCOORD01) in vec4 _texCoord01;
|
||||
INPUT(RENDER_UTILS_ATTR_TEXCOORD01, vec4, _texCoord01);
|
||||
#define _texCoord0 _texCoord01.xy
|
||||
#define _texCoord1 _texCoord01.zw
|
||||
layout(location=0) out vec4 _fragColor;
|
||||
OUTPUT(0, vec4, _fragColor);
|
||||
|
||||
void main(void) {
|
||||
_fragColor = vec4(0.0);
|
||||
|
|
|
@ -75,20 +75,19 @@
|
|||
<@endif@>
|
||||
<@include gpu/Transform.slh@>
|
||||
<$declareStandardCameraTransform()$>
|
||||
|
||||
layout(location=0) out vec4 _fragColor0;
|
||||
OUTPUT(0, vec4, _fragColor0);
|
||||
<@else@>
|
||||
<@include DeferredBufferWrite.slh@>
|
||||
<@endif@>
|
||||
<@else@>
|
||||
<@if HIFI_USE_MIRROR@>
|
||||
<@if HIFI_USE_FORWARD@>
|
||||
layout(location=0) out vec4 _fragColor0;
|
||||
OUTPUT(0, vec4, _fragColor0);
|
||||
<@else@>
|
||||
<@include DeferredBufferWrite.slh@>
|
||||
<@endif@>
|
||||
<@else@>
|
||||
layout(location=0) out vec4 _fragColor0;
|
||||
OUTPUT(0, vec4, _fragColor0);
|
||||
<@endif@>
|
||||
<@endif@>
|
||||
|
||||
|
@ -101,18 +100,18 @@
|
|||
<$declareFadeFragment()$>
|
||||
<@endif@>
|
||||
|
||||
layout(location=RENDER_UTILS_ATTR_POSITION_WS) in vec4 _positionWS;
|
||||
layout(location=RENDER_UTILS_ATTR_TEXCOORD01) in vec4 _texCoord01;
|
||||
INPUT(RENDER_UTILS_ATTR_POSITION_WS, vec4, _positionWS);
|
||||
INPUT(RENDER_UTILS_ATTR_TEXCOORD01, vec4, _texCoord01);
|
||||
#define _texCoord0 _texCoord01.xy
|
||||
#define _texCoord1 _texCoord01.zw
|
||||
<@if not HIFI_USE_SHADOW@>
|
||||
layout(location=RENDER_UTILS_ATTR_POSITION_ES) in vec4 _positionES;
|
||||
layout(location=RENDER_UTILS_ATTR_NORMAL_WS) in vec3 _normalWS;
|
||||
INPUT(RENDER_UTILS_ATTR_POSITION_ES, vec4, _positionES);
|
||||
INPUT(RENDER_UTILS_ATTR_NORMAL_WS, vec3, _normalWS);
|
||||
<@if not HIFI_USE_MTOON@>
|
||||
layout(location=RENDER_UTILS_ATTR_COLOR) in vec4 _color;
|
||||
INPUT(RENDER_UTILS_ATTR_COLOR, vec4, _color);
|
||||
<@endif@>
|
||||
<@if HIFI_USE_NORMALMAP@>
|
||||
layout(location=RENDER_UTILS_ATTR_TANGENT_WS) in vec3 _tangentWS;
|
||||
INPUT(RENDER_UTILS_ATTR_TANGENT_WS, vec3, _tangentWS);
|
||||
<@endif@>
|
||||
<@endif@>
|
||||
|
||||
|
|
|
@ -12,11 +12,11 @@
|
|||
//
|
||||
|
||||
<@include gpu/ShaderConstants.h@>
|
||||
layout(location=GPU_ATTR_POSITION) in vec4 inPosition;
|
||||
layout(location=GPU_ATTR_NORMAL) in vec4 inNormal;
|
||||
layout(location=GPU_ATTR_COLOR) in vec4 inColor;
|
||||
layout(location=GPU_ATTR_TEXCOORD0) in vec4 inTexCoord0;
|
||||
layout(location=GPU_ATTR_TEXCOORD1) in vec4 inTexCoord1;
|
||||
INPUT(GPU_ATTR_POSITION, vec4, inPosition);
|
||||
INPUT(GPU_ATTR_NORMAL, vec4, inNormal);
|
||||
INPUT(GPU_ATTR_COLOR, vec4, inColor);
|
||||
INPUT(GPU_ATTR_TEXCOORD0, vec4, inTexCoord0);
|
||||
INPUT(GPU_ATTR_TEXCOORD1, vec4, inTexCoord1);
|
||||
|
||||
<@include gpu/Color.slh@>
|
||||
<@include render-utils/ShaderConstants.h@>
|
||||
|
@ -49,16 +49,16 @@ layout(location=GPU_ATTR_TEXCOORD1) in vec4 inTexCoord1;
|
|||
<$declareMeshDeformerActivation(1, 1)$>
|
||||
<@endif@>
|
||||
|
||||
layout(location=RENDER_UTILS_ATTR_POSITION_WS) out vec4 _positionWS;
|
||||
layout(location=RENDER_UTILS_ATTR_TEXCOORD01) out vec4 _texCoord01;
|
||||
OUTPUT(RENDER_UTILS_ATTR_POSITION_WS, vec4, _positionWS);
|
||||
OUTPUT(RENDER_UTILS_ATTR_TEXCOORD01, vec4, _texCoord01);
|
||||
<@if not HIFI_USE_SHADOW@>
|
||||
layout(location=RENDER_UTILS_ATTR_POSITION_ES) out vec4 _positionES;
|
||||
layout(location=RENDER_UTILS_ATTR_NORMAL_WS) out vec3 _normalWS;
|
||||
OUTPUT(RENDER_UTILS_ATTR_POSITION_ES, vec4, _positionES);
|
||||
OUTPUT(RENDER_UTILS_ATTR_NORMAL_WS, vec3, _normalWS);
|
||||
<@if not HIFI_USE_MTOON@>
|
||||
layout(location=RENDER_UTILS_ATTR_COLOR) out vec4 _color;
|
||||
OUTPUT(RENDER_UTILS_ATTR_COLOR, vec4, _color);
|
||||
<@endif@>
|
||||
<@if HIFI_USE_NORMALMAP@>
|
||||
layout(location=RENDER_UTILS_ATTR_TANGENT_WS) out vec3 _tangentWS;
|
||||
OUTPUT(RENDER_UTILS_ATTR_TANGENT_WS, vec3, _tangentWS);
|
||||
<@endif@>
|
||||
<@endif@>
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||
//
|
||||
|
||||
layout(location=0) out vec4 _fragColor;
|
||||
OUTPUT(0, vec4, _fragColor);
|
||||
|
||||
void main(void) {
|
||||
}
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
layout(location=0) out vec4 _fragColor0;
|
||||
<@endif@>
|
||||
|
||||
layout(location=0) in vec4 _color;
|
||||
INPUT(0, vec4, _color);
|
||||
|
||||
void main(void) {
|
||||
<@if not HIFI_USE_FORWARD@>
|
||||
|
|
|
@ -22,11 +22,11 @@ struct ParabolaData {
|
|||
ivec3 spare;
|
||||
};
|
||||
|
||||
LAYOUT_STD140(binding=0) uniform parabolaData {
|
||||
UNIFORM_BUFFER(0, parabolaData) {
|
||||
ParabolaData _parabolaData;
|
||||
};
|
||||
|
||||
layout(location=0) out vec4 _color;
|
||||
OUTPUT(0, vec4, _color);
|
||||
|
||||
void main(void) {
|
||||
_color = _parabolaData.color;
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
<@include gpu/Transform.slh@>
|
||||
<$declareStandardCameraTransform()$>
|
||||
|
||||
layout(location=0) out vec4 _fragColor0;
|
||||
OUTPUT(0, vec4, _fragColor0);
|
||||
<@else@>
|
||||
<@include DeferredBufferWrite.slh@>
|
||||
<@endif@>
|
||||
|
@ -34,13 +34,16 @@
|
|||
|
||||
layout(location=RENDER_UTILS_ATTR_POSITION_MS) in vec2 _positionMS;
|
||||
<@if HIFI_USE_TRANSLUCENT or HIFI_USE_FORWARD@>
|
||||
layout(location=RENDER_UTILS_ATTR_POSITION_ES) in vec4 _positionES;
|
||||
INPUT(RENDER_UTILS_ATTR_POSITION_ES, vec4, _positionES);
|
||||
<@endif@>
|
||||
layout(location=RENDER_UTILS_ATTR_NORMAL_WS) in vec3 _normalWS;
|
||||
layout(location=RENDER_UTILS_ATTR_TEXCOORD01) in vec4 _texCoord01;
|
||||
// the interpolated normal
|
||||
INPUT(RENDER_UTILS_ATTR_NORMAL_WS, vec3, _normalWS);
|
||||
INPUT(RENDER_UTILS_ATTR_TEXCOORD01, vec4, _texCoord01);
|
||||
#define _texCoord0 _texCoord01.xy
|
||||
#define _texCoord1 _texCoord01.zw
|
||||
layout(location=RENDER_UTILS_ATTR_FADE1) flat in vec4 _glyphBounds; // we're reusing the fade texcoord locations here
|
||||
// TODO: what does flat mean?
|
||||
//layout(location=RENDER_UTILS_ATTR_FADE1) flat in vec4 _glyphBounds; // we're reusing the fade texcoord locations here
|
||||
INPUT(RENDER_UTILS_ATTR_FADE1, vec4, _glyphBounds); // we're reusing the fade texcoord locations here
|
||||
|
||||
<@if HIFI_USE_MIRROR@>
|
||||
<@include graphics/ShaderConstants.h@>
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
<@if not SDF_TEXT3D_SLH@>
|
||||
<@def SDF_TEXT3D_SLH@>
|
||||
|
||||
LAYOUT(binding=0) uniform sampler2D fontTexture;
|
||||
TEXTURE(0, sampler2D, fontTexture);
|
||||
|
||||
struct TextParams {
|
||||
vec4 bounds;
|
||||
|
@ -29,7 +29,7 @@ struct TextParams {
|
|||
float spare;
|
||||
};
|
||||
|
||||
LAYOUT(binding=0) uniform textParamsBuffer {
|
||||
UNIFORM_BUFFER(0, textParamsBuffer) {
|
||||
TextParams params;
|
||||
};
|
||||
|
||||
|
|
|
@ -11,8 +11,8 @@
|
|||
//
|
||||
|
||||
<@include gpu/ShaderConstants.h@>
|
||||
layout(location=GPU_ATTR_POSITION) in vec4 inPosition;
|
||||
layout(location=GPU_ATTR_TEXCOORD0) in vec4 inTexCoord0;
|
||||
INPUT(GPU_ATTR_POSITION, vec4, inPosition);
|
||||
INPUT(GPU_ATTR_TEXCOORD0, vec4, inTexCoord0);
|
||||
|
||||
<@include gpu/Transform.slh@>
|
||||
<@include render-utils/ShaderConstants.h@>
|
||||
|
@ -24,11 +24,13 @@ layout(location=GPU_ATTR_TEXCOORD0) in vec4 inTexCoord0;
|
|||
|
||||
layout(location=RENDER_UTILS_ATTR_POSITION_MS) out vec2 _positionMS;
|
||||
<@if HIFI_USE_TRANSLUCENT or HIFI_USE_FORWARD@>
|
||||
layout(location=RENDER_UTILS_ATTR_POSITION_ES) out vec4 _positionES;
|
||||
OUTPUT(RENDER_UTILS_ATTR_POSITION_ES, vec4, _positionES);
|
||||
<@endif@>
|
||||
layout(location=RENDER_UTILS_ATTR_NORMAL_WS) out vec3 _normalWS;
|
||||
layout(location=RENDER_UTILS_ATTR_TEXCOORD01) out vec4 _texCoord01;
|
||||
layout(location=RENDER_UTILS_ATTR_FADE1) flat out vec4 _glyphBounds; // we're reusing the fade texcoord locations here
|
||||
OUTPUT(RENDER_UTILS_ATTR_NORMAL_WS, vec3, _normalWS);
|
||||
OUTPUT(RENDER_UTILS_ATTR_TEXCOORD01, vec4, _texCoord01);
|
||||
//TODO: what does flat mean?
|
||||
//layout(location=RENDER_UTILS_ATTR_FADE1) flat out vec4 _glyphBounds; // we're reusing the fade texcoord locations here
|
||||
OUTPUT(RENDER_UTILS_ATTR_FADE1, vec4, _glyphBounds); // we're reusing the fade texcoord locations here
|
||||
|
||||
void main() {
|
||||
_positionMS = inPosition.xy;
|
||||
|
@ -54,4 +56,4 @@ void main() {
|
|||
|
||||
const vec3 normal = vec3(0, 0, 1);
|
||||
<$transformModelToWorldDir(cam, obj, normal, _normalWS)$>
|
||||
}
|
||||
}
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
<@include LightingModel.slh@>
|
||||
<@endif@>
|
||||
|
||||
layout(location=0) out vec4 _fragColor0;
|
||||
OUTPUT(0, vec4, _fragColor0);
|
||||
<@endif@>
|
||||
|
||||
<@if not HIFI_USE_UNLIT@>
|
||||
|
@ -51,19 +51,19 @@
|
|||
|
||||
<@if not HIFI_USE_UNLIT@>
|
||||
<@if HIFI_USE_FORWARD or HIFI_USE_TRANSLUCENT@>
|
||||
layout(location=RENDER_UTILS_ATTR_POSITION_ES) in vec4 _positionES;
|
||||
INPUT(RENDER_UTILS_ATTR_POSITION_ES, vec4, _positionES);
|
||||
<@endif@>
|
||||
<@endif@>
|
||||
<@if HIFI_USE_FADE@>
|
||||
layout(location=RENDER_UTILS_ATTR_POSITION_WS) in vec4 _positionWS;
|
||||
INPUT(RENDER_UTILS_ATTR_POSITION_WS, vec4, _positionWS);
|
||||
<@endif@>
|
||||
layout(location=RENDER_UTILS_ATTR_NORMAL_WS) in vec3 _normalWS;
|
||||
layout(location=RENDER_UTILS_ATTR_COLOR) in vec4 _color;
|
||||
layout(location=RENDER_UTILS_ATTR_TEXCOORD01) in vec4 _texCoord01;
|
||||
INPUT(RENDER_UTILS_ATTR_NORMAL_WS, vec3, _normalWS);
|
||||
INPUT(RENDER_UTILS_ATTR_COLOR, vec4, _color);
|
||||
INPUT(RENDER_UTILS_ATTR_TEXCOORD01, vec4, _texCoord01);
|
||||
#define _texCoord0 _texCoord01.xy
|
||||
#define _texCoord1 _texCoord01.zw
|
||||
|
||||
LAYOUT(binding=0) uniform sampler2D simpleTexture;
|
||||
TEXTURE(0, sampler2D, simpleTexture);
|
||||
|
||||
void main(void) {
|
||||
vec4 texel = texture(simpleTexture, _texCoord0);
|
||||
|
|
|
@ -11,10 +11,10 @@
|
|||
//
|
||||
|
||||
<@include gpu/ShaderConstants.h@>
|
||||
layout(location=GPU_ATTR_POSITION) in vec4 inPosition;
|
||||
layout(location=GPU_ATTR_NORMAL) in vec4 inNormal;
|
||||
layout(location=GPU_ATTR_COLOR) in vec4 inColor;
|
||||
layout(location=GPU_ATTR_TEXCOORD0) in vec4 inTexCoord0;
|
||||
INPUT(GPU_ATTR_POSITION, vec4, inPosition);
|
||||
INPUT(GPU_ATTR_NORMAL, vec4, inNormal);
|
||||
INPUT(GPU_ATTR_COLOR, vec4, inColor);
|
||||
INPUT(GPU_ATTR_TEXCOORD0, vec4, inTexCoord0);
|
||||
|
||||
<@include gpu/Color.slh@>
|
||||
<@include gpu/Transform.slh@>
|
||||
|
@ -26,17 +26,17 @@ layout(location=GPU_ATTR_TEXCOORD0) in vec4 inTexCoord0;
|
|||
<@include Fade.slh@>
|
||||
<$declareFadeVertexInstanced()$>
|
||||
|
||||
layout(location=RENDER_UTILS_ATTR_POSITION_WS) out vec4 _positionWS;
|
||||
OUTPUT(RENDER_UTILS_ATTR_POSITION_WS, vec4, _positionWS);
|
||||
<@endif@>
|
||||
|
||||
<@if not HIFI_USE_UNLIT@>
|
||||
<@if HIFI_USE_FORWARD or HIFI_USE_TRANSLUCENT@>
|
||||
layout(location=RENDER_UTILS_ATTR_POSITION_ES) out vec4 _positionES;
|
||||
OUTPUT(RENDER_UTILS_ATTR_POSITION_ES, vec4, _positionES);
|
||||
<@endif@>
|
||||
<@endif@>
|
||||
layout(location=RENDER_UTILS_ATTR_NORMAL_WS) out vec3 _normalWS;
|
||||
layout(location=RENDER_UTILS_ATTR_COLOR) out vec4 _color;
|
||||
layout(location=RENDER_UTILS_ATTR_TEXCOORD01) out vec4 _texCoord01;
|
||||
OUTPUT(RENDER_UTILS_ATTR_NORMAL_WS, vec3, _normalWS);
|
||||
OUTPUT(RENDER_UTILS_ATTR_COLOR, vec4, _color);
|
||||
OUTPUT(RENDER_UTILS_ATTR_TEXCOORD01, vec4, _texCoord01);
|
||||
|
||||
void main(void) {
|
||||
_color = color_sRGBAToLinear(inColor);
|
||||
|
@ -59,4 +59,4 @@ void main(void) {
|
|||
<$passThroughFadeObjectParams()$>
|
||||
<@endif@>
|
||||
<$transformModelToWorldDir(cam, obj, inNormal.xyz, _normalWS)$>
|
||||
}
|
||||
}
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
<@include GlobalLight.slh@>
|
||||
<$declareEvalGlobalLightingAlphaBlended()$>
|
||||
|
||||
layout(location=0) out vec4 _fragColor0;
|
||||
OUTPUT(0, vec4, _fragColor0);
|
||||
<@endif@>
|
||||
|
||||
<@include gpu/Transform.slh@>
|
||||
|
@ -27,12 +27,12 @@
|
|||
<@include CullFace.slh@>
|
||||
<@include render-utils/ShaderConstants.h@>
|
||||
|
||||
layout(location=RENDER_UTILS_ATTR_POSITION_MS) in vec4 _positionMS;
|
||||
layout(location=RENDER_UTILS_ATTR_POSITION_ES) in vec4 _positionES;
|
||||
layout(location=RENDER_UTILS_ATTR_NORMAL_MS) in vec3 _normalMS;
|
||||
layout(location=RENDER_UTILS_ATTR_NORMAL_WS) in vec3 _normalWS;
|
||||
layout(location=RENDER_UTILS_ATTR_COLOR) in vec4 _color;
|
||||
layout(location=RENDER_UTILS_ATTR_TEXCOORD01) in vec4 _texCoord01;
|
||||
INPUT(RENDER_UTILS_ATTR_POSITION_MS, vec4, _positionMS);
|
||||
INPUT(RENDER_UTILS_ATTR_POSITION_ES, vec4, _positionES);
|
||||
INPUT(RENDER_UTILS_ATTR_NORMAL_MS, vec3, _normalMS);
|
||||
INPUT(RENDER_UTILS_ATTR_NORMAL_WS, vec3, _normalWS);
|
||||
INPUT(RENDER_UTILS_ATTR_COLOR, vec4, _color);
|
||||
INPUT(RENDER_UTILS_ATTR_TEXCOORD01, vec4, _texCoord01);
|
||||
#define _texCoord0 _texCoord01.xy
|
||||
#define _texCoord1 _texCoord01.zw
|
||||
|
||||
|
|
|
@ -59,7 +59,7 @@ float unpackOcclusion(vec4 raw) {
|
|||
<@include DeferredTransform.slh@>
|
||||
<$declareDeferredFrameTransform()$>
|
||||
|
||||
LAYOUT(binding=RENDER_UTILS_BUFFER_SSAO_PARAMS) uniform ambientOcclusionParamsBuffer {
|
||||
UNIFORM_BUFFER(RENDER_UTILS_BUFFER_SSAO_PARAMS, ambientOcclusionParamsBuffer) {
|
||||
AmbientOcclusionParams params;
|
||||
};
|
||||
|
||||
|
@ -248,8 +248,8 @@ vec3 getTapLocationClampedSSAO(int sampleNumber, float spinAngle, float outerRad
|
|||
<@func declareFetchDepthPyramidMap()@>
|
||||
|
||||
// the depth pyramid texture
|
||||
LAYOUT(binding=RENDER_UTILS_TEXTURE_SSAO_DEPTH) uniform sampler2D depthPyramidTex;
|
||||
LAYOUT(binding=RENDER_UTILS_TEXTURE_SSAO_NORMAL) uniform sampler2D normalTex;
|
||||
TEXTURE(RENDER_UTILS_TEXTURE_SSAO_DEPTH, sampler2D, depthPyramidTex);
|
||||
TEXTURE(RENDER_UTILS_TEXTURE_SSAO_NORMAL, sampler2D, normalTex);
|
||||
|
||||
vec2 getFramebufferUVFromSideUV(ivec4 side, vec2 uv) {
|
||||
return mix(uv, vec2((uv.x + float(getStereoSide(side))) * 0.5, uv.y), float(isStereo()));
|
||||
|
|
|
@ -26,7 +26,7 @@ struct DebugParams{
|
|||
vec4 pixelInfo;
|
||||
};
|
||||
|
||||
LAYOUT(binding=RENDER_UTILS_BUFFER_SSAO_DEBUG_PARAMS) uniform debugAmbientOcclusionBuffer {
|
||||
UNIFORM_BUFFER(RENDER_UTILS_BUFFER_SSAO_DEBUG_PARAMS, debugAmbientOcclusionBuffer) {
|
||||
DebugParams debugParams;
|
||||
};
|
||||
|
||||
|
@ -34,7 +34,7 @@ vec2 getDebugCursorTexcoord(){
|
|||
return debugParams.pixelInfo.xy;
|
||||
}
|
||||
|
||||
layout(location=0) out vec4 outFragColor;
|
||||
OUTPUT(0, vec4, outFragColor);
|
||||
|
||||
void main(void) {
|
||||
// Stereo side info based on the real viewport size of this pass
|
||||
|
|
|
@ -21,9 +21,8 @@
|
|||
|
||||
#define SSAO_HBAO_MAX_RADIUS 300.0
|
||||
|
||||
layout(location=0) in vec2 varTexCoord0;
|
||||
|
||||
layout(location=0) out vec4 outFragColor;
|
||||
INPUT(0, vec2, varTexCoord0);
|
||||
OUTPUT(0, vec4, outFragColor);
|
||||
|
||||
void main(void) {
|
||||
// Pixel being shaded
|
||||
|
|
|
@ -14,9 +14,9 @@
|
|||
<@include ssao.slh@>
|
||||
<$declareAmbientOcclusion()$>
|
||||
|
||||
LAYOUT(binding=0) uniform sampler2D depthMap;
|
||||
TEXTURE(0, sampler2D, depthMap);
|
||||
|
||||
layout(location=0) out vec4 outFragColor;
|
||||
OUTPUT(0, vec4, outFragColor);
|
||||
|
||||
void main(void) {
|
||||
float Zdb = texelFetch(depthMap, ivec2(gl_FragCoord.xy), 0).x;
|
||||
|
|
|
@ -14,14 +14,14 @@
|
|||
<@include gpu/ShaderConstants.h@>
|
||||
|
||||
// the texture
|
||||
LAYOUT(binding=0) uniform sampler2D colorMap;
|
||||
TEXTURE(0, sampler2D, colorMap);
|
||||
|
||||
layout(location=GPU_ATTR_POSITION) in vec3 varPosition;
|
||||
layout(location=GPU_ATTR_NORMAL) in vec3 varNormal;
|
||||
layout(location=GPU_ATTR_TEXCOORD0) in vec2 varTexCoord0;
|
||||
layout(location=GPU_ATTR_COLOR) in vec4 varColor;
|
||||
INPUT(GPU_ATTR_POSITION, vec3, varPosition);
|
||||
INPUT(GPU_ATTR_NORMAL, vec3, varNormal);
|
||||
INPUT(GPU_ATTR_TEXCOORD0, vec2, varTexCoord0);
|
||||
INPUT(GPU_ATTR_COLOR, vec4, varColor);
|
||||
|
||||
layout(location=0) out vec4 outFragColor;
|
||||
OUTPUT(0, vec4, outFragColor);
|
||||
|
||||
void main(void) {
|
||||
vec4 color = texture(colorMap, varTexCoord0);
|
||||
|
|
|
@ -14,14 +14,14 @@
|
|||
<@include gpu/ShaderConstants.h@>
|
||||
|
||||
// the texture
|
||||
LAYOUT(binding=0) uniform sampler2D colorMap;
|
||||
TEXTURE(0, sampler2D, colorMap);
|
||||
|
||||
layout(location=GPU_ATTR_POSITION) in vec3 varPosition;
|
||||
layout(location=GPU_ATTR_NORMAL) in vec3 varNormal;
|
||||
layout(location=GPU_ATTR_TEXCOORD0) in vec2 varTexCoord0;
|
||||
layout(location=GPU_ATTR_COLOR) in vec4 varColor;
|
||||
INPUT(GPU_ATTR_POSITION, vec3, varPosition);
|
||||
INPUT(GPU_ATTR_NORMAL, vec3, varNormal);
|
||||
INPUT(GPU_ATTR_TEXCOORD0, vec2, varTexCoord0);
|
||||
INPUT(GPU_ATTR_COLOR, vec4, varColor);
|
||||
|
||||
layout(location=0) out vec4 outFragColor;
|
||||
OUTPUT(0, vec4, outFragColor);
|
||||
|
||||
void main(void) {
|
||||
vec4 color = texture(colorMap, varTexCoord0);
|
||||
|
|
|
@ -13,19 +13,19 @@
|
|||
//
|
||||
|
||||
<@include gpu/ShaderConstants.h@>
|
||||
layout(location=GPU_ATTR_POSITION) in vec4 inPosition;
|
||||
layout(location=GPU_ATTR_NORMAL) in vec4 inNormal;
|
||||
layout(location=GPU_ATTR_COLOR) in vec4 inColor;
|
||||
layout(location=GPU_ATTR_TEXCOORD0) in vec4 inTexCoord0;
|
||||
INPUT(GPU_ATTR_POSITION, vec4, inPosition);
|
||||
INPUT(GPU_ATTR_NORMAL, vec4, inNormal);
|
||||
INPUT(GPU_ATTR_COLOR, vec4, inColor);
|
||||
INPUT(GPU_ATTR_TEXCOORD0, vec4, inTexCoord0);
|
||||
|
||||
<@include gpu/Color.slh@>
|
||||
<@include gpu/Transform.slh@>
|
||||
<$declareStandardTransform()$>
|
||||
|
||||
layout(location=GPU_ATTR_POSITION) out vec3 varPosition;
|
||||
layout(location=GPU_ATTR_NORMAL) out vec3 varNormal;
|
||||
layout(location=GPU_ATTR_TEXCOORD0) out vec2 varTexCoord0;
|
||||
layout(location=GPU_ATTR_COLOR) out vec4 varColor;
|
||||
OUTPUT(GPU_ATTR_POSITION, vec3, varPosition);
|
||||
OUTPUT(GPU_ATTR_NORMAL, vec3, varNormal);
|
||||
OUTPUT(GPU_ATTR_TEXCOORD0, vec2, varTexCoord0);
|
||||
OUTPUT(GPU_ATTR_COLOR, vec4, varColor);
|
||||
|
||||
void main(void) {
|
||||
varTexCoord0 = inTexCoord0.st;
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||
//
|
||||
|
||||
layout(location=0) in vec2 varTexCoord0;
|
||||
INPUT(0, vec2, varTexCoord0);
|
||||
|
||||
float aspectRatio = 0.95;
|
||||
|
||||
|
|
|
@ -23,15 +23,15 @@
|
|||
<@include SubsurfaceScattering.slh@>
|
||||
<$declareSubsurfaceScatteringBRDF()$>
|
||||
|
||||
layout(location=0) in vec2 varTexCoord0;
|
||||
layout(location=0) out vec4 _fragColor;
|
||||
INPUT(0, vec2, varTexCoord0);
|
||||
OUTPUT(0, vec4, _fragColor);
|
||||
|
||||
struct SSSDebugParams {
|
||||
vec4 cursorTexCoordSpare2;
|
||||
};
|
||||
|
||||
// Deferred frame transform uses slot 0
|
||||
LAYOUT_STD140(binding=1) uniform sssDebugParamsBuffer {
|
||||
UNIFORM_BUFFER(1, sssDebugParamsBuffer) {
|
||||
SSSDebugParams sssDebugParams;
|
||||
};
|
||||
|
||||
|
|
|
@ -15,8 +15,8 @@
|
|||
<$declareSubsurfaceScatteringProfileSource()$>
|
||||
<$declareSubsurfaceScatteringIntegrate(2000)$>
|
||||
|
||||
layout(location=0) in vec2 varTexCoord0;
|
||||
layout(location=0) out vec4 outFragColor;
|
||||
INPUT(0, vec2, varTexCoord0);
|
||||
OUTPUT(0, vec4, outFragColor);
|
||||
|
||||
void main(void) {
|
||||
|
||||
|
|
|
@ -14,8 +14,8 @@
|
|||
<@include SubsurfaceScattering.slh@>
|
||||
<$declareSubsurfaceScatteringGenerateProfileMap()$>
|
||||
|
||||
layout(location=0) in vec2 varTexCoord0;
|
||||
layout(location=0) out vec4 outFragColor;
|
||||
INPUT(0, vec2, varTexCoord0);
|
||||
OUTPUT(0, vec4, outFragColor);
|
||||
|
||||
void main(void) {
|
||||
outFragColor = vec4(generateProfile(varTexCoord0.xy), 1.0);
|
||||
|
|
|
@ -13,8 +13,8 @@
|
|||
|
||||
|
||||
|
||||
layout(location=0) in vec2 varTexCoord0;
|
||||
layout(location=0) out vec4 outFragColor;
|
||||
INPUT(0, vec2, varTexCoord0);
|
||||
OUTPUT(0, vec4, outFragColor);
|
||||
|
||||
float specularBeckmann(float ndoth, float roughness) {
|
||||
float alpha = acos(ndoth);
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue