diff --git a/README.md b/README.md index c58a042..2a535bb 100644 --- a/README.md +++ b/README.md @@ -50,7 +50,8 @@ - [Portal](https://hifi.maki.cat/shaders/portal.fs) - [Portal Minimal](https://hifi.maki.cat/shaders/portalMinimal.fs) - [Reflective Sphere](https://hifi.maki.cat/shaders/reflectiveSphere.fs) -- [Stereo Image](https://hifi.maki.cat/shaders/stereoImage.fs) +- [Reflective Sphere](https://hifi.maki.cat/shaders/reflectiveSphere.fs) +- [SBS Image](https://hifi.maki.cat/shaders/sbsImage.fs) - [TV](https://hifi.maki.cat/shaders/tv.fs) - [Water](https://hifi.maki.cat/shaders/water.fs) diff --git a/shaders/sbsImage.fs b/shaders/sbsImage.fs new file mode 100644 index 0000000..18a7ec7 --- /dev/null +++ b/shaders/sbsImage.fs @@ -0,0 +1,41 @@ +/* +{ + "ProceduralEntity": { + "shaderUrl": "https://hifi.maki.cat/shaders/SBSimage.fs", + "channels": ["https://cutelab.space/u/V1RdYM.jpg"], + "uniforms": { + "alphaClipping": 0.5, + "fullbright": 0, + }, + "version": 3 + } +} +*/ + +uniform float alphaClipping = 0.5; +uniform float fullbright = 0; +uniform float specular = 0; + +float getProceduralFragment(inout ProceduralFragment frag) { + vec2 uv = _position.xy+0.5; + uv.y *= -1; + uv.x *= 0.5; + uv.x += cam_getStereoSide()*0.5; // right eye + + vec4 image = texture(iChannel0, uv).rgba; + if (image.a < alphaClipping) discard; + vec3 color = image.rgb; + + if (fullbright>0.5) { + frag.emissive = color; + frag.diffuse = vec3(0); + } else { + frag.diffuse = color; + } + + frag.specular = vec3(0); + frag.occlusion = 0; + frag.roughness = 1; + + return 0; +} \ No newline at end of file diff --git a/shaders/stereoImage.fs b/shaders/stereoImage.fs deleted file mode 100644 index 2d6b2d8..0000000 --- a/shaders/stereoImage.fs +++ /dev/null @@ -1,24 +0,0 @@ -/* -{ - "ProceduralEntity": { - "shaderUrl": "https://hifi.maki.cat/shaders/stereoImage.fs", - "channels": ["https://maki.cat/u/tW2hr1.jpg"], - "version": 2 - } -} -*/ - -float getProceduralColors(inout vec3 diffuse, inout vec3 specular, inout float shininess) { - vec2 uv = _position.xy; - uv.x = uv.x*0.5 + 0.25; - uv.y = uv.y*-1 + 0.5; - - uv.x += cam_getStereoSide()/2; - - vec3 color = texture(iChannel0, uv).xyz; - - diffuse = color.rgb; - specular = color.rgb; - shininess = 0; - return 1; -} \ No newline at end of file