зеркало из https://github.com/stride3d/xkslang.git
73 строки
2.7 KiB
GLSL
73 строки
2.7 KiB
GLSL
#version 130
|
|
|
|
uniform sampler1D texSampler1D;
|
|
uniform sampler2D texSampler2D;
|
|
uniform sampler3D texSampler3D;
|
|
uniform samplerCube texSamplerCube;
|
|
uniform sampler1DShadow shadowSampler1D;
|
|
uniform sampler2DShadow shadowSampler2D;
|
|
|
|
uniform float blend;
|
|
uniform vec2 scale;
|
|
uniform vec4 u;
|
|
|
|
varying vec2 t;
|
|
varying vec2 coords2D;
|
|
|
|
void main()
|
|
{
|
|
float blendscale = 1.789;
|
|
float bias = 2.0;
|
|
float lod = 3.0;
|
|
float proj = 2.0;
|
|
float coords1D = 1.789;
|
|
vec3 coords3D = vec3(1.789, 2.718, 3.453);
|
|
vec4 coords4D = vec4(1.789, 2.718, 3.453, 2.0);
|
|
vec4 color = vec4(0.0, 0.0, 0.0, 0.0);
|
|
|
|
color += texture1D (texSampler1D, coords1D);
|
|
color += texture1D (texSampler1D, coords1D, bias);
|
|
color += texture1DProj(texSampler1D, coords2D);
|
|
color += texture1DProj(texSampler1D, coords4D);
|
|
color += texture1DProj(texSampler1D, coords2D, bias);
|
|
color += texture1DProj(texSampler1D, coords4D, bias);
|
|
|
|
color += texture2D (texSampler2D, coords2D);
|
|
color += texture2D (texSampler2D, coords2D, bias);
|
|
color += texture2DProj (texSampler2D, coords3D);
|
|
color += texture2DProj (texSampler2D, coords4D, bias);
|
|
|
|
color += texture3D (texSampler3D, coords3D);
|
|
color += texture3D (texSampler3D, coords3D, bias);
|
|
color += texture3DProj (texSampler3D, coords4D);
|
|
color += texture3DProj (texSampler3D, coords4D, bias);
|
|
|
|
color += textureCube (texSamplerCube, coords3D);
|
|
color += textureCube (texSamplerCube, coords3D, bias);
|
|
|
|
color += shadow1D (shadowSampler1D, coords3D);
|
|
color += shadow1D (shadowSampler1D, coords3D, bias);
|
|
color += shadow2D (shadowSampler2D, coords3D);
|
|
color += shadow2D (shadowSampler2D, coords3D, bias);
|
|
color += shadow1DProj (shadowSampler1D, coords4D);
|
|
color += shadow1DProj (shadowSampler1D, coords4D, bias);
|
|
color += shadow2DProj (shadowSampler2D, coords4D);
|
|
color += shadow2DProj (shadowSampler2D, coords4D, bias);
|
|
|
|
ivec2 iCoords2D = ivec2(0, 5);
|
|
int iLod = 1;
|
|
|
|
color += texelFetch(texSampler2D, iCoords2D, iLod);
|
|
|
|
vec2 gradX = dFdx(coords2D);
|
|
vec2 gradY = dFdy(coords2D);
|
|
const ivec2 offset = ivec2(3, -7);
|
|
|
|
color += textureGrad(texSampler2D, coords2D, gradX, gradY);
|
|
color += textureProjGrad(texSampler2D, vec3(coords2D, proj), gradX, gradY);
|
|
color += textureGradOffset(texSampler2D, coords2D, gradX, gradY, offset);
|
|
color += textureProjGradOffset(texSampler2D, coords3D, gradX, gradY, offset);
|
|
color += textureGrad(shadowSampler2D, vec3(coords2D, lod), gradX, gradY);
|
|
|
|
gl_FragColor = mix(color, u, blend * blendscale);
|
|
} |