⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 slang_common_builtin_gc.h

📁 winNT技术操作系统,国外开放的原代码和LIUX一样
💻 H
📖 第 1 页 / 共 3 页
字号:
"    return I - 2.0 * dot (N, I) * N;\n"
"}\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"float refract (float I, float N, float eta) {\n"
"    const float k = 1.0 - eta * eta * (1.0 - dot (N, I) * dot (N, I));\n"
"    if (k < 0.0)\n"
"        return 0.0;\n"
"    return eta * I - (eta * dot (N, I) + sqrt (k)) * N;\n"
"}\n"
"vec2 refract (vec2 I, vec2 N, float eta) {\n"
"    const float k = 1.0 - eta * eta * (1.0 - dot (N, I) * dot (N, I));\n"
"    if (k < 0.0)\n"
"        return vec2 (0.0);\n"
"    return eta * I - (eta * dot (N, I) + sqrt (k)) * N;\n"
"}\n"
"vec3 refract (vec3 I, vec3 N, float eta) {\n"
"    const float k = 1.0 - eta * eta * (1.0 - dot (N, I) * dot (N, I));\n"
"    if (k < 0.0)\n"
"        return vec3 (0.0);\n"
"    return eta * I - (eta * dot (N, I) + sqrt (k)) * N;\n"
"}\n"
"vec4 refract (vec4 I, vec4 N, float eta) {\n"
"    const float k = 1.0 - eta * eta * (1.0 - dot (N, I) * dot (N, I));\n"
"    if (k < 0.0)\n"
"        return vec4 (0.0);\n"
"    return eta * I - (eta * dot (N, I) + sqrt (k)) * N;\n"
"}\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"mat2 matrixCompMult (mat2 x, mat2 y) {\n"
"    return mat2 (\n"
"        x[0].x * y[0].x, x[0].y * y[0].y,\n"
"        x[1].x * y[1].x, x[1].y * y[1].y\n"
"    );\n"
"}\n"
"mat3 matrixCompMult (mat3 x, mat3 y) {\n"
"    return mat4 (\n"
"        x[0].x * y[0].x, x[0].y * y[0].y, x[0].z * y[0].z,\n"
"        x[1].x * y[1].x, x[1].y * y[1].y, x[1].z * y[1].z,\n"
"        x[2].x * y[2].x, x[2].y * y[2].y, x[2].z * y[2].z\n"
"    );\n"
"}\n"
"mat4 matrixCompMult (mat4 x, mat4 y) {\n"
"    return mat4 (\n"
"        x[0].x * y[0].x, x[0].y * y[0].y, x[0].z * y[0].z + x[0].w * y[0].w,\n"
"        x[1].x * y[1].x, x[1].y * y[1].y, x[1].z * y[1].z + x[1].w * y[1].w,\n"
"        x[2].x * y[2].x, x[2].y * y[2].y, x[2].z * y[2].z + x[2].w * y[2].w,\n"
"        x[3].x * y[3].x, x[3].y * y[3].y, x[3].z * y[3].z + x[3].w * y[3].w\n"
"    );\n"
"}\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"bvec2 lessThan (vec2 x, vec2 y) {\n"
"    return bvec2 (x.x < y.x, x.y < y.y);\n"
"}\n"
"bvec3 lessThan (vec3 x, vec3 y) {\n"
"    return bvec3 (x.x < y.x, x.y < y.y, x.z < y.z);\n"
"}\n"
"bvec4 lessThan (vec4 x, vec4 y) {\n"
"    return bvec4 (x.x < y.x, x.y < y.y, x.z < y.z, x.w < y.w);\n"
"}\n"
"bvec2 lessThan (ivec2 x, ivec2 y) {\n"
"    return bvec2 (x.x < y.x, x.y < y.y);\n"
"}\n"
"bvec3 lessThan (ivec3 x, ivec3 y) {\n"
"    return bvec3 (x.x < y.x, x.y < y.y, x.z < y.z);\n"
"}\n"
"bvec4 lessThan (ivec4 x, ivec4 y) {\n"
"    return bvec4 (x.x < y.x, x.y < y.y, x.z < y.z, x.w < y.w);\n"
"}\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"bvec2 lessThanEqual (vec2 x, vec2 y) {\n"
"    return bvec2 (x.x <= y.x, x.y <= y.y);\n"
"}\n"
"bvec3 lessThanEqual (vec3 x, vec3 y) {\n"
"    return bvec3 (x.x <= y.x, x.y <= y.y, x.z <= y.z);\n"
"}\n"
"bvec4 lessThanEqual (vec4 x, vec4 y) {\n"
"    return bvec4 (x.x <= y.x, x.y <= y.y, x.z <= y.z, x.w <= y.w);\n"
"}\n"
"bvec2 lessThanEqual (ivec2 x, ivec2 y) {\n"
"    return bvec2 (x.x <= y.x, x.y <= y.y);\n"
"}\n"
"bvec3 lessThanEqual (ivec3 x, ivec3 y) {\n"
"    return bvec3 (x.x <= y.x, x.y <= y.y, x.z <= y.z);\n"
"}\n"
"bvec4 lessThanEqual (ivec4 x, ivec4 y) {\n"
"    return bvec4 (x.x <= y.x, x.y <= y.y, x.z <= y.z, x.w <= y.w);\n"
"}\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"bvec2 greaterThan (vec2 x, vec2 y) {\n"
"    return bvec2 (x.x > y.x, x.y > y.y);\n"
"}\n"
"bvec3 greaterThan (vec3 x, vec3 y) {\n"
"    return bvec3 (x.x > y.x, x.y > y.y, x.z > y.z);\n"
"}\n"
"bvec4 greaterThan (vec4 x, vec4 y) {\n"
"    return bvec4 (x.x > y.x, x.y > y.y, x.z > y.z, x.w > y.w);\n"
"}\n"
"bvec2 greaterThan (ivec2 x, ivec2 y) {\n"
"    return bvec2 (x.x > y.x, x.y > y.y);\n"
"}\n"
"bvec3 greaterThan (ivec3 x, ivec3 y) {\n"
"    return bvec3 (x.x > y.x, x.y > y.y, x.z > y.z);\n"
"}\n"
"bvec4 greaterThan (ivec4 x, ivec4 y) {\n"
"    return bvec4 (x.x > y.x, x.y > y.y, x.z > y.z, x.w > y.w);\n"
"}\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"bvec2 greaterThanEqual (vec2 x, vec2 y) {\n"
"    return bvec2 (x.x >= y.x, x.y >= y.y);\n"
"}\n"
"bvec3 greaterThanEqual (vec3 x, vec3 y) {\n"
"    return bvec3 (x.x >= y.x, x.y >= y.y, x.z >= y.z);\n"
"}\n"
"bvec4 greaterThanEqual (vec4 x, vec4 y) {\n"
"    return bvec4 (x.x >= y.x, x.y >= y.y, x.z >= y.z, x.w >= y.w);\n"
"}\n"
"bvec2 greaterThanEqual (ivec2 x, ivec2 y) {\n"
"    return bvec2 (x.x >= y.x, x.y >= y.y);\n"
"}\n"
"bvec3 greaterThanEqual (ivec3 x, ivec3 y) {\n"
"    return bvec3 (x.x >= y.x, x.y >= y.y, x.z >= y.z);\n"
"}\n"
"bvec4 greaterThanEqual (ivec4 x, ivec4 y) {\n"
"    return bvec4 (x.x >= y.x, x.y >= y.y, x.z >= y.z, x.w >= y.w);\n"
"}\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"bvec2 equal (vec2 x, vec2 y) {\n"
"    return bvec2 (x.x == y.x, x.y == y.y);\n"
"}\n"
"bvec3 equal (vec3 x, vec3 y) {\n"
"    return bvec3 (x.x == y.x, x.y == y.y, x.z == y.z);\n"
"}\n"
"bvec4 equal (vec4 x, vec4 y) {\n"
"    return bvec4 (x.x == y.x, x.y == y.y, x.z == y.z, x.w == y.w);\n"
"}\n"
"bvec2 equal (ivec2 x, ivec2 y) {\n"
"    return bvec2 (x.x == y.x, x.y == y.y);\n"
"}\n"
"bvec3 equal (ivec3 x, ivec3 y) {\n"
"    return bvec3 (x.x == y.x, x.y == y.y, x.z == y.z);\n"
"}\n"
"bvec4 equal (ivec4 x, ivec4 y) {\n"
"    return bvec4 (x.x == y.x, x.y == y.y, x.z == y.z, x.w == y.w);\n"
"}\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"bvec2 notEqual (vec2 x, vec2 y) {\n"
"    return bvec2 (x.x != y.x, x.y != y.y);\n"
"}\n"
"bvec3 notEqual (vec3 x, vec3 y) {\n"
"    return bvec3 (x.x != y.x, x.y != y.y, x.z != y.z);\n"
"}\n"
"bvec4 notEqual (vec4 x, vec4 y) {\n"
"    return bvec4 (x.x != y.x, x.y != y.y, x.z != y.z, x.w != y.w);\n"
"}\n"
"bvec2 notEqual (ivec2 x, ivec2 y) {\n"
"    return bvec2 (x.x != y.x, x.y != y.y);\n"
"}\n"
"bvec3 notEqual (ivec3 x, ivec3 y) {\n"
"    return bvec3 (x.x != y.x, x.y != y.y, x.z != y.z);\n"
"}\n"
"bvec4 notEqual (ivec4 x, ivec4 y) {\n"
"    return bvec4 (x.x != y.x, x.y != y.y, x.z != y.z, x.w != y.w);\n"
"}\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"bool any (bvec2 x) {\n"
"    return x.x || x.y;\n"
"}\n"
"bool any (bvec3 x) {\n"
"    return x.x || x.y || x.z;\n"
"}\n"
"bool any (bvec4 x) {\n"
"    return x.x || x.y || x.z || x.w;\n"
"}\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"bool all (bvec2 x) {\n"
"    return x.x && x.y;\n"
"}\n"
"bool all (bvec3 x) {\n"
"    return x.x && x.y && x.z;\n"
"}\n"
"bool all (bvec4 x) {\n"
"    return x.x && x.y && x.z && x.w;\n"
"}\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"bvec2 not (bvec2 x) {\n"
"    return bvec2 (!x.x, !x.y);\n"
"}\n"
"bvec3 not (bvec3 x) {\n"
"    return bvec3 (!x.x, !x.y, !x.z);\n"
"}\n"
"bvec4 not (bvec4 x) {\n"
"    return bvec4 (!x.x, !x.y, !x.z, !x.w);\n"
"}\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"vec4 texture1D (sampler1D sampler, float coord) {\n"
"    return vec4 (0.0);\n"
"}\n"
"vec4 texture1DProj (sampler1D sampler, vec2 coord) {\n"
"    return texture1D (sampler, coord.s / coord.t);\n"
"}\n"
"vec4 texture1DProj (sampler1D sampler, vec4 coord) {\n"
"    return texture1D (sampler, coord.s / coord.q);\n"
"}\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"vec4 texture2D (sampler2D sampler, vec2 coord) {\n"
"    return vec4 (0.0);\n"
"}\n"
"vec4 texture2DProj (sampler2D sampler, vec3 coord) {\n"
"    return texture2D (sampler, vec2 (coord.s / coord.p, coord.t / coord.p));\n"
"}\n"
"vec4 texture2DProj (sampler2D sampler, vec4 coord) {\n"
"    return texture2D (sampler, vec2 (coord.s / coord.q, coord.t / coord.q));\n"
"}\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"vec4 texture3D (sampler3D sampler, vec3 coord) {\n"
"    return vec4 (0.0);\n"
"}\n"
"vec4 texture3DProj (sampler3D sampler, vec4 coord) {\n"
"    return texture3D (sampler, vec3 (coord.s / coord.q, coord.t / coord.q, coord.p / coord.q));\n"
"}\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"vec4 textureCube (samplerCube sampler, vec3 coord) {\n"
"    return vec4 (0.0);\n"
"}\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"vec4 shadow1D (sampler1DShadow sampler, vec3 coord) {\n"
"    return vec4 (0.0);\n"
"}\n"
"\n"
"vec4 shadow2D (sampler2DShadow sampler, vec3 coord) {\n"
"    return vec4 (0.0);\n"
"}\n"
"vec4 shadow1DProj (sampler1DShadow sampler, vec4 coord) {\n"
"    return shadow1D (sampler, vec3 (coord.s / coord.q, 0.0, coord.p / coord.q));\n"
"}\n"
"vec4 shadow2DProj (sampler2DShadow sampler, vec4 coord) {\n"
"    return shadow2D (sampler, vec3 (coord.s / coord.q, coord.t / coord.q, coord.p / coord.q));\n"
"}\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"float noise1 (float x) {\n"
"    return 0.0;\n"
"}\n"
"\n"
"float noise1 (vec2 x) {\n"
"    return 0.0;\n"
"}\n"
"\n"
"float noise1 (vec3 x) {\n"
"    return 0.0;\n"
"}\n"
"\n"
"float noise1 (vec4 x) {\n"
"    return 0.0;\n"
"}\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"vec2 noise2 (float x) {\n"
"    return vec2 (0.0);\n"
"}\n"
"\n"
"vec2 noise2 (vec2 x) {\n"
"    return vec2 (0.0);\n"
"}\n"
"\n"
"vec2 noise2 (vec3 x) {\n"
"    return vec2 (0.0);\n"
"}\n"
"\n"
"vec2 noise2 (vec4 x) {\n"
"    return vec2 (0.0);\n"
"}\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"vec3 noise3 (float x) {\n"
"    return vec3 (0.0);\n"
"}\n"
"\n"
"vec3 noise3 (vec2 x) {\n"
"    return vec3 (0.0);\n"
"}\n"
"\n"
"vec3 noise3 (vec3 x) {\n"
"    return vec3 (0.0);\n"
"}\n"
"\n"
"vec3 noise3 (vec4 x) {\n"
"    return vec3 (0.0);\n"
"}\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"vec4 noise4 (float x) {\n"
"    return vec4 (0.0);\n"
"}\n"
"\n"
"vec4 noise4 (vec2 x) {\n"
"    return vec4 (0.0);\n"
"}\n"
"\n"
"vec4 noise4 (vec3 x) {\n"
"    return vec4 (0.0);\n"
"}\n"
"\n"
"vec4 noise4 (vec4 x) {\n"
"    return vec4 (0.0);\n"
"}\n"
"\n"

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -