-
-
Save ShopifyEng/cc1679cfb054f85c8689037e5d168f68 to your computer and use it in GitHub Desktop.
A World Rendered Beautifully: The Making of the BFCM 3D Data Visualization - shield.frag
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#define STANDARD | |
#ifdef PHYSICAL | |
#define REFLECTIVITY | |
#define CLEARCOAT | |
#define TRANSMISSION | |
#endif | |
uniform vec3 diffuse; | |
uniform vec3 emissive; | |
uniform float roughness; | |
uniform float metalness; | |
uniform float opacity; | |
#ifdef TRANSMISSION | |
uniform float transmission; | |
#endif | |
#ifdef REFLECTIVITY | |
uniform float reflectivity; | |
#endif | |
#ifdef CLEARCOAT | |
uniform float clearcoat; | |
uniform float clearcoatRoughness; | |
#endif | |
#ifdef USE_SHEEN | |
uniform vec3 sheen; | |
#endif | |
varying vec3 vViewPosition; | |
#ifndef FLAT_SHADED | |
varying vec3 vNormal; | |
#ifdef USE_TANGENT | |
varying vec3 vTangent; | |
varying vec3 vBitangent; | |
#endif | |
#endif | |
#include <common> | |
#include <packing> | |
#include <dithering_pars_fragment> | |
#include <color_pars_fragment> | |
#include <uv_pars_fragment> | |
#include <uv2_pars_fragment> | |
#include <map_pars_fragment> | |
#include <alphamap_pars_fragment> | |
#include <aomap_pars_fragment> | |
#include <lightmap_pars_fragment> | |
#include <emissivemap_pars_fragment> | |
#include <transmissionmap_pars_fragment> | |
#include <bsdfs> | |
#include <cube_uv_reflection_fragment> | |
#include <envmap_common_pars_fragment> | |
#include <envmap_physical_pars_fragment> | |
#include <fog_pars_fragment> | |
#include <lights_pars_begin> | |
#include <lights_physical_pars_fragment> | |
#include <shadowmap_pars_fragment> | |
#include <bumpmap_pars_fragment> | |
#include <normalmap_pars_fragment> | |
#include <clearcoat_pars_fragment> | |
#include <roughnessmap_pars_fragment> | |
#include <metalnessmap_pars_fragment> | |
#include <logdepthbuf_pars_fragment> | |
#include <clipping_planes_pars_fragment> | |
uniform float maxOpacity; | |
void main() { | |
#include <clipping_planes_fragment> | |
vec4 diffuseColor = vec4( diffuse, opacity ); | |
ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); | |
vec3 totalEmissiveRadiance = emissive; | |
#ifdef TRANSMISSION | |
float totalTransmission = transmission; | |
#endif | |
#include <logdepthbuf_fragment> | |
#include <map_fragment> | |
#include <color_fragment> | |
#include <alphamap_fragment> | |
#include <alphatest_fragment> | |
#include <roughnessmap_fragment> | |
#include <metalnessmap_fragment> | |
#include <normal_fragment_begin> | |
#include <normal_fragment_maps> | |
#include <clearcoat_normal_fragment_begin> | |
#include <clearcoat_normal_fragment_maps> | |
#include <emissivemap_fragment> | |
#include <transmissionmap_fragment> | |
#include <lights_physical_fragment> | |
#include <lights_fragment_begin> | |
#include <lights_fragment_maps> | |
#include <lights_fragment_end> | |
#include <aomap_fragment> | |
vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance; | |
#ifdef TRANSMISSION | |
diffuseColor.a *= saturate( 1. - totalTransmission + linearToRelativeLuminance( reflectedLight.directSpecular + reflectedLight.indirectSpecular ) ); | |
#endif | |
// Custom glsl start | |
float brightness = length(outgoingLight); | |
float alpha = mix(diffuseColor.a, maxOpacity, brightness); | |
// Custom glsl end | |
gl_FragColor = vec4(outgoingLight, alpha); | |
#include <tonemapping_fragment> | |
#include <encodings_fragment> | |
#include <fog_fragment> | |
#include <premultiplied_alpha_fragment> | |
#include <dithering_fragment> | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment