├── assets ├── meshes │ ├── lee.obj │ └── torus.obj └── textures │ ├── cubemap │ ├── cube_default.jpg │ ├── cube_default_column.jpg │ ├── grimmnight_large.jpg │ ├── interstellar_large.jpg │ ├── list.txt │ ├── miramar_large.jpg │ ├── stormydays_large.jpg │ ├── thumb_grimmnight_large.jpg │ ├── thumb_interstellar_large.jpg │ ├── thumb_miramar_large.jpg │ ├── thumb_stormydays_large.jpg │ ├── thumb_violentdays_large.jpg │ └── violentdays_large.jpg │ └── texture │ ├── ancientbrick_albedo.jpg │ ├── ancientbrick_height.jpg │ ├── ancientbrick_normal.jpg │ ├── cloud.png │ ├── grass.jpg │ ├── lava.jpg │ ├── leaf.png │ ├── lee.jpg │ ├── lee_normal.jpg │ ├── lee_spec.jpg │ ├── list.txt │ ├── noise.png │ ├── ocean_waves_normal1.jpg │ ├── ocean_waves_normal2.jpg │ ├── perlin_noise.jpg │ └── snow.jpg ├── css ├── external │ ├── font-awesome-4.3.0 │ │ ├── css │ │ │ ├── font-awesome.css │ │ │ └── font-awesome.min.css │ │ ├── fonts │ │ │ ├── FontAwesome.otf │ │ │ ├── fontawesome-webfont.eot │ │ │ ├── fontawesome-webfont.svg │ │ │ ├── fontawesome-webfont.ttf │ │ │ ├── fontawesome-webfont.woff │ │ │ └── fontawesome-webfont.woff2 │ │ ├── less │ │ │ ├── animated.less │ │ │ ├── bordered-pulled.less │ │ │ ├── core.less │ │ │ ├── fixed-width.less │ │ │ ├── font-awesome.less │ │ │ ├── icons.less │ │ │ ├── larger.less │ │ │ ├── list.less │ │ │ ├── mixins.less │ │ │ ├── path.less │ │ │ ├── rotated-flipped.less │ │ │ ├── stacked.less │ │ │ └── variables.less │ │ └── scss │ │ │ ├── _animated.scss │ │ │ ├── _bordered-pulled.scss │ │ │ ├── _core.scss │ │ │ ├── _fixed-width.scss │ │ │ ├── _icons.scss │ │ │ ├── _larger.scss │ │ │ ├── _list.scss │ │ │ ├── _mixins.scss │ │ │ ├── _path.scss │ │ │ ├── _rotated-flipped.scss │ │ │ ├── _stacked.scss │ │ │ ├── _variables.scss │ │ │ └── font-awesome.scss │ ├── highlight │ │ ├── default.css │ │ └── monokai_sublime.css │ ├── litegraph.css │ └── w2ui.dark1.css └── style.css ├── graphs ├── animated_material.json ├── animated_strips.json ├── complex.json ├── empty_graph.json ├── glass.json ├── lava.json ├── lava_blocks.json ├── leaf.json ├── lee.json ├── lee3.json ├── list.txt ├── material.json ├── reflection.json ├── rim_lighting.json ├── simple_smoothstep.json ├── stripes.json ├── stripes2.json ├── strips.json ├── terrain.json └── water.json ├── img ├── grid.png ├── light.png ├── rotation.png ├── rotation_min2.png ├── rotation_min3.png ├── scale.png ├── translate.png ├── translate_min2.png └── unselect.png ├── index.html ├── js ├── app.js ├── external │ ├── Canvas2DtoWebGL.js │ ├── dat.gui.js │ ├── ez.render.js │ ├── ez.render.min.js │ ├── gl-matrix.js │ ├── highlight.pack.js │ ├── jquery-2.1.1.min.js │ ├── litegl.js │ ├── litegraph.js │ ├── litegraph.min.js │ ├── nodes_for_shader_editor.js │ ├── nodes_for_shader_editor.min.js │ └── w2ui.cutted-1.4.2.js └── ui.js ├── readme.MD └── readme.html /assets/textures/cubemap/cube_default.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victhorlopez/ez-shader-editor/ef608a65bc107259595c902ca329314398348cfd/assets/textures/cubemap/cube_default.jpg -------------------------------------------------------------------------------- /assets/textures/cubemap/cube_default_column.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victhorlopez/ez-shader-editor/ef608a65bc107259595c902ca329314398348cfd/assets/textures/cubemap/cube_default_column.jpg -------------------------------------------------------------------------------- /assets/textures/cubemap/grimmnight_large.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victhorlopez/ez-shader-editor/ef608a65bc107259595c902ca329314398348cfd/assets/textures/cubemap/grimmnight_large.jpg -------------------------------------------------------------------------------- /assets/textures/cubemap/interstellar_large.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victhorlopez/ez-shader-editor/ef608a65bc107259595c902ca329314398348cfd/assets/textures/cubemap/interstellar_large.jpg -------------------------------------------------------------------------------- /assets/textures/cubemap/list.txt: -------------------------------------------------------------------------------- 1 | grimmnight_large.jpg 2 | miramar_large.jpg 3 | interstellar_large.jpg 4 | stormydays_large.jpg 5 | violentdays_large.jpg -------------------------------------------------------------------------------- /assets/textures/cubemap/miramar_large.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victhorlopez/ez-shader-editor/ef608a65bc107259595c902ca329314398348cfd/assets/textures/cubemap/miramar_large.jpg -------------------------------------------------------------------------------- /assets/textures/cubemap/stormydays_large.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victhorlopez/ez-shader-editor/ef608a65bc107259595c902ca329314398348cfd/assets/textures/cubemap/stormydays_large.jpg -------------------------------------------------------------------------------- /assets/textures/cubemap/thumb_grimmnight_large.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victhorlopez/ez-shader-editor/ef608a65bc107259595c902ca329314398348cfd/assets/textures/cubemap/thumb_grimmnight_large.jpg -------------------------------------------------------------------------------- /assets/textures/cubemap/thumb_interstellar_large.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victhorlopez/ez-shader-editor/ef608a65bc107259595c902ca329314398348cfd/assets/textures/cubemap/thumb_interstellar_large.jpg -------------------------------------------------------------------------------- /assets/textures/cubemap/thumb_miramar_large.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victhorlopez/ez-shader-editor/ef608a65bc107259595c902ca329314398348cfd/assets/textures/cubemap/thumb_miramar_large.jpg -------------------------------------------------------------------------------- /assets/textures/cubemap/thumb_stormydays_large.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victhorlopez/ez-shader-editor/ef608a65bc107259595c902ca329314398348cfd/assets/textures/cubemap/thumb_stormydays_large.jpg -------------------------------------------------------------------------------- /assets/textures/cubemap/thumb_violentdays_large.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victhorlopez/ez-shader-editor/ef608a65bc107259595c902ca329314398348cfd/assets/textures/cubemap/thumb_violentdays_large.jpg -------------------------------------------------------------------------------- /assets/textures/cubemap/violentdays_large.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victhorlopez/ez-shader-editor/ef608a65bc107259595c902ca329314398348cfd/assets/textures/cubemap/violentdays_large.jpg -------------------------------------------------------------------------------- /assets/textures/texture/ancientbrick_albedo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victhorlopez/ez-shader-editor/ef608a65bc107259595c902ca329314398348cfd/assets/textures/texture/ancientbrick_albedo.jpg -------------------------------------------------------------------------------- /assets/textures/texture/ancientbrick_height.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victhorlopez/ez-shader-editor/ef608a65bc107259595c902ca329314398348cfd/assets/textures/texture/ancientbrick_height.jpg -------------------------------------------------------------------------------- /assets/textures/texture/ancientbrick_normal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victhorlopez/ez-shader-editor/ef608a65bc107259595c902ca329314398348cfd/assets/textures/texture/ancientbrick_normal.jpg -------------------------------------------------------------------------------- /assets/textures/texture/cloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victhorlopez/ez-shader-editor/ef608a65bc107259595c902ca329314398348cfd/assets/textures/texture/cloud.png -------------------------------------------------------------------------------- /assets/textures/texture/grass.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victhorlopez/ez-shader-editor/ef608a65bc107259595c902ca329314398348cfd/assets/textures/texture/grass.jpg -------------------------------------------------------------------------------- /assets/textures/texture/lava.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victhorlopez/ez-shader-editor/ef608a65bc107259595c902ca329314398348cfd/assets/textures/texture/lava.jpg -------------------------------------------------------------------------------- /assets/textures/texture/leaf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victhorlopez/ez-shader-editor/ef608a65bc107259595c902ca329314398348cfd/assets/textures/texture/leaf.png -------------------------------------------------------------------------------- /assets/textures/texture/lee.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victhorlopez/ez-shader-editor/ef608a65bc107259595c902ca329314398348cfd/assets/textures/texture/lee.jpg -------------------------------------------------------------------------------- /assets/textures/texture/lee_normal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victhorlopez/ez-shader-editor/ef608a65bc107259595c902ca329314398348cfd/assets/textures/texture/lee_normal.jpg -------------------------------------------------------------------------------- /assets/textures/texture/lee_spec.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victhorlopez/ez-shader-editor/ef608a65bc107259595c902ca329314398348cfd/assets/textures/texture/lee_spec.jpg -------------------------------------------------------------------------------- /assets/textures/texture/list.txt: -------------------------------------------------------------------------------- 1 | lee.jpg 2 | lee_normal.jpg 3 | lee_spec.jpg 4 | grass.jpg 5 | ancientbrick_albedo.jpg 6 | ancientbrick_height.jpg 7 | ancientbrick_normal.jpg 8 | lava.jpg 9 | cloud.png 10 | ocean_waves_normal1.jpg 11 | ocean_waves_normal2.jpg 12 | perlin_noise.png 13 | leaf.png -------------------------------------------------------------------------------- /assets/textures/texture/noise.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victhorlopez/ez-shader-editor/ef608a65bc107259595c902ca329314398348cfd/assets/textures/texture/noise.png -------------------------------------------------------------------------------- /assets/textures/texture/ocean_waves_normal1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victhorlopez/ez-shader-editor/ef608a65bc107259595c902ca329314398348cfd/assets/textures/texture/ocean_waves_normal1.jpg -------------------------------------------------------------------------------- /assets/textures/texture/ocean_waves_normal2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victhorlopez/ez-shader-editor/ef608a65bc107259595c902ca329314398348cfd/assets/textures/texture/ocean_waves_normal2.jpg -------------------------------------------------------------------------------- /assets/textures/texture/perlin_noise.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victhorlopez/ez-shader-editor/ef608a65bc107259595c902ca329314398348cfd/assets/textures/texture/perlin_noise.jpg -------------------------------------------------------------------------------- /assets/textures/texture/snow.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victhorlopez/ez-shader-editor/ef608a65bc107259595c902ca329314398348cfd/assets/textures/texture/snow.jpg -------------------------------------------------------------------------------- /css/external/font-awesome-4.3.0/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victhorlopez/ez-shader-editor/ef608a65bc107259595c902ca329314398348cfd/css/external/font-awesome-4.3.0/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /css/external/font-awesome-4.3.0/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victhorlopez/ez-shader-editor/ef608a65bc107259595c902ca329314398348cfd/css/external/font-awesome-4.3.0/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /css/external/font-awesome-4.3.0/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victhorlopez/ez-shader-editor/ef608a65bc107259595c902ca329314398348cfd/css/external/font-awesome-4.3.0/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /css/external/font-awesome-4.3.0/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victhorlopez/ez-shader-editor/ef608a65bc107259595c902ca329314398348cfd/css/external/font-awesome-4.3.0/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /css/external/font-awesome-4.3.0/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victhorlopez/ez-shader-editor/ef608a65bc107259595c902ca329314398348cfd/css/external/font-awesome-4.3.0/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /css/external/font-awesome-4.3.0/less/animated.less: -------------------------------------------------------------------------------- 1 | // Animated Icons 2 | // -------------------------- 3 | 4 | .@{fa-css-prefix}-spin { 5 | -webkit-animation: fa-spin 2s infinite linear; 6 | animation: fa-spin 2s infinite linear; 7 | } 8 | 9 | .@{fa-css-prefix}-pulse { 10 | -webkit-animation: fa-spin 1s infinite steps(8); 11 | animation: fa-spin 1s infinite steps(8); 12 | } 13 | 14 | @-webkit-keyframes fa-spin { 15 | 0% { 16 | -webkit-transform: rotate(0deg); 17 | transform: rotate(0deg); 18 | } 19 | 100% { 20 | -webkit-transform: rotate(359deg); 21 | transform: rotate(359deg); 22 | } 23 | } 24 | 25 | @keyframes fa-spin { 26 | 0% { 27 | -webkit-transform: rotate(0deg); 28 | transform: rotate(0deg); 29 | } 30 | 100% { 31 | -webkit-transform: rotate(359deg); 32 | transform: rotate(359deg); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /css/external/font-awesome-4.3.0/less/bordered-pulled.less: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-border { 5 | padding: .2em .25em .15em; 6 | border: solid .08em @fa-border-color; 7 | border-radius: .1em; 8 | } 9 | 10 | .pull-right { float: right; } 11 | .pull-left { float: left; } 12 | 13 | .@{fa-css-prefix} { 14 | &.pull-left { margin-right: .3em; } 15 | &.pull-right { margin-left: .3em; } 16 | } 17 | -------------------------------------------------------------------------------- /css/external/font-awesome-4.3.0/less/core.less: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix} { 5 | display: inline-block; 6 | font: normal normal normal @fa-font-size-base/1 FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | transform: translate(0, 0); // ensures no half-pixel rendering in firefox 12 | 13 | } 14 | -------------------------------------------------------------------------------- /css/external/font-awesome-4.3.0/less/fixed-width.less: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .@{fa-css-prefix}-fw { 4 | width: (18em / 14); 5 | text-align: center; 6 | } 7 | -------------------------------------------------------------------------------- /css/external/font-awesome-4.3.0/less/font-awesome.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */ 5 | 6 | @import "variables.less"; 7 | @import "mixins.less"; 8 | @import "path.less"; 9 | @import "core.less"; 10 | @import "larger.less"; 11 | @import "fixed-width.less"; 12 | @import "list.less"; 13 | @import "bordered-pulled.less"; 14 | @import "animated.less"; 15 | @import "rotated-flipped.less"; 16 | @import "stacked.less"; 17 | @import "icons.less"; 18 | -------------------------------------------------------------------------------- /css/external/font-awesome-4.3.0/less/larger.less: -------------------------------------------------------------------------------- 1 | // Icon Sizes 2 | // ------------------------- 3 | 4 | /* makes the font 33% larger relative to the icon container */ 5 | .@{fa-css-prefix}-lg { 6 | font-size: (4em / 3); 7 | line-height: (3em / 4); 8 | vertical-align: -15%; 9 | } 10 | .@{fa-css-prefix}-2x { font-size: 2em; } 11 | .@{fa-css-prefix}-3x { font-size: 3em; } 12 | .@{fa-css-prefix}-4x { font-size: 4em; } 13 | .@{fa-css-prefix}-5x { font-size: 5em; } 14 | -------------------------------------------------------------------------------- /css/external/font-awesome-4.3.0/less/list.less: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-ul { 5 | padding-left: 0; 6 | margin-left: @fa-li-width; 7 | list-style-type: none; 8 | > li { position: relative; } 9 | } 10 | .@{fa-css-prefix}-li { 11 | position: absolute; 12 | left: -@fa-li-width; 13 | width: @fa-li-width; 14 | top: (2em / 14); 15 | text-align: center; 16 | &.@{fa-css-prefix}-lg { 17 | left: (-@fa-li-width + (4em / 14)); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /css/external/font-awesome-4.3.0/less/mixins.less: -------------------------------------------------------------------------------- 1 | // Mixins 2 | // -------------------------- 3 | 4 | .fa-icon() { 5 | display: inline-block; 6 | font: normal normal normal @fa-font-size-base/1 FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | transform: translate(0, 0); // ensures no half-pixel rendering in firefox 12 | 13 | } 14 | 15 | .fa-icon-rotate(@degrees, @rotation) { 16 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=@rotation); 17 | -webkit-transform: rotate(@degrees); 18 | -ms-transform: rotate(@degrees); 19 | transform: rotate(@degrees); 20 | } 21 | 22 | .fa-icon-flip(@horiz, @vert, @rotation) { 23 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=@rotation, mirror=1); 24 | -webkit-transform: scale(@horiz, @vert); 25 | -ms-transform: scale(@horiz, @vert); 26 | transform: scale(@horiz, @vert); 27 | } 28 | -------------------------------------------------------------------------------- /css/external/font-awesome-4.3.0/less/path.less: -------------------------------------------------------------------------------- 1 | /* FONT PATH 2 | * -------------------------- */ 3 | 4 | @font-face { 5 | font-family: 'FontAwesome'; 6 | src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}'); 7 | src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'), 8 | url('@{fa-font-path}/fontawesome-webfont.woff2?v=@{fa-version}') format('woff2'), 9 | url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'), 10 | url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'), 11 | url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg'); 12 | // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts 13 | font-weight: normal; 14 | font-style: normal; 15 | } 16 | -------------------------------------------------------------------------------- /css/external/font-awesome-4.3.0/less/rotated-flipped.less: -------------------------------------------------------------------------------- 1 | // Rotated & Flipped Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); } 5 | .@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); } 6 | .@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); } 7 | 8 | .@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); } 9 | .@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); } 10 | 11 | // Hook for IE8-9 12 | // ------------------------- 13 | 14 | :root .@{fa-css-prefix}-rotate-90, 15 | :root .@{fa-css-prefix}-rotate-180, 16 | :root .@{fa-css-prefix}-rotate-270, 17 | :root .@{fa-css-prefix}-flip-horizontal, 18 | :root .@{fa-css-prefix}-flip-vertical { 19 | filter: none; 20 | } 21 | -------------------------------------------------------------------------------- /css/external/font-awesome-4.3.0/less/stacked.less: -------------------------------------------------------------------------------- 1 | // Stacked Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-stack { 5 | position: relative; 6 | display: inline-block; 7 | width: 2em; 8 | height: 2em; 9 | line-height: 2em; 10 | vertical-align: middle; 11 | } 12 | .@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x { 13 | position: absolute; 14 | left: 0; 15 | width: 100%; 16 | text-align: center; 17 | } 18 | .@{fa-css-prefix}-stack-1x { line-height: inherit; } 19 | .@{fa-css-prefix}-stack-2x { font-size: 2em; } 20 | .@{fa-css-prefix}-inverse { color: @fa-inverse; } 21 | -------------------------------------------------------------------------------- /css/external/font-awesome-4.3.0/less/variables.less: -------------------------------------------------------------------------------- 1 | // Variables 2 | // -------------------------- 3 | 4 | @fa-font-path: "../fonts"; 5 | @fa-font-size-base: 14px; 6 | //@fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.3.0/fonts"; // for referencing Bootstrap CDN font files directly 7 | @fa-css-prefix: fa; 8 | @fa-version: "4.3.0"; 9 | @fa-border-color: #eee; 10 | @fa-inverse: #fff; 11 | @fa-li-width: (30em / 14); 12 | 13 | @fa-var-adjust: "\f042"; 14 | @fa-var-adn: "\f170"; 15 | @fa-var-align-center: "\f037"; 16 | @fa-var-align-justify: "\f039"; 17 | @fa-var-align-left: "\f036"; 18 | @fa-var-align-right: "\f038"; 19 | @fa-var-ambulance: "\f0f9"; 20 | @fa-var-anchor: "\f13d"; 21 | @fa-var-android: "\f17b"; 22 | @fa-var-angellist: "\f209"; 23 | @fa-var-angle-double-down: "\f103"; 24 | @fa-var-angle-double-left: "\f100"; 25 | @fa-var-angle-double-right: "\f101"; 26 | @fa-var-angle-double-up: "\f102"; 27 | @fa-var-angle-down: "\f107"; 28 | @fa-var-angle-left: "\f104"; 29 | @fa-var-angle-right: "\f105"; 30 | @fa-var-angle-up: "\f106"; 31 | @fa-var-apple: "\f179"; 32 | @fa-var-archive: "\f187"; 33 | @fa-var-area-chart: "\f1fe"; 34 | @fa-var-arrow-circle-down: "\f0ab"; 35 | @fa-var-arrow-circle-left: "\f0a8"; 36 | @fa-var-arrow-circle-o-down: "\f01a"; 37 | @fa-var-arrow-circle-o-left: "\f190"; 38 | @fa-var-arrow-circle-o-right: "\f18e"; 39 | @fa-var-arrow-circle-o-up: "\f01b"; 40 | @fa-var-arrow-circle-right: "\f0a9"; 41 | @fa-var-arrow-circle-up: "\f0aa"; 42 | @fa-var-arrow-down: "\f063"; 43 | @fa-var-arrow-left: "\f060"; 44 | @fa-var-arrow-right: "\f061"; 45 | @fa-var-arrow-up: "\f062"; 46 | @fa-var-arrows: "\f047"; 47 | @fa-var-arrows-alt: "\f0b2"; 48 | @fa-var-arrows-h: "\f07e"; 49 | @fa-var-arrows-v: "\f07d"; 50 | @fa-var-asterisk: "\f069"; 51 | @fa-var-at: "\f1fa"; 52 | @fa-var-automobile: "\f1b9"; 53 | @fa-var-backward: "\f04a"; 54 | @fa-var-ban: "\f05e"; 55 | @fa-var-bank: "\f19c"; 56 | @fa-var-bar-chart: "\f080"; 57 | @fa-var-bar-chart-o: "\f080"; 58 | @fa-var-barcode: "\f02a"; 59 | @fa-var-bars: "\f0c9"; 60 | @fa-var-bed: "\f236"; 61 | @fa-var-beer: "\f0fc"; 62 | @fa-var-behance: "\f1b4"; 63 | @fa-var-behance-square: "\f1b5"; 64 | @fa-var-bell: "\f0f3"; 65 | @fa-var-bell-o: "\f0a2"; 66 | @fa-var-bell-slash: "\f1f6"; 67 | @fa-var-bell-slash-o: "\f1f7"; 68 | @fa-var-bicycle: "\f206"; 69 | @fa-var-binoculars: "\f1e5"; 70 | @fa-var-birthday-cake: "\f1fd"; 71 | @fa-var-bitbucket: "\f171"; 72 | @fa-var-bitbucket-square: "\f172"; 73 | @fa-var-bitcoin: "\f15a"; 74 | @fa-var-bold: "\f032"; 75 | @fa-var-bolt: "\f0e7"; 76 | @fa-var-bomb: "\f1e2"; 77 | @fa-var-book: "\f02d"; 78 | @fa-var-bookmark: "\f02e"; 79 | @fa-var-bookmark-o: "\f097"; 80 | @fa-var-briefcase: "\f0b1"; 81 | @fa-var-btc: "\f15a"; 82 | @fa-var-bug: "\f188"; 83 | @fa-var-building: "\f1ad"; 84 | @fa-var-building-o: "\f0f7"; 85 | @fa-var-bullhorn: "\f0a1"; 86 | @fa-var-bullseye: "\f140"; 87 | @fa-var-bus: "\f207"; 88 | @fa-var-buysellads: "\f20d"; 89 | @fa-var-cab: "\f1ba"; 90 | @fa-var-calculator: "\f1ec"; 91 | @fa-var-calendar: "\f073"; 92 | @fa-var-calendar-o: "\f133"; 93 | @fa-var-camera: "\f030"; 94 | @fa-var-camera-retro: "\f083"; 95 | @fa-var-car: "\f1b9"; 96 | @fa-var-caret-down: "\f0d7"; 97 | @fa-var-caret-left: "\f0d9"; 98 | @fa-var-caret-right: "\f0da"; 99 | @fa-var-caret-square-o-down: "\f150"; 100 | @fa-var-caret-square-o-left: "\f191"; 101 | @fa-var-caret-square-o-right: "\f152"; 102 | @fa-var-caret-square-o-up: "\f151"; 103 | @fa-var-caret-up: "\f0d8"; 104 | @fa-var-cart-arrow-down: "\f218"; 105 | @fa-var-cart-plus: "\f217"; 106 | @fa-var-cc: "\f20a"; 107 | @fa-var-cc-amex: "\f1f3"; 108 | @fa-var-cc-discover: "\f1f2"; 109 | @fa-var-cc-mastercard: "\f1f1"; 110 | @fa-var-cc-paypal: "\f1f4"; 111 | @fa-var-cc-stripe: "\f1f5"; 112 | @fa-var-cc-visa: "\f1f0"; 113 | @fa-var-certificate: "\f0a3"; 114 | @fa-var-chain: "\f0c1"; 115 | @fa-var-chain-broken: "\f127"; 116 | @fa-var-check: "\f00c"; 117 | @fa-var-check-circle: "\f058"; 118 | @fa-var-check-circle-o: "\f05d"; 119 | @fa-var-check-square: "\f14a"; 120 | @fa-var-check-square-o: "\f046"; 121 | @fa-var-chevron-circle-down: "\f13a"; 122 | @fa-var-chevron-circle-left: "\f137"; 123 | @fa-var-chevron-circle-right: "\f138"; 124 | @fa-var-chevron-circle-up: "\f139"; 125 | @fa-var-chevron-down: "\f078"; 126 | @fa-var-chevron-left: "\f053"; 127 | @fa-var-chevron-right: "\f054"; 128 | @fa-var-chevron-up: "\f077"; 129 | @fa-var-child: "\f1ae"; 130 | @fa-var-circle: "\f111"; 131 | @fa-var-circle-o: "\f10c"; 132 | @fa-var-circle-o-notch: "\f1ce"; 133 | @fa-var-circle-thin: "\f1db"; 134 | @fa-var-clipboard: "\f0ea"; 135 | @fa-var-clock-o: "\f017"; 136 | @fa-var-close: "\f00d"; 137 | @fa-var-cloud: "\f0c2"; 138 | @fa-var-cloud-download: "\f0ed"; 139 | @fa-var-cloud-upload: "\f0ee"; 140 | @fa-var-cny: "\f157"; 141 | @fa-var-code: "\f121"; 142 | @fa-var-code-fork: "\f126"; 143 | @fa-var-codepen: "\f1cb"; 144 | @fa-var-coffee: "\f0f4"; 145 | @fa-var-cog: "\f013"; 146 | @fa-var-cogs: "\f085"; 147 | @fa-var-columns: "\f0db"; 148 | @fa-var-comment: "\f075"; 149 | @fa-var-comment-o: "\f0e5"; 150 | @fa-var-comments: "\f086"; 151 | @fa-var-comments-o: "\f0e6"; 152 | @fa-var-compass: "\f14e"; 153 | @fa-var-compress: "\f066"; 154 | @fa-var-connectdevelop: "\f20e"; 155 | @fa-var-copy: "\f0c5"; 156 | @fa-var-copyright: "\f1f9"; 157 | @fa-var-credit-card: "\f09d"; 158 | @fa-var-crop: "\f125"; 159 | @fa-var-crosshairs: "\f05b"; 160 | @fa-var-css3: "\f13c"; 161 | @fa-var-cube: "\f1b2"; 162 | @fa-var-cubes: "\f1b3"; 163 | @fa-var-cut: "\f0c4"; 164 | @fa-var-cutlery: "\f0f5"; 165 | @fa-var-dashboard: "\f0e4"; 166 | @fa-var-dashcube: "\f210"; 167 | @fa-var-database: "\f1c0"; 168 | @fa-var-dedent: "\f03b"; 169 | @fa-var-delicious: "\f1a5"; 170 | @fa-var-desktop: "\f108"; 171 | @fa-var-deviantart: "\f1bd"; 172 | @fa-var-diamond: "\f219"; 173 | @fa-var-digg: "\f1a6"; 174 | @fa-var-dollar: "\f155"; 175 | @fa-var-dot-circle-o: "\f192"; 176 | @fa-var-download: "\f019"; 177 | @fa-var-dribbble: "\f17d"; 178 | @fa-var-dropbox: "\f16b"; 179 | @fa-var-drupal: "\f1a9"; 180 | @fa-var-edit: "\f044"; 181 | @fa-var-eject: "\f052"; 182 | @fa-var-ellipsis-h: "\f141"; 183 | @fa-var-ellipsis-v: "\f142"; 184 | @fa-var-empire: "\f1d1"; 185 | @fa-var-envelope: "\f0e0"; 186 | @fa-var-envelope-o: "\f003"; 187 | @fa-var-envelope-square: "\f199"; 188 | @fa-var-eraser: "\f12d"; 189 | @fa-var-eur: "\f153"; 190 | @fa-var-euro: "\f153"; 191 | @fa-var-exchange: "\f0ec"; 192 | @fa-var-exclamation: "\f12a"; 193 | @fa-var-exclamation-circle: "\f06a"; 194 | @fa-var-exclamation-triangle: "\f071"; 195 | @fa-var-expand: "\f065"; 196 | @fa-var-external-link: "\f08e"; 197 | @fa-var-external-link-square: "\f14c"; 198 | @fa-var-eye: "\f06e"; 199 | @fa-var-eye-slash: "\f070"; 200 | @fa-var-eyedropper: "\f1fb"; 201 | @fa-var-facebook: "\f09a"; 202 | @fa-var-facebook-f: "\f09a"; 203 | @fa-var-facebook-official: "\f230"; 204 | @fa-var-facebook-square: "\f082"; 205 | @fa-var-fast-backward: "\f049"; 206 | @fa-var-fast-forward: "\f050"; 207 | @fa-var-fax: "\f1ac"; 208 | @fa-var-female: "\f182"; 209 | @fa-var-fighter-jet: "\f0fb"; 210 | @fa-var-file: "\f15b"; 211 | @fa-var-file-archive-o: "\f1c6"; 212 | @fa-var-file-audio-o: "\f1c7"; 213 | @fa-var-file-code-o: "\f1c9"; 214 | @fa-var-file-excel-o: "\f1c3"; 215 | @fa-var-file-image-o: "\f1c5"; 216 | @fa-var-file-movie-o: "\f1c8"; 217 | @fa-var-file-o: "\f016"; 218 | @fa-var-file-pdf-o: "\f1c1"; 219 | @fa-var-file-photo-o: "\f1c5"; 220 | @fa-var-file-picture-o: "\f1c5"; 221 | @fa-var-file-powerpoint-o: "\f1c4"; 222 | @fa-var-file-sound-o: "\f1c7"; 223 | @fa-var-file-text: "\f15c"; 224 | @fa-var-file-text-o: "\f0f6"; 225 | @fa-var-file-video-o: "\f1c8"; 226 | @fa-var-file-word-o: "\f1c2"; 227 | @fa-var-file-zip-o: "\f1c6"; 228 | @fa-var-files-o: "\f0c5"; 229 | @fa-var-film: "\f008"; 230 | @fa-var-filter: "\f0b0"; 231 | @fa-var-fire: "\f06d"; 232 | @fa-var-fire-extinguisher: "\f134"; 233 | @fa-var-flag: "\f024"; 234 | @fa-var-flag-checkered: "\f11e"; 235 | @fa-var-flag-o: "\f11d"; 236 | @fa-var-flash: "\f0e7"; 237 | @fa-var-flask: "\f0c3"; 238 | @fa-var-flickr: "\f16e"; 239 | @fa-var-floppy-o: "\f0c7"; 240 | @fa-var-folder: "\f07b"; 241 | @fa-var-folder-o: "\f114"; 242 | @fa-var-folder-open: "\f07c"; 243 | @fa-var-folder-open-o: "\f115"; 244 | @fa-var-font: "\f031"; 245 | @fa-var-forumbee: "\f211"; 246 | @fa-var-forward: "\f04e"; 247 | @fa-var-foursquare: "\f180"; 248 | @fa-var-frown-o: "\f119"; 249 | @fa-var-futbol-o: "\f1e3"; 250 | @fa-var-gamepad: "\f11b"; 251 | @fa-var-gavel: "\f0e3"; 252 | @fa-var-gbp: "\f154"; 253 | @fa-var-ge: "\f1d1"; 254 | @fa-var-gear: "\f013"; 255 | @fa-var-gears: "\f085"; 256 | @fa-var-genderless: "\f1db"; 257 | @fa-var-gift: "\f06b"; 258 | @fa-var-git: "\f1d3"; 259 | @fa-var-git-square: "\f1d2"; 260 | @fa-var-github: "\f09b"; 261 | @fa-var-github-alt: "\f113"; 262 | @fa-var-github-square: "\f092"; 263 | @fa-var-gittip: "\f184"; 264 | @fa-var-glass: "\f000"; 265 | @fa-var-globe: "\f0ac"; 266 | @fa-var-google: "\f1a0"; 267 | @fa-var-google-plus: "\f0d5"; 268 | @fa-var-google-plus-square: "\f0d4"; 269 | @fa-var-google-wallet: "\f1ee"; 270 | @fa-var-graduation-cap: "\f19d"; 271 | @fa-var-gratipay: "\f184"; 272 | @fa-var-group: "\f0c0"; 273 | @fa-var-h-square: "\f0fd"; 274 | @fa-var-hacker-news: "\f1d4"; 275 | @fa-var-hand-o-down: "\f0a7"; 276 | @fa-var-hand-o-left: "\f0a5"; 277 | @fa-var-hand-o-right: "\f0a4"; 278 | @fa-var-hand-o-up: "\f0a6"; 279 | @fa-var-hdd-o: "\f0a0"; 280 | @fa-var-header: "\f1dc"; 281 | @fa-var-headphones: "\f025"; 282 | @fa-var-heart: "\f004"; 283 | @fa-var-heart-o: "\f08a"; 284 | @fa-var-heartbeat: "\f21e"; 285 | @fa-var-history: "\f1da"; 286 | @fa-var-home: "\f015"; 287 | @fa-var-hospital-o: "\f0f8"; 288 | @fa-var-hotel: "\f236"; 289 | @fa-var-html5: "\f13b"; 290 | @fa-var-ils: "\f20b"; 291 | @fa-var-image: "\f03e"; 292 | @fa-var-inbox: "\f01c"; 293 | @fa-var-indent: "\f03c"; 294 | @fa-var-info: "\f129"; 295 | @fa-var-info-circle: "\f05a"; 296 | @fa-var-inr: "\f156"; 297 | @fa-var-instagram: "\f16d"; 298 | @fa-var-institution: "\f19c"; 299 | @fa-var-ioxhost: "\f208"; 300 | @fa-var-italic: "\f033"; 301 | @fa-var-joomla: "\f1aa"; 302 | @fa-var-jpy: "\f157"; 303 | @fa-var-jsfiddle: "\f1cc"; 304 | @fa-var-key: "\f084"; 305 | @fa-var-keyboard-o: "\f11c"; 306 | @fa-var-krw: "\f159"; 307 | @fa-var-language: "\f1ab"; 308 | @fa-var-laptop: "\f109"; 309 | @fa-var-lastfm: "\f202"; 310 | @fa-var-lastfm-square: "\f203"; 311 | @fa-var-leaf: "\f06c"; 312 | @fa-var-leanpub: "\f212"; 313 | @fa-var-legal: "\f0e3"; 314 | @fa-var-lemon-o: "\f094"; 315 | @fa-var-level-down: "\f149"; 316 | @fa-var-level-up: "\f148"; 317 | @fa-var-life-bouy: "\f1cd"; 318 | @fa-var-life-buoy: "\f1cd"; 319 | @fa-var-life-ring: "\f1cd"; 320 | @fa-var-life-saver: "\f1cd"; 321 | @fa-var-lightbulb-o: "\f0eb"; 322 | @fa-var-line-chart: "\f201"; 323 | @fa-var-link: "\f0c1"; 324 | @fa-var-linkedin: "\f0e1"; 325 | @fa-var-linkedin-square: "\f08c"; 326 | @fa-var-linux: "\f17c"; 327 | @fa-var-list: "\f03a"; 328 | @fa-var-list-alt: "\f022"; 329 | @fa-var-list-ol: "\f0cb"; 330 | @fa-var-list-ul: "\f0ca"; 331 | @fa-var-location-arrow: "\f124"; 332 | @fa-var-lock: "\f023"; 333 | @fa-var-long-arrow-down: "\f175"; 334 | @fa-var-long-arrow-left: "\f177"; 335 | @fa-var-long-arrow-right: "\f178"; 336 | @fa-var-long-arrow-up: "\f176"; 337 | @fa-var-magic: "\f0d0"; 338 | @fa-var-magnet: "\f076"; 339 | @fa-var-mail-forward: "\f064"; 340 | @fa-var-mail-reply: "\f112"; 341 | @fa-var-mail-reply-all: "\f122"; 342 | @fa-var-male: "\f183"; 343 | @fa-var-map-marker: "\f041"; 344 | @fa-var-mars: "\f222"; 345 | @fa-var-mars-double: "\f227"; 346 | @fa-var-mars-stroke: "\f229"; 347 | @fa-var-mars-stroke-h: "\f22b"; 348 | @fa-var-mars-stroke-v: "\f22a"; 349 | @fa-var-maxcdn: "\f136"; 350 | @fa-var-meanpath: "\f20c"; 351 | @fa-var-medium: "\f23a"; 352 | @fa-var-medkit: "\f0fa"; 353 | @fa-var-meh-o: "\f11a"; 354 | @fa-var-mercury: "\f223"; 355 | @fa-var-microphone: "\f130"; 356 | @fa-var-microphone-slash: "\f131"; 357 | @fa-var-minus: "\f068"; 358 | @fa-var-minus-circle: "\f056"; 359 | @fa-var-minus-square: "\f146"; 360 | @fa-var-minus-square-o: "\f147"; 361 | @fa-var-mobile: "\f10b"; 362 | @fa-var-mobile-phone: "\f10b"; 363 | @fa-var-money: "\f0d6"; 364 | @fa-var-moon-o: "\f186"; 365 | @fa-var-mortar-board: "\f19d"; 366 | @fa-var-motorcycle: "\f21c"; 367 | @fa-var-music: "\f001"; 368 | @fa-var-navicon: "\f0c9"; 369 | @fa-var-neuter: "\f22c"; 370 | @fa-var-newspaper-o: "\f1ea"; 371 | @fa-var-openid: "\f19b"; 372 | @fa-var-outdent: "\f03b"; 373 | @fa-var-pagelines: "\f18c"; 374 | @fa-var-paint-brush: "\f1fc"; 375 | @fa-var-paper-plane: "\f1d8"; 376 | @fa-var-paper-plane-o: "\f1d9"; 377 | @fa-var-paperclip: "\f0c6"; 378 | @fa-var-paragraph: "\f1dd"; 379 | @fa-var-paste: "\f0ea"; 380 | @fa-var-pause: "\f04c"; 381 | @fa-var-paw: "\f1b0"; 382 | @fa-var-paypal: "\f1ed"; 383 | @fa-var-pencil: "\f040"; 384 | @fa-var-pencil-square: "\f14b"; 385 | @fa-var-pencil-square-o: "\f044"; 386 | @fa-var-phone: "\f095"; 387 | @fa-var-phone-square: "\f098"; 388 | @fa-var-photo: "\f03e"; 389 | @fa-var-picture-o: "\f03e"; 390 | @fa-var-pie-chart: "\f200"; 391 | @fa-var-pied-piper: "\f1a7"; 392 | @fa-var-pied-piper-alt: "\f1a8"; 393 | @fa-var-pinterest: "\f0d2"; 394 | @fa-var-pinterest-p: "\f231"; 395 | @fa-var-pinterest-square: "\f0d3"; 396 | @fa-var-plane: "\f072"; 397 | @fa-var-play: "\f04b"; 398 | @fa-var-play-circle: "\f144"; 399 | @fa-var-play-circle-o: "\f01d"; 400 | @fa-var-plug: "\f1e6"; 401 | @fa-var-plus: "\f067"; 402 | @fa-var-plus-circle: "\f055"; 403 | @fa-var-plus-square: "\f0fe"; 404 | @fa-var-plus-square-o: "\f196"; 405 | @fa-var-power-off: "\f011"; 406 | @fa-var-print: "\f02f"; 407 | @fa-var-puzzle-piece: "\f12e"; 408 | @fa-var-qq: "\f1d6"; 409 | @fa-var-qrcode: "\f029"; 410 | @fa-var-question: "\f128"; 411 | @fa-var-question-circle: "\f059"; 412 | @fa-var-quote-left: "\f10d"; 413 | @fa-var-quote-right: "\f10e"; 414 | @fa-var-ra: "\f1d0"; 415 | @fa-var-random: "\f074"; 416 | @fa-var-rebel: "\f1d0"; 417 | @fa-var-recycle: "\f1b8"; 418 | @fa-var-reddit: "\f1a1"; 419 | @fa-var-reddit-square: "\f1a2"; 420 | @fa-var-refresh: "\f021"; 421 | @fa-var-remove: "\f00d"; 422 | @fa-var-renren: "\f18b"; 423 | @fa-var-reorder: "\f0c9"; 424 | @fa-var-repeat: "\f01e"; 425 | @fa-var-reply: "\f112"; 426 | @fa-var-reply-all: "\f122"; 427 | @fa-var-retweet: "\f079"; 428 | @fa-var-rmb: "\f157"; 429 | @fa-var-road: "\f018"; 430 | @fa-var-rocket: "\f135"; 431 | @fa-var-rotate-left: "\f0e2"; 432 | @fa-var-rotate-right: "\f01e"; 433 | @fa-var-rouble: "\f158"; 434 | @fa-var-rss: "\f09e"; 435 | @fa-var-rss-square: "\f143"; 436 | @fa-var-rub: "\f158"; 437 | @fa-var-ruble: "\f158"; 438 | @fa-var-rupee: "\f156"; 439 | @fa-var-save: "\f0c7"; 440 | @fa-var-scissors: "\f0c4"; 441 | @fa-var-search: "\f002"; 442 | @fa-var-search-minus: "\f010"; 443 | @fa-var-search-plus: "\f00e"; 444 | @fa-var-sellsy: "\f213"; 445 | @fa-var-send: "\f1d8"; 446 | @fa-var-send-o: "\f1d9"; 447 | @fa-var-server: "\f233"; 448 | @fa-var-share: "\f064"; 449 | @fa-var-share-alt: "\f1e0"; 450 | @fa-var-share-alt-square: "\f1e1"; 451 | @fa-var-share-square: "\f14d"; 452 | @fa-var-share-square-o: "\f045"; 453 | @fa-var-shekel: "\f20b"; 454 | @fa-var-sheqel: "\f20b"; 455 | @fa-var-shield: "\f132"; 456 | @fa-var-ship: "\f21a"; 457 | @fa-var-shirtsinbulk: "\f214"; 458 | @fa-var-shopping-cart: "\f07a"; 459 | @fa-var-sign-in: "\f090"; 460 | @fa-var-sign-out: "\f08b"; 461 | @fa-var-signal: "\f012"; 462 | @fa-var-simplybuilt: "\f215"; 463 | @fa-var-sitemap: "\f0e8"; 464 | @fa-var-skyatlas: "\f216"; 465 | @fa-var-skype: "\f17e"; 466 | @fa-var-slack: "\f198"; 467 | @fa-var-sliders: "\f1de"; 468 | @fa-var-slideshare: "\f1e7"; 469 | @fa-var-smile-o: "\f118"; 470 | @fa-var-soccer-ball-o: "\f1e3"; 471 | @fa-var-sort: "\f0dc"; 472 | @fa-var-sort-alpha-asc: "\f15d"; 473 | @fa-var-sort-alpha-desc: "\f15e"; 474 | @fa-var-sort-amount-asc: "\f160"; 475 | @fa-var-sort-amount-desc: "\f161"; 476 | @fa-var-sort-asc: "\f0de"; 477 | @fa-var-sort-desc: "\f0dd"; 478 | @fa-var-sort-down: "\f0dd"; 479 | @fa-var-sort-numeric-asc: "\f162"; 480 | @fa-var-sort-numeric-desc: "\f163"; 481 | @fa-var-sort-up: "\f0de"; 482 | @fa-var-soundcloud: "\f1be"; 483 | @fa-var-space-shuttle: "\f197"; 484 | @fa-var-spinner: "\f110"; 485 | @fa-var-spoon: "\f1b1"; 486 | @fa-var-spotify: "\f1bc"; 487 | @fa-var-square: "\f0c8"; 488 | @fa-var-square-o: "\f096"; 489 | @fa-var-stack-exchange: "\f18d"; 490 | @fa-var-stack-overflow: "\f16c"; 491 | @fa-var-star: "\f005"; 492 | @fa-var-star-half: "\f089"; 493 | @fa-var-star-half-empty: "\f123"; 494 | @fa-var-star-half-full: "\f123"; 495 | @fa-var-star-half-o: "\f123"; 496 | @fa-var-star-o: "\f006"; 497 | @fa-var-steam: "\f1b6"; 498 | @fa-var-steam-square: "\f1b7"; 499 | @fa-var-step-backward: "\f048"; 500 | @fa-var-step-forward: "\f051"; 501 | @fa-var-stethoscope: "\f0f1"; 502 | @fa-var-stop: "\f04d"; 503 | @fa-var-street-view: "\f21d"; 504 | @fa-var-strikethrough: "\f0cc"; 505 | @fa-var-stumbleupon: "\f1a4"; 506 | @fa-var-stumbleupon-circle: "\f1a3"; 507 | @fa-var-subscript: "\f12c"; 508 | @fa-var-subway: "\f239"; 509 | @fa-var-suitcase: "\f0f2"; 510 | @fa-var-sun-o: "\f185"; 511 | @fa-var-superscript: "\f12b"; 512 | @fa-var-support: "\f1cd"; 513 | @fa-var-table: "\f0ce"; 514 | @fa-var-tablet: "\f10a"; 515 | @fa-var-tachometer: "\f0e4"; 516 | @fa-var-tag: "\f02b"; 517 | @fa-var-tags: "\f02c"; 518 | @fa-var-tasks: "\f0ae"; 519 | @fa-var-taxi: "\f1ba"; 520 | @fa-var-tencent-weibo: "\f1d5"; 521 | @fa-var-terminal: "\f120"; 522 | @fa-var-text-height: "\f034"; 523 | @fa-var-text-width: "\f035"; 524 | @fa-var-th: "\f00a"; 525 | @fa-var-th-large: "\f009"; 526 | @fa-var-th-list: "\f00b"; 527 | @fa-var-thumb-tack: "\f08d"; 528 | @fa-var-thumbs-down: "\f165"; 529 | @fa-var-thumbs-o-down: "\f088"; 530 | @fa-var-thumbs-o-up: "\f087"; 531 | @fa-var-thumbs-up: "\f164"; 532 | @fa-var-ticket: "\f145"; 533 | @fa-var-times: "\f00d"; 534 | @fa-var-times-circle: "\f057"; 535 | @fa-var-times-circle-o: "\f05c"; 536 | @fa-var-tint: "\f043"; 537 | @fa-var-toggle-down: "\f150"; 538 | @fa-var-toggle-left: "\f191"; 539 | @fa-var-toggle-off: "\f204"; 540 | @fa-var-toggle-on: "\f205"; 541 | @fa-var-toggle-right: "\f152"; 542 | @fa-var-toggle-up: "\f151"; 543 | @fa-var-train: "\f238"; 544 | @fa-var-transgender: "\f224"; 545 | @fa-var-transgender-alt: "\f225"; 546 | @fa-var-trash: "\f1f8"; 547 | @fa-var-trash-o: "\f014"; 548 | @fa-var-tree: "\f1bb"; 549 | @fa-var-trello: "\f181"; 550 | @fa-var-trophy: "\f091"; 551 | @fa-var-truck: "\f0d1"; 552 | @fa-var-try: "\f195"; 553 | @fa-var-tty: "\f1e4"; 554 | @fa-var-tumblr: "\f173"; 555 | @fa-var-tumblr-square: "\f174"; 556 | @fa-var-turkish-lira: "\f195"; 557 | @fa-var-twitch: "\f1e8"; 558 | @fa-var-twitter: "\f099"; 559 | @fa-var-twitter-square: "\f081"; 560 | @fa-var-umbrella: "\f0e9"; 561 | @fa-var-underline: "\f0cd"; 562 | @fa-var-undo: "\f0e2"; 563 | @fa-var-university: "\f19c"; 564 | @fa-var-unlink: "\f127"; 565 | @fa-var-unlock: "\f09c"; 566 | @fa-var-unlock-alt: "\f13e"; 567 | @fa-var-unsorted: "\f0dc"; 568 | @fa-var-upload: "\f093"; 569 | @fa-var-usd: "\f155"; 570 | @fa-var-user: "\f007"; 571 | @fa-var-user-md: "\f0f0"; 572 | @fa-var-user-plus: "\f234"; 573 | @fa-var-user-secret: "\f21b"; 574 | @fa-var-user-times: "\f235"; 575 | @fa-var-users: "\f0c0"; 576 | @fa-var-venus: "\f221"; 577 | @fa-var-venus-double: "\f226"; 578 | @fa-var-venus-mars: "\f228"; 579 | @fa-var-viacoin: "\f237"; 580 | @fa-var-video-camera: "\f03d"; 581 | @fa-var-vimeo-square: "\f194"; 582 | @fa-var-vine: "\f1ca"; 583 | @fa-var-vk: "\f189"; 584 | @fa-var-volume-down: "\f027"; 585 | @fa-var-volume-off: "\f026"; 586 | @fa-var-volume-up: "\f028"; 587 | @fa-var-warning: "\f071"; 588 | @fa-var-wechat: "\f1d7"; 589 | @fa-var-weibo: "\f18a"; 590 | @fa-var-weixin: "\f1d7"; 591 | @fa-var-whatsapp: "\f232"; 592 | @fa-var-wheelchair: "\f193"; 593 | @fa-var-wifi: "\f1eb"; 594 | @fa-var-windows: "\f17a"; 595 | @fa-var-won: "\f159"; 596 | @fa-var-wordpress: "\f19a"; 597 | @fa-var-wrench: "\f0ad"; 598 | @fa-var-xing: "\f168"; 599 | @fa-var-xing-square: "\f169"; 600 | @fa-var-yahoo: "\f19e"; 601 | @fa-var-yelp: "\f1e9"; 602 | @fa-var-yen: "\f157"; 603 | @fa-var-youtube: "\f167"; 604 | @fa-var-youtube-play: "\f16a"; 605 | @fa-var-youtube-square: "\f166"; 606 | 607 | -------------------------------------------------------------------------------- /css/external/font-awesome-4.3.0/scss/_animated.scss: -------------------------------------------------------------------------------- 1 | // Spinning Icons 2 | // -------------------------- 3 | 4 | .#{$fa-css-prefix}-spin { 5 | -webkit-animation: fa-spin 2s infinite linear; 6 | animation: fa-spin 2s infinite linear; 7 | } 8 | 9 | .#{$fa-css-prefix}-pulse { 10 | -webkit-animation: fa-spin 1s infinite steps(8); 11 | animation: fa-spin 1s infinite steps(8); 12 | } 13 | 14 | @-webkit-keyframes fa-spin { 15 | 0% { 16 | -webkit-transform: rotate(0deg); 17 | transform: rotate(0deg); 18 | } 19 | 100% { 20 | -webkit-transform: rotate(359deg); 21 | transform: rotate(359deg); 22 | } 23 | } 24 | 25 | @keyframes fa-spin { 26 | 0% { 27 | -webkit-transform: rotate(0deg); 28 | transform: rotate(0deg); 29 | } 30 | 100% { 31 | -webkit-transform: rotate(359deg); 32 | transform: rotate(359deg); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /css/external/font-awesome-4.3.0/scss/_bordered-pulled.scss: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-border { 5 | padding: .2em .25em .15em; 6 | border: solid .08em $fa-border-color; 7 | border-radius: .1em; 8 | } 9 | 10 | .pull-right { float: right; } 11 | .pull-left { float: left; } 12 | 13 | .#{$fa-css-prefix} { 14 | &.pull-left { margin-right: .3em; } 15 | &.pull-right { margin-left: .3em; } 16 | } 17 | -------------------------------------------------------------------------------- /css/external/font-awesome-4.3.0/scss/_core.scss: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix} { 5 | display: inline-block; 6 | font: normal normal normal #{$fa-font-size-base}/1 FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | transform: translate(0, 0); // ensures no half-pixel rendering in firefox 12 | 13 | } 14 | -------------------------------------------------------------------------------- /css/external/font-awesome-4.3.0/scss/_fixed-width.scss: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .#{$fa-css-prefix}-fw { 4 | width: (18em / 14); 5 | text-align: center; 6 | } 7 | -------------------------------------------------------------------------------- /css/external/font-awesome-4.3.0/scss/_larger.scss: -------------------------------------------------------------------------------- 1 | // Icon Sizes 2 | // ------------------------- 3 | 4 | /* makes the font 33% larger relative to the icon container */ 5 | .#{$fa-css-prefix}-lg { 6 | font-size: (4em / 3); 7 | line-height: (3em / 4); 8 | vertical-align: -15%; 9 | } 10 | .#{$fa-css-prefix}-2x { font-size: 2em; } 11 | .#{$fa-css-prefix}-3x { font-size: 3em; } 12 | .#{$fa-css-prefix}-4x { font-size: 4em; } 13 | .#{$fa-css-prefix}-5x { font-size: 5em; } 14 | -------------------------------------------------------------------------------- /css/external/font-awesome-4.3.0/scss/_list.scss: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-ul { 5 | padding-left: 0; 6 | margin-left: $fa-li-width; 7 | list-style-type: none; 8 | > li { position: relative; } 9 | } 10 | .#{$fa-css-prefix}-li { 11 | position: absolute; 12 | left: -$fa-li-width; 13 | width: $fa-li-width; 14 | top: (2em / 14); 15 | text-align: center; 16 | &.#{$fa-css-prefix}-lg { 17 | left: -$fa-li-width + (4em / 14); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /css/external/font-awesome-4.3.0/scss/_mixins.scss: -------------------------------------------------------------------------------- 1 | // Mixins 2 | // -------------------------- 3 | 4 | @mixin fa-icon() { 5 | display: inline-block; 6 | font: normal normal normal #{$fa-font-size-base}/1 FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | transform: translate(0, 0); // ensures no half-pixel rendering in firefox 12 | 13 | } 14 | 15 | @mixin fa-icon-rotate($degrees, $rotation) { 16 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}); 17 | -webkit-transform: rotate($degrees); 18 | -ms-transform: rotate($degrees); 19 | transform: rotate($degrees); 20 | } 21 | 22 | @mixin fa-icon-flip($horiz, $vert, $rotation) { 23 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}); 24 | -webkit-transform: scale($horiz, $vert); 25 | -ms-transform: scale($horiz, $vert); 26 | transform: scale($horiz, $vert); 27 | } 28 | -------------------------------------------------------------------------------- /css/external/font-awesome-4.3.0/scss/_path.scss: -------------------------------------------------------------------------------- 1 | /* FONT PATH 2 | * -------------------------- */ 3 | 4 | @font-face { 5 | font-family: 'FontAwesome'; 6 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}'); 7 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'), 8 | url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'), 9 | url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'), 10 | url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'), 11 | url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg'); 12 | // src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts 13 | font-weight: normal; 14 | font-style: normal; 15 | } 16 | -------------------------------------------------------------------------------- /css/external/font-awesome-4.3.0/scss/_rotated-flipped.scss: -------------------------------------------------------------------------------- 1 | // Rotated & Flipped Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); } 5 | .#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); } 6 | .#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); } 7 | 8 | .#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); } 9 | .#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); } 10 | 11 | // Hook for IE8-9 12 | // ------------------------- 13 | 14 | :root .#{$fa-css-prefix}-rotate-90, 15 | :root .#{$fa-css-prefix}-rotate-180, 16 | :root .#{$fa-css-prefix}-rotate-270, 17 | :root .#{$fa-css-prefix}-flip-horizontal, 18 | :root .#{$fa-css-prefix}-flip-vertical { 19 | filter: none; 20 | } 21 | -------------------------------------------------------------------------------- /css/external/font-awesome-4.3.0/scss/_stacked.scss: -------------------------------------------------------------------------------- 1 | // Stacked Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-stack { 5 | position: relative; 6 | display: inline-block; 7 | width: 2em; 8 | height: 2em; 9 | line-height: 2em; 10 | vertical-align: middle; 11 | } 12 | .#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x { 13 | position: absolute; 14 | left: 0; 15 | width: 100%; 16 | text-align: center; 17 | } 18 | .#{$fa-css-prefix}-stack-1x { line-height: inherit; } 19 | .#{$fa-css-prefix}-stack-2x { font-size: 2em; } 20 | .#{$fa-css-prefix}-inverse { color: $fa-inverse; } 21 | -------------------------------------------------------------------------------- /css/external/font-awesome-4.3.0/scss/_variables.scss: -------------------------------------------------------------------------------- 1 | // Variables 2 | // -------------------------- 3 | 4 | $fa-font-path: "../fonts" !default; 5 | $fa-font-size-base: 14px !default; 6 | //$fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.3.0/fonts" !default; // for referencing Bootstrap CDN font files directly 7 | $fa-css-prefix: fa !default; 8 | $fa-version: "4.3.0" !default; 9 | $fa-border-color: #eee !default; 10 | $fa-inverse: #fff !default; 11 | $fa-li-width: (30em / 14) !default; 12 | 13 | $fa-var-adjust: "\f042"; 14 | $fa-var-adn: "\f170"; 15 | $fa-var-align-center: "\f037"; 16 | $fa-var-align-justify: "\f039"; 17 | $fa-var-align-left: "\f036"; 18 | $fa-var-align-right: "\f038"; 19 | $fa-var-ambulance: "\f0f9"; 20 | $fa-var-anchor: "\f13d"; 21 | $fa-var-android: "\f17b"; 22 | $fa-var-angellist: "\f209"; 23 | $fa-var-angle-double-down: "\f103"; 24 | $fa-var-angle-double-left: "\f100"; 25 | $fa-var-angle-double-right: "\f101"; 26 | $fa-var-angle-double-up: "\f102"; 27 | $fa-var-angle-down: "\f107"; 28 | $fa-var-angle-left: "\f104"; 29 | $fa-var-angle-right: "\f105"; 30 | $fa-var-angle-up: "\f106"; 31 | $fa-var-apple: "\f179"; 32 | $fa-var-archive: "\f187"; 33 | $fa-var-area-chart: "\f1fe"; 34 | $fa-var-arrow-circle-down: "\f0ab"; 35 | $fa-var-arrow-circle-left: "\f0a8"; 36 | $fa-var-arrow-circle-o-down: "\f01a"; 37 | $fa-var-arrow-circle-o-left: "\f190"; 38 | $fa-var-arrow-circle-o-right: "\f18e"; 39 | $fa-var-arrow-circle-o-up: "\f01b"; 40 | $fa-var-arrow-circle-right: "\f0a9"; 41 | $fa-var-arrow-circle-up: "\f0aa"; 42 | $fa-var-arrow-down: "\f063"; 43 | $fa-var-arrow-left: "\f060"; 44 | $fa-var-arrow-right: "\f061"; 45 | $fa-var-arrow-up: "\f062"; 46 | $fa-var-arrows: "\f047"; 47 | $fa-var-arrows-alt: "\f0b2"; 48 | $fa-var-arrows-h: "\f07e"; 49 | $fa-var-arrows-v: "\f07d"; 50 | $fa-var-asterisk: "\f069"; 51 | $fa-var-at: "\f1fa"; 52 | $fa-var-automobile: "\f1b9"; 53 | $fa-var-backward: "\f04a"; 54 | $fa-var-ban: "\f05e"; 55 | $fa-var-bank: "\f19c"; 56 | $fa-var-bar-chart: "\f080"; 57 | $fa-var-bar-chart-o: "\f080"; 58 | $fa-var-barcode: "\f02a"; 59 | $fa-var-bars: "\f0c9"; 60 | $fa-var-bed: "\f236"; 61 | $fa-var-beer: "\f0fc"; 62 | $fa-var-behance: "\f1b4"; 63 | $fa-var-behance-square: "\f1b5"; 64 | $fa-var-bell: "\f0f3"; 65 | $fa-var-bell-o: "\f0a2"; 66 | $fa-var-bell-slash: "\f1f6"; 67 | $fa-var-bell-slash-o: "\f1f7"; 68 | $fa-var-bicycle: "\f206"; 69 | $fa-var-binoculars: "\f1e5"; 70 | $fa-var-birthday-cake: "\f1fd"; 71 | $fa-var-bitbucket: "\f171"; 72 | $fa-var-bitbucket-square: "\f172"; 73 | $fa-var-bitcoin: "\f15a"; 74 | $fa-var-bold: "\f032"; 75 | $fa-var-bolt: "\f0e7"; 76 | $fa-var-bomb: "\f1e2"; 77 | $fa-var-book: "\f02d"; 78 | $fa-var-bookmark: "\f02e"; 79 | $fa-var-bookmark-o: "\f097"; 80 | $fa-var-briefcase: "\f0b1"; 81 | $fa-var-btc: "\f15a"; 82 | $fa-var-bug: "\f188"; 83 | $fa-var-building: "\f1ad"; 84 | $fa-var-building-o: "\f0f7"; 85 | $fa-var-bullhorn: "\f0a1"; 86 | $fa-var-bullseye: "\f140"; 87 | $fa-var-bus: "\f207"; 88 | $fa-var-buysellads: "\f20d"; 89 | $fa-var-cab: "\f1ba"; 90 | $fa-var-calculator: "\f1ec"; 91 | $fa-var-calendar: "\f073"; 92 | $fa-var-calendar-o: "\f133"; 93 | $fa-var-camera: "\f030"; 94 | $fa-var-camera-retro: "\f083"; 95 | $fa-var-car: "\f1b9"; 96 | $fa-var-caret-down: "\f0d7"; 97 | $fa-var-caret-left: "\f0d9"; 98 | $fa-var-caret-right: "\f0da"; 99 | $fa-var-caret-square-o-down: "\f150"; 100 | $fa-var-caret-square-o-left: "\f191"; 101 | $fa-var-caret-square-o-right: "\f152"; 102 | $fa-var-caret-square-o-up: "\f151"; 103 | $fa-var-caret-up: "\f0d8"; 104 | $fa-var-cart-arrow-down: "\f218"; 105 | $fa-var-cart-plus: "\f217"; 106 | $fa-var-cc: "\f20a"; 107 | $fa-var-cc-amex: "\f1f3"; 108 | $fa-var-cc-discover: "\f1f2"; 109 | $fa-var-cc-mastercard: "\f1f1"; 110 | $fa-var-cc-paypal: "\f1f4"; 111 | $fa-var-cc-stripe: "\f1f5"; 112 | $fa-var-cc-visa: "\f1f0"; 113 | $fa-var-certificate: "\f0a3"; 114 | $fa-var-chain: "\f0c1"; 115 | $fa-var-chain-broken: "\f127"; 116 | $fa-var-check: "\f00c"; 117 | $fa-var-check-circle: "\f058"; 118 | $fa-var-check-circle-o: "\f05d"; 119 | $fa-var-check-square: "\f14a"; 120 | $fa-var-check-square-o: "\f046"; 121 | $fa-var-chevron-circle-down: "\f13a"; 122 | $fa-var-chevron-circle-left: "\f137"; 123 | $fa-var-chevron-circle-right: "\f138"; 124 | $fa-var-chevron-circle-up: "\f139"; 125 | $fa-var-chevron-down: "\f078"; 126 | $fa-var-chevron-left: "\f053"; 127 | $fa-var-chevron-right: "\f054"; 128 | $fa-var-chevron-up: "\f077"; 129 | $fa-var-child: "\f1ae"; 130 | $fa-var-circle: "\f111"; 131 | $fa-var-circle-o: "\f10c"; 132 | $fa-var-circle-o-notch: "\f1ce"; 133 | $fa-var-circle-thin: "\f1db"; 134 | $fa-var-clipboard: "\f0ea"; 135 | $fa-var-clock-o: "\f017"; 136 | $fa-var-close: "\f00d"; 137 | $fa-var-cloud: "\f0c2"; 138 | $fa-var-cloud-download: "\f0ed"; 139 | $fa-var-cloud-upload: "\f0ee"; 140 | $fa-var-cny: "\f157"; 141 | $fa-var-code: "\f121"; 142 | $fa-var-code-fork: "\f126"; 143 | $fa-var-codepen: "\f1cb"; 144 | $fa-var-coffee: "\f0f4"; 145 | $fa-var-cog: "\f013"; 146 | $fa-var-cogs: "\f085"; 147 | $fa-var-columns: "\f0db"; 148 | $fa-var-comment: "\f075"; 149 | $fa-var-comment-o: "\f0e5"; 150 | $fa-var-comments: "\f086"; 151 | $fa-var-comments-o: "\f0e6"; 152 | $fa-var-compass: "\f14e"; 153 | $fa-var-compress: "\f066"; 154 | $fa-var-connectdevelop: "\f20e"; 155 | $fa-var-copy: "\f0c5"; 156 | $fa-var-copyright: "\f1f9"; 157 | $fa-var-credit-card: "\f09d"; 158 | $fa-var-crop: "\f125"; 159 | $fa-var-crosshairs: "\f05b"; 160 | $fa-var-css3: "\f13c"; 161 | $fa-var-cube: "\f1b2"; 162 | $fa-var-cubes: "\f1b3"; 163 | $fa-var-cut: "\f0c4"; 164 | $fa-var-cutlery: "\f0f5"; 165 | $fa-var-dashboard: "\f0e4"; 166 | $fa-var-dashcube: "\f210"; 167 | $fa-var-database: "\f1c0"; 168 | $fa-var-dedent: "\f03b"; 169 | $fa-var-delicious: "\f1a5"; 170 | $fa-var-desktop: "\f108"; 171 | $fa-var-deviantart: "\f1bd"; 172 | $fa-var-diamond: "\f219"; 173 | $fa-var-digg: "\f1a6"; 174 | $fa-var-dollar: "\f155"; 175 | $fa-var-dot-circle-o: "\f192"; 176 | $fa-var-download: "\f019"; 177 | $fa-var-dribbble: "\f17d"; 178 | $fa-var-dropbox: "\f16b"; 179 | $fa-var-drupal: "\f1a9"; 180 | $fa-var-edit: "\f044"; 181 | $fa-var-eject: "\f052"; 182 | $fa-var-ellipsis-h: "\f141"; 183 | $fa-var-ellipsis-v: "\f142"; 184 | $fa-var-empire: "\f1d1"; 185 | $fa-var-envelope: "\f0e0"; 186 | $fa-var-envelope-o: "\f003"; 187 | $fa-var-envelope-square: "\f199"; 188 | $fa-var-eraser: "\f12d"; 189 | $fa-var-eur: "\f153"; 190 | $fa-var-euro: "\f153"; 191 | $fa-var-exchange: "\f0ec"; 192 | $fa-var-exclamation: "\f12a"; 193 | $fa-var-exclamation-circle: "\f06a"; 194 | $fa-var-exclamation-triangle: "\f071"; 195 | $fa-var-expand: "\f065"; 196 | $fa-var-external-link: "\f08e"; 197 | $fa-var-external-link-square: "\f14c"; 198 | $fa-var-eye: "\f06e"; 199 | $fa-var-eye-slash: "\f070"; 200 | $fa-var-eyedropper: "\f1fb"; 201 | $fa-var-facebook: "\f09a"; 202 | $fa-var-facebook-f: "\f09a"; 203 | $fa-var-facebook-official: "\f230"; 204 | $fa-var-facebook-square: "\f082"; 205 | $fa-var-fast-backward: "\f049"; 206 | $fa-var-fast-forward: "\f050"; 207 | $fa-var-fax: "\f1ac"; 208 | $fa-var-female: "\f182"; 209 | $fa-var-fighter-jet: "\f0fb"; 210 | $fa-var-file: "\f15b"; 211 | $fa-var-file-archive-o: "\f1c6"; 212 | $fa-var-file-audio-o: "\f1c7"; 213 | $fa-var-file-code-o: "\f1c9"; 214 | $fa-var-file-excel-o: "\f1c3"; 215 | $fa-var-file-image-o: "\f1c5"; 216 | $fa-var-file-movie-o: "\f1c8"; 217 | $fa-var-file-o: "\f016"; 218 | $fa-var-file-pdf-o: "\f1c1"; 219 | $fa-var-file-photo-o: "\f1c5"; 220 | $fa-var-file-picture-o: "\f1c5"; 221 | $fa-var-file-powerpoint-o: "\f1c4"; 222 | $fa-var-file-sound-o: "\f1c7"; 223 | $fa-var-file-text: "\f15c"; 224 | $fa-var-file-text-o: "\f0f6"; 225 | $fa-var-file-video-o: "\f1c8"; 226 | $fa-var-file-word-o: "\f1c2"; 227 | $fa-var-file-zip-o: "\f1c6"; 228 | $fa-var-files-o: "\f0c5"; 229 | $fa-var-film: "\f008"; 230 | $fa-var-filter: "\f0b0"; 231 | $fa-var-fire: "\f06d"; 232 | $fa-var-fire-extinguisher: "\f134"; 233 | $fa-var-flag: "\f024"; 234 | $fa-var-flag-checkered: "\f11e"; 235 | $fa-var-flag-o: "\f11d"; 236 | $fa-var-flash: "\f0e7"; 237 | $fa-var-flask: "\f0c3"; 238 | $fa-var-flickr: "\f16e"; 239 | $fa-var-floppy-o: "\f0c7"; 240 | $fa-var-folder: "\f07b"; 241 | $fa-var-folder-o: "\f114"; 242 | $fa-var-folder-open: "\f07c"; 243 | $fa-var-folder-open-o: "\f115"; 244 | $fa-var-font: "\f031"; 245 | $fa-var-forumbee: "\f211"; 246 | $fa-var-forward: "\f04e"; 247 | $fa-var-foursquare: "\f180"; 248 | $fa-var-frown-o: "\f119"; 249 | $fa-var-futbol-o: "\f1e3"; 250 | $fa-var-gamepad: "\f11b"; 251 | $fa-var-gavel: "\f0e3"; 252 | $fa-var-gbp: "\f154"; 253 | $fa-var-ge: "\f1d1"; 254 | $fa-var-gear: "\f013"; 255 | $fa-var-gears: "\f085"; 256 | $fa-var-genderless: "\f1db"; 257 | $fa-var-gift: "\f06b"; 258 | $fa-var-git: "\f1d3"; 259 | $fa-var-git-square: "\f1d2"; 260 | $fa-var-github: "\f09b"; 261 | $fa-var-github-alt: "\f113"; 262 | $fa-var-github-square: "\f092"; 263 | $fa-var-gittip: "\f184"; 264 | $fa-var-glass: "\f000"; 265 | $fa-var-globe: "\f0ac"; 266 | $fa-var-google: "\f1a0"; 267 | $fa-var-google-plus: "\f0d5"; 268 | $fa-var-google-plus-square: "\f0d4"; 269 | $fa-var-google-wallet: "\f1ee"; 270 | $fa-var-graduation-cap: "\f19d"; 271 | $fa-var-gratipay: "\f184"; 272 | $fa-var-group: "\f0c0"; 273 | $fa-var-h-square: "\f0fd"; 274 | $fa-var-hacker-news: "\f1d4"; 275 | $fa-var-hand-o-down: "\f0a7"; 276 | $fa-var-hand-o-left: "\f0a5"; 277 | $fa-var-hand-o-right: "\f0a4"; 278 | $fa-var-hand-o-up: "\f0a6"; 279 | $fa-var-hdd-o: "\f0a0"; 280 | $fa-var-header: "\f1dc"; 281 | $fa-var-headphones: "\f025"; 282 | $fa-var-heart: "\f004"; 283 | $fa-var-heart-o: "\f08a"; 284 | $fa-var-heartbeat: "\f21e"; 285 | $fa-var-history: "\f1da"; 286 | $fa-var-home: "\f015"; 287 | $fa-var-hospital-o: "\f0f8"; 288 | $fa-var-hotel: "\f236"; 289 | $fa-var-html5: "\f13b"; 290 | $fa-var-ils: "\f20b"; 291 | $fa-var-image: "\f03e"; 292 | $fa-var-inbox: "\f01c"; 293 | $fa-var-indent: "\f03c"; 294 | $fa-var-info: "\f129"; 295 | $fa-var-info-circle: "\f05a"; 296 | $fa-var-inr: "\f156"; 297 | $fa-var-instagram: "\f16d"; 298 | $fa-var-institution: "\f19c"; 299 | $fa-var-ioxhost: "\f208"; 300 | $fa-var-italic: "\f033"; 301 | $fa-var-joomla: "\f1aa"; 302 | $fa-var-jpy: "\f157"; 303 | $fa-var-jsfiddle: "\f1cc"; 304 | $fa-var-key: "\f084"; 305 | $fa-var-keyboard-o: "\f11c"; 306 | $fa-var-krw: "\f159"; 307 | $fa-var-language: "\f1ab"; 308 | $fa-var-laptop: "\f109"; 309 | $fa-var-lastfm: "\f202"; 310 | $fa-var-lastfm-square: "\f203"; 311 | $fa-var-leaf: "\f06c"; 312 | $fa-var-leanpub: "\f212"; 313 | $fa-var-legal: "\f0e3"; 314 | $fa-var-lemon-o: "\f094"; 315 | $fa-var-level-down: "\f149"; 316 | $fa-var-level-up: "\f148"; 317 | $fa-var-life-bouy: "\f1cd"; 318 | $fa-var-life-buoy: "\f1cd"; 319 | $fa-var-life-ring: "\f1cd"; 320 | $fa-var-life-saver: "\f1cd"; 321 | $fa-var-lightbulb-o: "\f0eb"; 322 | $fa-var-line-chart: "\f201"; 323 | $fa-var-link: "\f0c1"; 324 | $fa-var-linkedin: "\f0e1"; 325 | $fa-var-linkedin-square: "\f08c"; 326 | $fa-var-linux: "\f17c"; 327 | $fa-var-list: "\f03a"; 328 | $fa-var-list-alt: "\f022"; 329 | $fa-var-list-ol: "\f0cb"; 330 | $fa-var-list-ul: "\f0ca"; 331 | $fa-var-location-arrow: "\f124"; 332 | $fa-var-lock: "\f023"; 333 | $fa-var-long-arrow-down: "\f175"; 334 | $fa-var-long-arrow-left: "\f177"; 335 | $fa-var-long-arrow-right: "\f178"; 336 | $fa-var-long-arrow-up: "\f176"; 337 | $fa-var-magic: "\f0d0"; 338 | $fa-var-magnet: "\f076"; 339 | $fa-var-mail-forward: "\f064"; 340 | $fa-var-mail-reply: "\f112"; 341 | $fa-var-mail-reply-all: "\f122"; 342 | $fa-var-male: "\f183"; 343 | $fa-var-map-marker: "\f041"; 344 | $fa-var-mars: "\f222"; 345 | $fa-var-mars-double: "\f227"; 346 | $fa-var-mars-stroke: "\f229"; 347 | $fa-var-mars-stroke-h: "\f22b"; 348 | $fa-var-mars-stroke-v: "\f22a"; 349 | $fa-var-maxcdn: "\f136"; 350 | $fa-var-meanpath: "\f20c"; 351 | $fa-var-medium: "\f23a"; 352 | $fa-var-medkit: "\f0fa"; 353 | $fa-var-meh-o: "\f11a"; 354 | $fa-var-mercury: "\f223"; 355 | $fa-var-microphone: "\f130"; 356 | $fa-var-microphone-slash: "\f131"; 357 | $fa-var-minus: "\f068"; 358 | $fa-var-minus-circle: "\f056"; 359 | $fa-var-minus-square: "\f146"; 360 | $fa-var-minus-square-o: "\f147"; 361 | $fa-var-mobile: "\f10b"; 362 | $fa-var-mobile-phone: "\f10b"; 363 | $fa-var-money: "\f0d6"; 364 | $fa-var-moon-o: "\f186"; 365 | $fa-var-mortar-board: "\f19d"; 366 | $fa-var-motorcycle: "\f21c"; 367 | $fa-var-music: "\f001"; 368 | $fa-var-navicon: "\f0c9"; 369 | $fa-var-neuter: "\f22c"; 370 | $fa-var-newspaper-o: "\f1ea"; 371 | $fa-var-openid: "\f19b"; 372 | $fa-var-outdent: "\f03b"; 373 | $fa-var-pagelines: "\f18c"; 374 | $fa-var-paint-brush: "\f1fc"; 375 | $fa-var-paper-plane: "\f1d8"; 376 | $fa-var-paper-plane-o: "\f1d9"; 377 | $fa-var-paperclip: "\f0c6"; 378 | $fa-var-paragraph: "\f1dd"; 379 | $fa-var-paste: "\f0ea"; 380 | $fa-var-pause: "\f04c"; 381 | $fa-var-paw: "\f1b0"; 382 | $fa-var-paypal: "\f1ed"; 383 | $fa-var-pencil: "\f040"; 384 | $fa-var-pencil-square: "\f14b"; 385 | $fa-var-pencil-square-o: "\f044"; 386 | $fa-var-phone: "\f095"; 387 | $fa-var-phone-square: "\f098"; 388 | $fa-var-photo: "\f03e"; 389 | $fa-var-picture-o: "\f03e"; 390 | $fa-var-pie-chart: "\f200"; 391 | $fa-var-pied-piper: "\f1a7"; 392 | $fa-var-pied-piper-alt: "\f1a8"; 393 | $fa-var-pinterest: "\f0d2"; 394 | $fa-var-pinterest-p: "\f231"; 395 | $fa-var-pinterest-square: "\f0d3"; 396 | $fa-var-plane: "\f072"; 397 | $fa-var-play: "\f04b"; 398 | $fa-var-play-circle: "\f144"; 399 | $fa-var-play-circle-o: "\f01d"; 400 | $fa-var-plug: "\f1e6"; 401 | $fa-var-plus: "\f067"; 402 | $fa-var-plus-circle: "\f055"; 403 | $fa-var-plus-square: "\f0fe"; 404 | $fa-var-plus-square-o: "\f196"; 405 | $fa-var-power-off: "\f011"; 406 | $fa-var-print: "\f02f"; 407 | $fa-var-puzzle-piece: "\f12e"; 408 | $fa-var-qq: "\f1d6"; 409 | $fa-var-qrcode: "\f029"; 410 | $fa-var-question: "\f128"; 411 | $fa-var-question-circle: "\f059"; 412 | $fa-var-quote-left: "\f10d"; 413 | $fa-var-quote-right: "\f10e"; 414 | $fa-var-ra: "\f1d0"; 415 | $fa-var-random: "\f074"; 416 | $fa-var-rebel: "\f1d0"; 417 | $fa-var-recycle: "\f1b8"; 418 | $fa-var-reddit: "\f1a1"; 419 | $fa-var-reddit-square: "\f1a2"; 420 | $fa-var-refresh: "\f021"; 421 | $fa-var-remove: "\f00d"; 422 | $fa-var-renren: "\f18b"; 423 | $fa-var-reorder: "\f0c9"; 424 | $fa-var-repeat: "\f01e"; 425 | $fa-var-reply: "\f112"; 426 | $fa-var-reply-all: "\f122"; 427 | $fa-var-retweet: "\f079"; 428 | $fa-var-rmb: "\f157"; 429 | $fa-var-road: "\f018"; 430 | $fa-var-rocket: "\f135"; 431 | $fa-var-rotate-left: "\f0e2"; 432 | $fa-var-rotate-right: "\f01e"; 433 | $fa-var-rouble: "\f158"; 434 | $fa-var-rss: "\f09e"; 435 | $fa-var-rss-square: "\f143"; 436 | $fa-var-rub: "\f158"; 437 | $fa-var-ruble: "\f158"; 438 | $fa-var-rupee: "\f156"; 439 | $fa-var-save: "\f0c7"; 440 | $fa-var-scissors: "\f0c4"; 441 | $fa-var-search: "\f002"; 442 | $fa-var-search-minus: "\f010"; 443 | $fa-var-search-plus: "\f00e"; 444 | $fa-var-sellsy: "\f213"; 445 | $fa-var-send: "\f1d8"; 446 | $fa-var-send-o: "\f1d9"; 447 | $fa-var-server: "\f233"; 448 | $fa-var-share: "\f064"; 449 | $fa-var-share-alt: "\f1e0"; 450 | $fa-var-share-alt-square: "\f1e1"; 451 | $fa-var-share-square: "\f14d"; 452 | $fa-var-share-square-o: "\f045"; 453 | $fa-var-shekel: "\f20b"; 454 | $fa-var-sheqel: "\f20b"; 455 | $fa-var-shield: "\f132"; 456 | $fa-var-ship: "\f21a"; 457 | $fa-var-shirtsinbulk: "\f214"; 458 | $fa-var-shopping-cart: "\f07a"; 459 | $fa-var-sign-in: "\f090"; 460 | $fa-var-sign-out: "\f08b"; 461 | $fa-var-signal: "\f012"; 462 | $fa-var-simplybuilt: "\f215"; 463 | $fa-var-sitemap: "\f0e8"; 464 | $fa-var-skyatlas: "\f216"; 465 | $fa-var-skype: "\f17e"; 466 | $fa-var-slack: "\f198"; 467 | $fa-var-sliders: "\f1de"; 468 | $fa-var-slideshare: "\f1e7"; 469 | $fa-var-smile-o: "\f118"; 470 | $fa-var-soccer-ball-o: "\f1e3"; 471 | $fa-var-sort: "\f0dc"; 472 | $fa-var-sort-alpha-asc: "\f15d"; 473 | $fa-var-sort-alpha-desc: "\f15e"; 474 | $fa-var-sort-amount-asc: "\f160"; 475 | $fa-var-sort-amount-desc: "\f161"; 476 | $fa-var-sort-asc: "\f0de"; 477 | $fa-var-sort-desc: "\f0dd"; 478 | $fa-var-sort-down: "\f0dd"; 479 | $fa-var-sort-numeric-asc: "\f162"; 480 | $fa-var-sort-numeric-desc: "\f163"; 481 | $fa-var-sort-up: "\f0de"; 482 | $fa-var-soundcloud: "\f1be"; 483 | $fa-var-space-shuttle: "\f197"; 484 | $fa-var-spinner: "\f110"; 485 | $fa-var-spoon: "\f1b1"; 486 | $fa-var-spotify: "\f1bc"; 487 | $fa-var-square: "\f0c8"; 488 | $fa-var-square-o: "\f096"; 489 | $fa-var-stack-exchange: "\f18d"; 490 | $fa-var-stack-overflow: "\f16c"; 491 | $fa-var-star: "\f005"; 492 | $fa-var-star-half: "\f089"; 493 | $fa-var-star-half-empty: "\f123"; 494 | $fa-var-star-half-full: "\f123"; 495 | $fa-var-star-half-o: "\f123"; 496 | $fa-var-star-o: "\f006"; 497 | $fa-var-steam: "\f1b6"; 498 | $fa-var-steam-square: "\f1b7"; 499 | $fa-var-step-backward: "\f048"; 500 | $fa-var-step-forward: "\f051"; 501 | $fa-var-stethoscope: "\f0f1"; 502 | $fa-var-stop: "\f04d"; 503 | $fa-var-street-view: "\f21d"; 504 | $fa-var-strikethrough: "\f0cc"; 505 | $fa-var-stumbleupon: "\f1a4"; 506 | $fa-var-stumbleupon-circle: "\f1a3"; 507 | $fa-var-subscript: "\f12c"; 508 | $fa-var-subway: "\f239"; 509 | $fa-var-suitcase: "\f0f2"; 510 | $fa-var-sun-o: "\f185"; 511 | $fa-var-superscript: "\f12b"; 512 | $fa-var-support: "\f1cd"; 513 | $fa-var-table: "\f0ce"; 514 | $fa-var-tablet: "\f10a"; 515 | $fa-var-tachometer: "\f0e4"; 516 | $fa-var-tag: "\f02b"; 517 | $fa-var-tags: "\f02c"; 518 | $fa-var-tasks: "\f0ae"; 519 | $fa-var-taxi: "\f1ba"; 520 | $fa-var-tencent-weibo: "\f1d5"; 521 | $fa-var-terminal: "\f120"; 522 | $fa-var-text-height: "\f034"; 523 | $fa-var-text-width: "\f035"; 524 | $fa-var-th: "\f00a"; 525 | $fa-var-th-large: "\f009"; 526 | $fa-var-th-list: "\f00b"; 527 | $fa-var-thumb-tack: "\f08d"; 528 | $fa-var-thumbs-down: "\f165"; 529 | $fa-var-thumbs-o-down: "\f088"; 530 | $fa-var-thumbs-o-up: "\f087"; 531 | $fa-var-thumbs-up: "\f164"; 532 | $fa-var-ticket: "\f145"; 533 | $fa-var-times: "\f00d"; 534 | $fa-var-times-circle: "\f057"; 535 | $fa-var-times-circle-o: "\f05c"; 536 | $fa-var-tint: "\f043"; 537 | $fa-var-toggle-down: "\f150"; 538 | $fa-var-toggle-left: "\f191"; 539 | $fa-var-toggle-off: "\f204"; 540 | $fa-var-toggle-on: "\f205"; 541 | $fa-var-toggle-right: "\f152"; 542 | $fa-var-toggle-up: "\f151"; 543 | $fa-var-train: "\f238"; 544 | $fa-var-transgender: "\f224"; 545 | $fa-var-transgender-alt: "\f225"; 546 | $fa-var-trash: "\f1f8"; 547 | $fa-var-trash-o: "\f014"; 548 | $fa-var-tree: "\f1bb"; 549 | $fa-var-trello: "\f181"; 550 | $fa-var-trophy: "\f091"; 551 | $fa-var-truck: "\f0d1"; 552 | $fa-var-try: "\f195"; 553 | $fa-var-tty: "\f1e4"; 554 | $fa-var-tumblr: "\f173"; 555 | $fa-var-tumblr-square: "\f174"; 556 | $fa-var-turkish-lira: "\f195"; 557 | $fa-var-twitch: "\f1e8"; 558 | $fa-var-twitter: "\f099"; 559 | $fa-var-twitter-square: "\f081"; 560 | $fa-var-umbrella: "\f0e9"; 561 | $fa-var-underline: "\f0cd"; 562 | $fa-var-undo: "\f0e2"; 563 | $fa-var-university: "\f19c"; 564 | $fa-var-unlink: "\f127"; 565 | $fa-var-unlock: "\f09c"; 566 | $fa-var-unlock-alt: "\f13e"; 567 | $fa-var-unsorted: "\f0dc"; 568 | $fa-var-upload: "\f093"; 569 | $fa-var-usd: "\f155"; 570 | $fa-var-user: "\f007"; 571 | $fa-var-user-md: "\f0f0"; 572 | $fa-var-user-plus: "\f234"; 573 | $fa-var-user-secret: "\f21b"; 574 | $fa-var-user-times: "\f235"; 575 | $fa-var-users: "\f0c0"; 576 | $fa-var-venus: "\f221"; 577 | $fa-var-venus-double: "\f226"; 578 | $fa-var-venus-mars: "\f228"; 579 | $fa-var-viacoin: "\f237"; 580 | $fa-var-video-camera: "\f03d"; 581 | $fa-var-vimeo-square: "\f194"; 582 | $fa-var-vine: "\f1ca"; 583 | $fa-var-vk: "\f189"; 584 | $fa-var-volume-down: "\f027"; 585 | $fa-var-volume-off: "\f026"; 586 | $fa-var-volume-up: "\f028"; 587 | $fa-var-warning: "\f071"; 588 | $fa-var-wechat: "\f1d7"; 589 | $fa-var-weibo: "\f18a"; 590 | $fa-var-weixin: "\f1d7"; 591 | $fa-var-whatsapp: "\f232"; 592 | $fa-var-wheelchair: "\f193"; 593 | $fa-var-wifi: "\f1eb"; 594 | $fa-var-windows: "\f17a"; 595 | $fa-var-won: "\f159"; 596 | $fa-var-wordpress: "\f19a"; 597 | $fa-var-wrench: "\f0ad"; 598 | $fa-var-xing: "\f168"; 599 | $fa-var-xing-square: "\f169"; 600 | $fa-var-yahoo: "\f19e"; 601 | $fa-var-yelp: "\f1e9"; 602 | $fa-var-yen: "\f157"; 603 | $fa-var-youtube: "\f167"; 604 | $fa-var-youtube-play: "\f16a"; 605 | $fa-var-youtube-square: "\f166"; 606 | 607 | -------------------------------------------------------------------------------- /css/external/font-awesome-4.3.0/scss/font-awesome.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */ 5 | 6 | @import "variables"; 7 | @import "mixins"; 8 | @import "path"; 9 | @import "core"; 10 | @import "larger"; 11 | @import "fixed-width"; 12 | @import "list"; 13 | @import "bordered-pulled"; 14 | @import "animated"; 15 | @import "rotated-flipped"; 16 | @import "stacked"; 17 | @import "icons"; 18 | -------------------------------------------------------------------------------- /css/external/highlight/default.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Original style from softwaremaniacs.org (c) Ivan Sagalaev 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: #f0f0f0; 12 | -webkit-text-size-adjust: none; 13 | } 14 | 15 | .hljs, 16 | .hljs-subst, 17 | .hljs-tag .hljs-title, 18 | .nginx .hljs-title { 19 | color: black; 20 | } 21 | 22 | .hljs-string, 23 | .hljs-title, 24 | .hljs-constant, 25 | .hljs-parent, 26 | .hljs-tag .hljs-value, 27 | .hljs-rules .hljs-value, 28 | .hljs-preprocessor, 29 | .hljs-pragma, 30 | .haml .hljs-symbol, 31 | .ruby .hljs-symbol, 32 | .ruby .hljs-symbol .hljs-string, 33 | .hljs-template_tag, 34 | .django .hljs-variable, 35 | .smalltalk .hljs-class, 36 | .hljs-addition, 37 | .hljs-flow, 38 | .hljs-stream, 39 | .bash .hljs-variable, 40 | .apache .hljs-tag, 41 | .apache .hljs-cbracket, 42 | .tex .hljs-command, 43 | .tex .hljs-special, 44 | .erlang_repl .hljs-function_or_atom, 45 | .asciidoc .hljs-header, 46 | .markdown .hljs-header, 47 | .coffeescript .hljs-attribute { 48 | color: #800; 49 | } 50 | 51 | .smartquote, 52 | .hljs-comment, 53 | .hljs-annotation, 54 | .diff .hljs-header, 55 | .hljs-chunk, 56 | .asciidoc .hljs-blockquote, 57 | .markdown .hljs-blockquote { 58 | color: #888; 59 | } 60 | 61 | .hljs-number, 62 | .hljs-date, 63 | .hljs-regexp, 64 | .hljs-literal, 65 | .hljs-hexcolor, 66 | .smalltalk .hljs-symbol, 67 | .smalltalk .hljs-char, 68 | .go .hljs-constant, 69 | .hljs-change, 70 | .lasso .hljs-variable, 71 | .makefile .hljs-variable, 72 | .asciidoc .hljs-bullet, 73 | .markdown .hljs-bullet, 74 | .asciidoc .hljs-link_url, 75 | .markdown .hljs-link_url { 76 | color: #080; 77 | } 78 | 79 | .hljs-label, 80 | .hljs-javadoc, 81 | .ruby .hljs-string, 82 | .hljs-decorator, 83 | .hljs-filter .hljs-argument, 84 | .hljs-localvars, 85 | .hljs-array, 86 | .hljs-attr_selector, 87 | .hljs-important, 88 | .hljs-pseudo, 89 | .hljs-pi, 90 | .haml .hljs-bullet, 91 | .hljs-doctype, 92 | .hljs-deletion, 93 | .hljs-envvar, 94 | .hljs-shebang, 95 | .apache .hljs-sqbracket, 96 | .nginx .hljs-built_in, 97 | .tex .hljs-formula, 98 | .erlang_repl .hljs-reserved, 99 | .hljs-prompt, 100 | .asciidoc .hljs-link_label, 101 | .markdown .hljs-link_label, 102 | .vhdl .hljs-attribute, 103 | .clojure .hljs-attribute, 104 | .asciidoc .hljs-attribute, 105 | .lasso .hljs-attribute, 106 | .coffeescript .hljs-property, 107 | .hljs-phony { 108 | color: #88f; 109 | } 110 | 111 | .hljs-keyword, 112 | .hljs-id, 113 | .hljs-title, 114 | .hljs-built_in, 115 | .css .hljs-tag, 116 | .hljs-javadoctag, 117 | .hljs-phpdoc, 118 | .hljs-dartdoc, 119 | .hljs-yardoctag, 120 | .smalltalk .hljs-class, 121 | .hljs-winutils, 122 | .bash .hljs-variable, 123 | .apache .hljs-tag, 124 | .hljs-type, 125 | .hljs-typename, 126 | .tex .hljs-command, 127 | .asciidoc .hljs-strong, 128 | .markdown .hljs-strong, 129 | .hljs-request, 130 | .hljs-status { 131 | font-weight: bold; 132 | } 133 | 134 | .asciidoc .hljs-emphasis, 135 | .markdown .hljs-emphasis { 136 | font-style: italic; 137 | } 138 | 139 | .nginx .hljs-built_in { 140 | font-weight: normal; 141 | } 142 | 143 | .coffeescript .javascript, 144 | .javascript .xml, 145 | .lasso .markup, 146 | .tex .hljs-formula, 147 | .xml .javascript, 148 | .xml .vbscript, 149 | .xml .css, 150 | .xml .hljs-cdata { 151 | opacity: 0.5; 152 | } 153 | -------------------------------------------------------------------------------- /css/external/highlight/monokai_sublime.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Monokai Sublime style. Derived from Monokai by noformnocontent http://nn.mit-license.org/ 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: #333;/*#23241f;*/ 12 | -webkit-text-size-adjust: none; 13 | } 14 | 15 | .hljs, 16 | .hljs-tag, 17 | .css .hljs-rules, 18 | .css .hljs-value, 19 | .aspectj .hljs-function, 20 | .css .hljs-function 21 | .hljs-preprocessor, 22 | .hljs-pragma { 23 | color: #f8f8f2; 24 | } 25 | 26 | .hljs-strongemphasis, 27 | .hljs-strong, 28 | .hljs-emphasis { 29 | color: #a8a8a2; 30 | } 31 | 32 | .hljs-bullet, 33 | .hljs-blockquote, 34 | .hljs-horizontal_rule, 35 | .hljs-number, 36 | .hljs-regexp, 37 | .alias .hljs-keyword, 38 | .hljs-literal, 39 | .hljs-hexcolor { 40 | color: #ae81ff; 41 | } 42 | 43 | .hljs-tag .hljs-value, 44 | .hljs-code, 45 | .hljs-title, 46 | .css .hljs-class, 47 | .hljs-class .hljs-title:last-child { 48 | color: #a6e22e; 49 | } 50 | 51 | .hljs-link_url { 52 | font-size: 80%; 53 | } 54 | 55 | .hljs-strong, 56 | .hljs-strongemphasis { 57 | font-weight: bold; 58 | } 59 | 60 | .hljs-emphasis, 61 | .hljs-strongemphasis, 62 | .hljs-class .hljs-title:last-child, 63 | .hljs-typename { 64 | font-style: italic; 65 | } 66 | 67 | .hljs-keyword, 68 | .ruby .hljs-class .hljs-keyword:first-child, 69 | .ruby .hljs-function .hljs-keyword, 70 | .hljs-function, 71 | .hljs-change, 72 | .hljs-winutils, 73 | .hljs-flow, 74 | .nginx .hljs-title, 75 | .tex .hljs-special, 76 | .hljs-header, 77 | .hljs-attribute, 78 | .hljs-symbol, 79 | .hljs-symbol .hljs-string, 80 | .hljs-tag .hljs-title, 81 | .hljs-value, 82 | .alias .hljs-keyword:first-child, 83 | .css .hljs-tag, 84 | .css .unit, 85 | .css .hljs-important { 86 | color: #f92672; 87 | } 88 | 89 | .hljs-function .hljs-keyword, 90 | .hljs-class .hljs-keyword:first-child, 91 | .hljs-aspect .hljs-keyword:first-child, 92 | .hljs-constant, 93 | .hljs-typename, 94 | .css .hljs-attribute { 95 | color: #66d9ef; 96 | } 97 | 98 | .hljs-variable, 99 | .hljs-params, 100 | .hljs-class .hljs-title, 101 | .hljs-aspect .hljs-title { 102 | color: #f8f8f2; 103 | } 104 | 105 | .hljs-string, 106 | .css .hljs-id, 107 | .hljs-subst, 108 | .hljs-type, 109 | .ruby .hljs-class .hljs-parent, 110 | .hljs-built_in, 111 | .django .hljs-template_tag, 112 | .django .hljs-variable, 113 | .smalltalk .hljs-class, 114 | .django .hljs-filter .hljs-argument, 115 | .smalltalk .hljs-localvars, 116 | .smalltalk .hljs-array, 117 | .hljs-attr_selector, 118 | .hljs-pseudo, 119 | .hljs-addition, 120 | .hljs-stream, 121 | .hljs-envvar, 122 | .apache .hljs-tag, 123 | .apache .hljs-cbracket, 124 | .tex .hljs-command, 125 | .hljs-prompt, 126 | .hljs-link_label, 127 | .hljs-link_url { 128 | color: #e6db74; 129 | } 130 | 131 | .hljs-comment, 132 | .hljs-javadoc, 133 | .hljs-annotation, 134 | .hljs-decorator, 135 | .hljs-pi, 136 | .hljs-doctype, 137 | .hljs-deletion, 138 | .hljs-shebang, 139 | .apache .hljs-sqbracket, 140 | .tex .hljs-formula { 141 | color: #75715e; 142 | } 143 | 144 | .coffeescript .javascript, 145 | .javascript .xml, 146 | .tex .hljs-formula, 147 | .xml .javascript, 148 | .xml .vbscript, 149 | .xml .css, 150 | .xml .hljs-cdata, 151 | .xml .php, 152 | .php .xml { 153 | opacity: 0.5; 154 | } 155 | -------------------------------------------------------------------------------- /css/external/litegraph.css: -------------------------------------------------------------------------------- 1 | /* this CSS contains only the basic CSS needed to run the app and use it */ 2 | 3 | .lgraphcanvas { 4 | cursor: crosshair; 5 | user-select: none; 6 | -moz-user-select: none; 7 | -webkit-user-select: none; 8 | } 9 | 10 | .litecontextualmenu { 11 | padding: 4px; 12 | min-width: 100px; 13 | } 14 | 15 | .litemenu-entry { 16 | box-sizing: border-box; 17 | margin: 2px; 18 | padding-left: 20px; 19 | user-select: none; 20 | -moz-user-select: none; 21 | -webkit-user-select: none; 22 | transition: * linear 0.5s; 23 | } 24 | 25 | .litemenu-entry.disabled { 26 | opacity: 0.3; 27 | } 28 | 29 | .litemenu-entry.submenu { 30 | border-right: 2px solid #EEE; 31 | } 32 | 33 | 34 | .litemenu-entry:hover { 35 | background-color: #555; 36 | } 37 | 38 | .litemenu-entry.separator { 39 | background-color: #111; 40 | border-bottom: 1px solid #666; 41 | height: 1px; 42 | width: calc( 100% - 20px ); 43 | -moz-width: calc( 100% - 20px ); 44 | -webkit-width: calc( 100% - 20px ); 45 | } -------------------------------------------------------------------------------- /css/style.css: -------------------------------------------------------------------------------- 1 | body #layout{ 2 | background-color: #222222; 3 | margin: 0px; 4 | } 5 | 6 | #layout_main_layout_panel_left div.w2ui-panel-content { 7 | padding: 6px; 8 | } 9 | #layout_main_layout_panel_main div.w2ui-panel-content { 10 | padding: 5px; 11 | } 12 | .litemenubar-panel{ 13 | z-index: 123; 14 | color: #aaa !important; 15 | border-bottom-color: #555 !important; 16 | } 17 | 18 | /*body #layout .dg .c,*/ 19 | /*body #layout .dg .cr.function,*/ 20 | /*body #layout .dg .c select,*/ 21 | /*body #layout .dg .property-name,*/ 22 | /*body #layout .dg .title {*/ 23 | /*-webkit-touch-callout: none;*/ 24 | /*-webkit-user-select: none;*/ 25 | /*-khtml-user-select: none;*/ 26 | /*-moz-user-select: none;*/ 27 | /*-ms-user-select: none;*/ 28 | /*user-select: none;*/ 29 | /*}*/ 30 | 31 | 32 | /* only for the right column panel of dat guio */ 33 | body #layout #palette .property-name{ 34 | width :100%; 35 | } 36 | 37 | body #layout .dg .property-name{ 38 | padding-left: 12px; 39 | } 40 | 41 | body #layout #palette .dg.main { 42 | box-shadow: 0 0 8px rgba(0,0,0,0.7); 43 | overflow: auto; 44 | } 45 | 46 | /*@media only screen and (max-width : 1350px) {*/ 47 | /*body #layout.gui-auto-hide .dg.ac {*/ 48 | /*right: -233px;*/ 49 | /*}*/ 50 | 51 | /*body #layout .dg.ac:hover,*/ 52 | /*body #layout.gui-show .dg.ac {*/ 53 | /*right: 0px;*/ 54 | /*}*/ 55 | 56 | /*body #layout.gui-auto-hide.gui-transitions .dg.ac {*/ 57 | /*-webkit-transition: all 500ms cubic-bezier(0.965, 0.025, 0.735, 0.415);*/ 58 | /*-moz-transition: all 500ms cubic-bezier(0.965, 0.025, 0.735, 0.415);*/ 59 | /*-o-transition: all 500ms cubic-bezier(0.965, 0.025, 0.735, 0.415);*/ 60 | /*transition: all 500ms cubic-bezier(0.965, 0.025, 0.735, 0.415);*/ 61 | 62 | /*-webkit-transition-timing-function: cubic-bezier(0.965, 0.025, 0.735, 0.415);*/ 63 | /*-moz-transition-timing-function: cubic-bezier(0.965, 0.025, 0.735, 0.415);*/ 64 | /*-o-transition-timing-function: cubic-bezier(0.965, 0.025, 0.735, 0.415);*/ 65 | /*transition-timing-function: cubic-bezier(0.965, 0.025, 0.735, 0.415);*/ 66 | 67 | /*transition-delay: 3s;*/ 68 | /*-webkit-transition-delay: 3s;*/ 69 | /*}*/ 70 | 71 | /*body #layout.gui-transitions .dg.ac:hover,*/ 72 | /*body #layout.gui-show.gui-transitions .dg.ac {*/ 73 | /*-webkit-transition: all 500ms cubic-bezier(0.095, 0.665, 0.400, 0.835);*/ 74 | /*-moz-transition: all 500ms cubic-bezier(0.095, 0.665, 0.400, 0.835);*/ 75 | /*-o-transition: all 500ms cubic-bezier(0.095, 0.665, 0.400, 0.835);*/ 76 | /*transition: all 500ms cubic-bezier(0.095, 0.665, 0.400, 0.835);*/ 77 | 78 | /*-webkit-transition-timing-function: cubic-bezier(0.095, 0.665, 0.400, 0.835);*/ 79 | /*-moz-transition-timing-function: cubic-bezier(0.095, 0.665, 0.400, 0.835);*/ 80 | /*-o-transition-timing-function: cubic-bezier(0.095, 0.665, 0.400, 0.835);*/ 81 | /*transition-timing-function: cubic-bezier(0.095, 0.665, 0.400, 0.835);*/ 82 | 83 | /*transition-delay: 0;*/ 84 | /*-webkit-transition-delay: 0;*/ 85 | /*}*/ 86 | /*}*/ 87 | 88 | body #layout .dg.main.taller-than-window .close-button { 89 | border-top: 1px solid #444; 90 | border-right: 4px solid #444; 91 | } 92 | 93 | body #layout .dg.main .close-button { 94 | background-color: #444; 95 | display:none !important; /*we want the close button always hidden*/ 96 | } 97 | 98 | body #layout .dg.main .close-button:hover { 99 | background-color: #555; 100 | } 101 | 102 | body #layout .dg.main::-webkit-scrollbar { 103 | background: #3d3d3d; 104 | width: 11px; 105 | } 106 | 107 | body #layout .dg.main::-webkit-scrollbar-thumb { 108 | background: transparent; 109 | width: 5px; 110 | border-left: 5px solid rgba(0,0,0,0.2); 111 | border-right: 6px solid rgba(0,0,0,0.2); 112 | border-radius: 0; 113 | } 114 | 115 | body #layout .dg { 116 | color: #aaa; 117 | text-shadow: none !important; 118 | } 119 | 120 | /*body #layout .dg ul{*/ 121 | /*padding: 0px 4px 0px 0px;*/ 122 | /*}*/ 123 | 124 | body #layout .dg li:not(.folder) { 125 | background: #3d3d3d; 126 | border-bottom: 0px; 127 | padding: 0; 128 | } 129 | 130 | body #layout .dg li.save-row .button { 131 | text-shadow: none !important; 132 | } 133 | 134 | body #layout .dg li.title { 135 | padding-left: 22px; 136 | border-bottom: 1px solid #555; 137 | background: #444 url(data:image/gif;base64,R0lGODlhBQAFAJEAAP////Pz8////////yH5BAEAAAIALAAAAAAFAAUAAAIIlI+hKgFxoCgAOw==) 10px 10px no-repeat; 138 | } 139 | 140 | body #layout .dg ul .boolean:hover { 141 | background: #3d3d3d; 142 | } 143 | 144 | body #w2ui-popup .dg .cr.function, 145 | body #layout .dg .cr.function { 146 | border-top: 1px solid #444; 147 | background: #333; 148 | color: #aaa; 149 | border-bottom: 1px solid #333; 150 | border-left: none; 151 | } 152 | 153 | body #w2ui-popup .dg ul .function:hover, 154 | body #layout .dg ul .function:hover { 155 | background: #3a3a3a; 156 | border-bottom: 1px solid #2fa1d6; 157 | } 158 | 159 | body #w2ui-popup .dg .cr.function:active 160 | body #layout .dg .cr.function:active { 161 | border-top: 2px solid #444; 162 | border-bottom: 0; 163 | background: #2e2e2e; 164 | } 165 | 166 | /*body #layout .dg .c select {*/ 167 | /*margin-top: 2px;*/ 168 | /*margin-left: 3px;*/ 169 | /*padding: 3px 5px;*/ 170 | /*}*/ 171 | 172 | body #layout .dg .c select, 173 | body #layout .dg .c input[type=text], 174 | body #layout .dg .cr.number input[type=text] { 175 | background: #333; 176 | color: #999; 177 | border: 0; 178 | font-size: 10px; 179 | } 180 | 181 | body #layout .dg .c select, 182 | body #layout .dg .c select:focus { 183 | width: 99%; 184 | outline: 0; 185 | } 186 | 187 | body #layout .dg .c input[type=text]:hover { 188 | background: #444; 189 | } 190 | 191 | body #layout .dg .c input[type=text]:focus { 192 | background: #444; 193 | color: #fff; 194 | } 195 | 196 | body #layout .dg .c .slider { 197 | background: #555; 198 | } 199 | 200 | body #layout .dg .c .slider:hover { 201 | background: #666; 202 | } 203 | 204 | body #layout .dg .c .slider-fg { 205 | background: #777; 206 | } 207 | 208 | body #layout .dg .c .slider:hover .slider-fg { 209 | background: #999; 210 | } 211 | 212 | body #layout .dg li.folder { 213 | border-left: 0; 214 | } 215 | body #layout .dg .folder .folder{ 216 | padding-left:20px; 217 | } 218 | 219 | body #layout .dg.a { 220 | border-right:4px solid #3d3d3d; 221 | margin: 0; 222 | } 223 | 224 | body #layout div.w2ui-panel div.w2ui-panel .left_rotated_tab { 225 | display: block; 226 | position: relative; 227 | z-index: 125; 228 | -webkit-transform: rotate(90deg); 229 | -moz-transform: rotate(90deg); 230 | -ms-transform: rotate(90deg); 231 | -o-transform: rotate(90deg); 232 | transform: rotate(90deg); 233 | -webkit-transform-origin: 25% 0%; 234 | -moz-transform-origin: 25% 0%; 235 | -ms-transform-origin: 25% 0%; 236 | -o-transform-origin: 25% 0%; 237 | transform-origin: 25% 0%; 238 | margin: 50px 0px 105px -8px; 239 | width: 125px; 240 | padding: 0; 241 | background: #222; 242 | } 243 | 244 | body #layout div.w2ui-panel div.w2ui-panel .right_rotated_tab { 245 | display: block; 246 | position: relative; 247 | z-index: 125; 248 | -webkit-transform: rotate(-90deg); 249 | -moz-transform: rotate(-90deg); 250 | -ms-transform: rotate(-90deg); 251 | -o-transform: rotate(-90deg); 252 | transform: rotate(-90deg); 253 | -webkit-transform-origin: 25% 0%; 254 | -moz-transform-origin: 25% 0%; 255 | -ms-transform-origin: 25% 0%; 256 | -o-transform-origin: 25% 0%; 257 | transform-origin: 25% 0%; 258 | margin: 90px 0px 110px -26px; 259 | width: 110px; 260 | padding: 0; 261 | background: #222; 262 | } 263 | 264 | body #layout .dg .selector { 265 | margin-top: 20px; 266 | } 267 | 268 | 269 | #layout_layout2_panel_left div.w2ui-panel-content, #layout_layout3_panel_right div.w2ui-panel-content{ 270 | background: #222; 271 | } 272 | 273 | .w2ui-layout > div #layout_layout2_panel_left .w2ui-panel-tabs > .w2ui-tab.active, .w2ui-layout > div #layout_layout3_panel_right .w2ui-panel-tabs > .w2ui-tab.active { 274 | background-color: #3d3d3d; 275 | } 276 | 277 | #top-buttons a { 278 | color:inherit; 279 | text-decoration:none; 280 | display:block; 281 | padding:4px; 282 | } 283 | 284 | 285 | 286 | #top-buttons { 287 | margin-left: 10px; 288 | } 289 | .top-button { 290 | color:#aaa; 291 | float:left; 292 | width:120px; 293 | text-align: center; 294 | background-image: linear-gradient(#222, #3d3d3d); 295 | border: 1px solid #111111; 296 | border-top: none; 297 | border-left-color: #333; 298 | font-family: Arial, sans-serif; 299 | font-size: 16px; 300 | font-weight: bold; 301 | cursor: pointer; 302 | } 303 | 304 | .contact { 305 | width:210px; 306 | } 307 | 308 | .top-button:hover, #top-buttons .pressed { 309 | background-image: linear-gradient(#3a3a3a, #4f4f4f); 310 | color:#E5E6E7; 311 | } 312 | 313 | .top-button i { 314 | text-align: center; 315 | display: block; 316 | } 317 | body #layout .dg li.code-title { 318 | padding-left: 22px; 319 | border-bottom: 1px solid #555; 320 | background-color: #444; 321 | } 322 | #code { 323 | overflow: auto; 324 | } 325 | #code::-webkit-scrollbar { 326 | background: #3d3d3d; 327 | width: 11px; 328 | } 329 | 330 | #code::-webkit-scrollbar-thumb { 331 | background: transparent; 332 | width: 5px; 333 | border-left: 5px solid rgba(0,0,0,0.2); 334 | border-right: 6px solid rgba(0,0,0,0.2); 335 | border-radius: 0; 336 | } 337 | #code pre { 338 | margin-top: 0px; 339 | } 340 | img.texture-selector{ 341 | width:100px; 342 | height:100px; 343 | float:right; 344 | } 345 | 346 | .w2ui-inner-popup .texture-popup li{ 347 | height:100px; 348 | } 349 | .w2ui-inner-popup .texture-popup span{ 350 | text-align:center; 351 | height: 100px; 352 | line-height: 100px; 353 | width: 60%; 354 | } 355 | 356 | #mesh-changer { 357 | position: absolute; 358 | right: 15px; 359 | top: 15px; 360 | } 361 | 362 | .mesh-changer-button { 363 | color:#aaa; 364 | float:left; 365 | background-image: none; 366 | font-family: Arial, sans-serif; 367 | font-size: 16px; 368 | font-weight: bold; 369 | cursor: pointer; 370 | margin-right: 7px; 371 | } 372 | 373 | .mesh-changer-button:hover { 374 | color:#E5E6E7; 375 | } 376 | 377 | .search { 378 | margin: 14px 23px; 379 | border: 0; 380 | padding: 7px 8px; 381 | font-size: 12px; 382 | width: 80%; 383 | box-sizing: border-box; 384 | border-radius: 3px; 385 | background: #444; 386 | border: 1px solid #444; 387 | color: #999; 388 | } 389 | 390 | .search:focus { 391 | background: #484848; 392 | color: #aaa; 393 | border: 1px solid rgba(255,255,255,0.1); 394 | outline: 0; 395 | } 396 | 397 | .search::-webkit-search-cancel-button { 398 | -webkit-appearance: none; 399 | height: 1px; 400 | width: 8px; 401 | cursor: pointer; 402 | } 403 | 404 | .search::-webkit-search-cancel-button:before { 405 | height: 1px; 406 | width: 10px; 407 | content: 'x'; 408 | font-family: Arial; 409 | line-height: 0; 410 | font-size: 13px; 411 | color: #999; 412 | font-weight: bold; 413 | cursor: pointer; 414 | } 415 | 416 | .search::-webkit-input-placeholder { 417 | color: #777; 418 | } 419 | 420 | .search:-moz-placeholder { 421 | color: #777; 422 | } 423 | 424 | .search::-moz-placeholder { 425 | color: #777; 426 | } 427 | 428 | .search:-ms-input-placeholder { 429 | color: #777; 430 | } 431 | -------------------------------------------------------------------------------- /graphs/complex.json: -------------------------------------------------------------------------------- 1 | {"shader_textures":["BasketballColor","cube2"],"iteration":749,"last_node_id":42,"last_link_id":92,"links":{"0":{"data":null,"id":0,"origin_id":0,"origin_slot":0,"target_id":1,"target_slot":0},"1":{"data":null,"id":1,"origin_id":0,"origin_slot":0,"target_id":8,"target_slot":0},"2":{"data":null,"id":2,"origin_id":8,"origin_slot":2,"target_id":10,"target_slot":2},"3":{"data":null,"id":3,"origin_id":1,"origin_slot":0,"target_id":2,"target_slot":0},"4":{"data":null,"id":4,"origin_id":4,"origin_slot":0,"target_id":6,"target_slot":0},"5":{"data":null,"id":5,"origin_id":5,"origin_slot":0,"target_id":6,"target_slot":1},"6":{"data":null,"id":6,"origin_id":6,"origin_slot":0,"target_id":7,"target_slot":0},"7":{"data":null,"id":7,"origin_id":1,"origin_slot":1,"target_id":9,"target_slot":0},"8":{"data":null,"id":8,"origin_id":7,"origin_slot":1,"target_id":9,"target_slot":1},"9":{"data":null,"id":9,"origin_id":9,"origin_slot":0,"target_id":3,"target_slot":0},"10":{"data":null,"id":10,"origin_id":10,"origin_slot":0,"target_id":9,"target_slot":2},"11":{"data":null,"id":11,"origin_id":0,"origin_slot":0,"target_id":11,"target_slot":0},"12":{"data":null,"id":12,"origin_id":11,"origin_slot":1,"target_id":9,"target_slot":0},"13":{"data":null,"id":13,"origin_id":0,"origin_slot":0,"target_id":12,"target_slot":0},"14":{"data":null,"id":14,"origin_id":12,"origin_slot":2,"target_id":10,"target_slot":2},"15":{"id":15,"origin_id":15,"origin_slot":0,"target_id":13,"target_slot":0,"data":null},"16":{"id":16,"origin_id":13,"origin_slot":1,"target_id":3,"target_slot":0,"data":null},"17":{"id":17,"origin_id":18,"origin_slot":0,"target_id":16,"target_slot":1,"data":null},"18":{"id":18,"origin_id":17,"origin_slot":0,"target_id":16,"target_slot":0,"data":null},"19":{"id":19,"origin_id":16,"origin_slot":0,"target_id":14,"target_slot":0,"data":null},"20":{"id":20,"origin_id":13,"origin_slot":1,"target_id":19,"target_slot":0,"data":null},"21":{"id":21,"origin_id":14,"origin_slot":1,"target_id":19,"target_slot":1,"data":null},"22":{"id":22,"origin_id":19,"origin_slot":0,"target_id":3,"target_slot":0,"data":null},"23":{"id":23,"origin_id":19,"origin_slot":0,"target_id":3,"target_slot":0,"data":null},"24":{"id":24,"origin_id":20,"origin_slot":0,"target_id":16,"target_slot":1,"data":null},"25":{"id":25,"origin_id":15,"origin_slot":0,"target_id":22,"target_slot":0,"data":null},"26":{"id":26,"origin_id":22,"origin_slot":2,"target_id":21,"target_slot":2,"data":null},"27":{"id":27,"origin_id":21,"origin_slot":0,"target_id":19,"target_slot":2,"data":null},"28":{"id":28,"origin_id":19,"origin_slot":0,"target_id":23,"target_slot":0,"data":null},"29":{"id":29,"origin_id":14,"origin_slot":1,"target_id":19,"target_slot":0,"data":null},"30":{"id":30,"origin_id":13,"origin_slot":1,"target_id":19,"target_slot":1,"data":null},"31":{"id":31,"origin_id":19,"origin_slot":0,"target_id":24,"target_slot":0,"data":null},"32":{"id":32,"origin_id":19,"origin_slot":0,"target_id":24,"target_slot":1,"data":null},"33":{"id":33,"origin_id":24,"origin_slot":0,"target_id":3,"target_slot":0,"data":null},"34":{"id":34,"origin_id":24,"origin_slot":0,"target_id":3,"target_slot":0,"data":null},"35":{"id":35,"origin_id":19,"origin_slot":0,"target_id":3,"target_slot":0,"data":null},"36":{"id":36,"origin_id":25,"origin_slot":0,"target_id":26,"target_slot":0,"data":null},"37":{"id":37,"origin_id":26,"origin_slot":1,"target_id":21,"target_slot":2,"data":null},"38":{"id":38,"origin_id":26,"origin_slot":1,"target_id":27,"target_slot":0,"data":null},"39":{"id":39,"origin_id":27,"origin_slot":0,"target_id":21,"target_slot":2,"data":null},"40":{"id":40,"origin_id":19,"origin_slot":0,"target_id":3,"target_slot":0,"data":null},"41":{"id":41,"origin_id":27,"origin_slot":0,"target_id":28,"target_slot":0,"data":null},"42":{"id":42,"origin_id":28,"origin_slot":0,"target_id":21,"target_slot":2,"data":null},"43":{"id":43,"origin_id":26,"origin_slot":0,"target_id":21,"target_slot":2,"data":null},"44":{"id":44,"origin_id":26,"origin_slot":1,"target_id":21,"target_slot":2,"data":null},"45":{"id":45,"origin_id":14,"origin_slot":1,"target_id":19,"target_slot":1,"data":null},"46":{"id":46,"origin_id":13,"origin_slot":1,"target_id":19,"target_slot":0,"data":null},"47":{"id":47,"origin_id":13,"origin_slot":2,"target_id":21,"target_slot":2,"data":null},"48":{"id":48,"origin_id":21,"origin_slot":0,"target_id":29,"target_slot":2,"data":null},"49":{"id":49,"origin_id":13,"origin_slot":1,"target_id":29,"target_slot":1,"data":null},"50":{"id":50,"origin_id":14,"origin_slot":1,"target_id":29,"target_slot":0,"data":null},"51":{"id":51,"origin_id":29,"origin_slot":0,"target_id":3,"target_slot":0,"data":null},"52":{"id":52,"origin_id":31,"origin_slot":1,"target_id":29,"target_slot":1,"data":null},"53":{"id":53,"origin_id":30,"origin_slot":1,"target_id":29,"target_slot":0,"data":null},"54":{"id":54,"origin_id":16,"origin_slot":0,"target_id":31,"target_slot":0,"data":null},"55":{"id":55,"origin_id":15,"origin_slot":0,"target_id":30,"target_slot":0,"data":null},"56":{"id":56,"origin_id":30,"origin_slot":2,"target_id":21,"target_slot":2,"data":null},"57":{"id":57,"origin_id":31,"origin_slot":1,"target_id":32,"target_slot":0,"data":null},"58":{"id":58,"origin_id":30,"origin_slot":1,"target_id":32,"target_slot":1,"data":null},"59":{"id":59,"origin_id":32,"origin_slot":0,"target_id":3,"target_slot":0,"data":null},"60":{"id":60,"origin_id":21,"origin_slot":0,"target_id":32,"target_slot":2,"data":null},"61":{"id":61,"origin_id":30,"origin_slot":1,"target_id":32,"target_slot":0,"data":null},"62":{"id":62,"origin_id":31,"origin_slot":1,"target_id":32,"target_slot":1,"data":null},"63":{"id":63,"origin_id":31,"origin_slot":1,"target_id":33,"target_slot":0,"data":null},"64":{"id":64,"origin_id":30,"origin_slot":1,"target_id":33,"target_slot":1,"data":null},"65":{"id":65,"origin_id":21,"origin_slot":0,"target_id":33,"target_slot":2,"data":null},"66":{"id":66,"origin_id":33,"origin_slot":0,"target_id":3,"target_slot":0,"data":null},"67":{"id":67,"origin_id":16,"origin_slot":0,"target_id":34,"target_slot":0,"data":null},"68":{"id":68,"origin_id":15,"origin_slot":0,"target_id":35,"target_slot":0,"data":null},"69":{"id":69,"origin_id":35,"origin_slot":2,"target_id":36,"target_slot":2,"data":null},"70":{"id":70,"origin_id":35,"origin_slot":1,"target_id":37,"target_slot":1,"data":null},"71":{"id":71,"origin_id":36,"origin_slot":0,"target_id":37,"target_slot":2,"data":null},"72":{"id":72,"origin_id":34,"origin_slot":1,"target_id":37,"target_slot":0,"data":null},"73":{"id":73,"origin_id":35,"origin_slot":1,"target_id":37,"target_slot":1,"data":null},"74":{"id":74,"origin_id":37,"origin_slot":0,"target_id":3,"target_slot":0,"data":null},"75":{"id":75,"origin_id":37,"origin_slot":0,"target_id":38,"target_slot":1,"data":null},"76":{"id":76,"origin_id":38,"origin_slot":0,"target_id":3,"target_slot":0,"data":null},"77":{"id":77,"origin_id":34,"origin_slot":1,"target_id":38,"target_slot":0,"data":null},"78":{"id":78,"origin_id":35,"origin_slot":1,"target_id":38,"target_slot":0,"data":null},"79":{"id":79,"origin_id":34,"origin_slot":1,"target_id":38,"target_slot":0,"data":null},"80":{"id":80,"origin_id":15,"origin_slot":0,"target_id":39,"target_slot":0,"data":null},"81":{"id":81,"origin_id":39,"origin_slot":1,"target_id":38,"target_slot":0,"data":null},"82":{"id":82,"origin_id":40,"origin_slot":0,"target_id":38,"target_slot":0,"data":null},"83":{"id":83,"origin_id":38,"origin_slot":0,"target_id":3,"target_slot":0,"data":null},"84":{"id":84,"origin_id":35,"origin_slot":1,"target_id":38,"target_slot":0,"data":null},"85":{"id":85,"origin_id":37,"origin_slot":0,"target_id":38,"target_slot":0,"data":null},"86":{"id":86,"origin_id":35,"origin_slot":1,"target_id":38,"target_slot":1,"data":null},"87":{"id":87,"origin_id":35,"origin_slot":1,"target_id":38,"target_slot":0,"data":null},"88":{"id":88,"origin_id":37,"origin_slot":0,"target_id":38,"target_slot":1,"data":null},"89":{"id":89,"origin_id":37,"origin_slot":0,"target_id":38,"target_slot":0,"data":null},"90":{"id":90,"origin_id":35,"origin_slot":1,"target_id":38,"target_slot":1,"data":null},"91":{"id":91,"origin_id":38,"origin_slot":0,"target_id":41,"target_slot":0,"data":null}},"config":{},"nodes":[{"id":17,"title":"PixelNormalWS","type":"coordinates/PixelNormalWS","pos":[45,534],"size":{"0":124,"1":20},"flags":{},"outputs":[{"name":"Pixel Normal","type":"vec3","types":{"vec3":1},"links":[18]}],"shader_piece":{"id":"pixel_normal_ws","includes":{"a_normal":1,"u_model":1,"v_normal":1}},"codes":[{"vertex":{"header":{},"body_hash":{"794463831":{"str":"v_normal = (u_model * vec4(a_normal, 0.0)).xyz;\n"}},"body_ids":[794463831],"includes":{"a_normal":1,"u_model":1,"v_normal":1},"scope":""},"fragment":{"header":{},"body_hash":{"-1326236929":{"str":"vec3 pixel_normal_ws = normal;\n"}},"body_ids":[-1326236929],"includes":{"a_normal":1,"u_model":1,"v_normal":1},"scope":""},"output_var":"pixel_normal_ws","order":0}],"properties":{}},{"id":20,"title":"CameraToPixelWS","type":"coordinates/CameraToPixelWS","pos":[39,607],"size":{"0":145,"1":20},"flags":{},"outputs":[{"name":"Camera To Pixel","type":"vec3","types":{"vec3":1},"links":[24]}],"shader_piece":{"id":"cameratopixelws","includes":{"u_eye":1,"v_pos":1}},"codes":[{"vertex":{"header":{},"body_hash":{},"body_ids":[],"includes":{"u_eye":1,"v_pos":1},"scope":""},"fragment":{"header":{},"body_hash":{"-488000329":{"str":"vec3 camera_to_pixel_ws = normalize(v_pos - u_eye);\n"}},"body_ids":[-488000329],"includes":{"u_eye":1,"v_pos":1},"scope":""},"output_var":"camera_to_pixel_ws","order":1}],"properties":{}},{"id":16,"title":"Reflect","type":"texture/Reflect","pos":[253,566],"size":{"0":140,"1":34},"flags":{},"inputs":[{"name":"normal","type":"vec3","link":18,"types":{"vec3":1}},{"name":"vector","type":"vec3","link":24,"types":{"vec3":1}}],"outputs":[{"name":"reflect vector","type":"vec3","types":{"vec3":1},"links":[67]}],"shader_piece":{"name":"reflect","id":"2paramfunc","includes":{}},"codes":[{"vertex":{"header":{},"body_hash":{"794463831":{"str":"v_normal = (u_model * vec4(a_normal, 0.0)).xyz;\n","order":3}},"body_ids":[794463831],"includes":{"a_normal":1,"u_model":1,"v_normal":1,"u_eye":1,"v_pos":1},"scope":"","order":3},"fragment":{"header":{},"body_hash":{"294262404":{"str":"vec3 reflect_16 = reflect(camera_to_pixel_ws,pixel_normal_ws);\n"},"-1326236929":{"str":"vec3 pixel_normal_ws = normal;\n","order":3},"-488000329":{"str":"vec3 camera_to_pixel_ws = normalize(v_pos - u_eye);\n","order":3}},"body_ids":[-488000329,-1326236929,294262404],"includes":{"a_normal":1,"u_model":1,"v_normal":1,"u_eye":1,"v_pos":1},"scope":"","order":3},"output_var":"reflect_16","order":3}],"properties":{}},{"id":34,"title":"TextureSampleCube","type":"texture/TextureSampleCube","pos":[500,506],"size":[170,165],"flags":{},"inputs":[{"name":"vec3","type":"vec3","link":67,"types":{}}],"outputs":[{"name":"Cubemap","type":"Cubemap","types":{},"links":null},{"name":"Color","type":"vec4","types":{"vec4":1},"links":[72]}],"shader_piece":{"id":"texture_sample_cube","includes":{}},"codes":[{"vertex":{"header":{},"body_hash":{},"body_ids":[],"includes":{},"scope":""},"fragment":{"header":{},"body_hash":{},"body_ids":[],"includes":{},"scope":""},"output_var":""},{"vertex":{"header":{},"body_hash":{"794463831":{"str":"v_normal = (u_model * vec4(a_normal, 0.0)).xyz;\n","order":5}},"body_ids":[794463831],"includes":{"a_normal":1,"u_model":1,"v_normal":1,"u_eye":1,"v_pos":1},"scope":"","order":5},"fragment":{"header":{"uniform samplerCube u_cube2_texture;\n":1},"body_hash":{"294262404":{"str":"vec3 reflect_16 = reflect(camera_to_pixel_ws,pixel_normal_ws);\n","order":5},"-359242164":{"str":"vec4 color_34 = textureCube(u_cube2_texture, reflect_16);\n"},"-1326236929":{"str":"vec3 pixel_normal_ws = normal;\n","order":5},"-488000329":{"str":"vec3 camera_to_pixel_ws = normalize(v_pos - u_eye);\n","order":5}},"body_ids":[-488000329,-1326236929,294262404,-359242164],"includes":{"a_normal":1,"u_model":1,"v_normal":1,"u_eye":1,"v_pos":1},"scope":"","order":5},"output_var":"color_34","order":5}],"properties":{"name":"cube2"}},{"id":15,"title":"TextureCoords","type":"coordinates/TextureCoords","pos":[266,811],"size":{"0":123,"1":20},"flags":{},"outputs":[{"name":"UVs","type":"vec2","types":{"vec2":1},"links":[68]}],"shader_piece":{"id":"uvs","includes":{"a_coord":1,"v_coord":1},"already_included":false},"codes":[{"vertex":{"header":{},"body_hash":{"1641341615":{"str":"v_coord = a_coord;\n"}},"body_ids":[1641341615],"includes":{"a_coord":1,"v_coord":1},"scope":""},"fragment":{"header":{},"body_hash":{},"body_ids":[],"includes":{"a_coord":1,"v_coord":1},"scope":""},"output_var":"v_coord","order":2}],"properties":{"UTiling":1,"VTiling":1}},{"id":36,"title":"SmoothStep","type":"texture/SmoothStep","pos":[752,778],"size":{"0":140,"1":48},"flags":{},"inputs":[{"name":"lower","type":"float","link":null,"types":{"float":1},"label":"lower=0.300"},{"name":"upper","type":"float","link":null,"types":{"float":1},"label":"upper=1.000"},{"name":"x","type":"float","link":69,"types":{"float":1}}],"outputs":[{"name":"Result","type":"float","types":{"float":1},"links":[71]}],"shader_piece":{"id":"smoothsteep","includes":{}},"codes":[{"vertex":{"header":{},"body_hash":{"1641341615":{"str":"v_coord = a_coord;\n","order":6}},"body_ids":[1641341615],"includes":{"a_coord":1,"v_coord":1},"scope":"","order":6},"fragment":{"header":{"uniform sampler2D u_BasketballColor_texture;\n":1},"body_hash":{"340067760":{"str":"vec4 color_35 = texture2D(u_BasketballColor_texture, v_coord);\n","order":6},"-1208350750":{"str":"float smoothed_36 = smoothstep(0.300,1.000, color_35.r);\n"}},"body_ids":[340067760,-1208350750],"includes":{"a_coord":1,"v_coord":1},"scope":"","order":6},"output_var":"smoothed_36","order":6}],"properties":{"lower":0.3,"upper":1}},{"id":37,"title":"Mix","type":"operations/Mix","pos":[791,544],"size":{"0":140,"1":48},"data":null,"flags":{},"inputs":[{"name":"A","type":"","link":72,"types":{"vec4":1},"types_list":{"float":1,"vec3":1,"vec4":1,"vec2":1},"use_t":1},{"name":"B","type":"","link":73,"types":{"vec4":1},"types_list":{"float":1,"vec3":1,"vec4":1,"vec2":1},"use_t":1},{"name":"C","type":"","link":71,"types":{"vec4":1},"types_list":{"float":1,"vec3":1,"vec4":1,"vec2":1},"use_t":1,"label":"alpha"}],"outputs":[{"name":"Result","type":"","types":{"vec4":1},"links":[89],"types_list":{"float":1,"vec3":1,"vec4":1,"vec2":1},"use_t":1}],"shader_piece":{"name":"mix","id":"3paramfunc","includes":{}},"codes":[{"vertex":{"header":{},"body_hash":{"794463831":{"str":"v_normal = (u_model * vec4(a_normal, 0.0)).xyz;\n","order":7},"1641341615":{"str":"v_coord = a_coord;\n","order":7}},"body_ids":[1641341615,794463831],"includes":{"a_coord":1,"v_coord":1,"a_normal":1,"u_model":1,"v_normal":1,"u_eye":1,"v_pos":1},"scope":"","order":7},"fragment":{"header":{"uniform sampler2D u_BasketballColor_texture;\n":1,"uniform samplerCube u_cube2_texture;\n":1},"body_hash":{"294262404":{"str":"vec3 reflect_16 = reflect(camera_to_pixel_ws,pixel_normal_ws);\n","order":7},"340067760":{"str":"vec4 color_35 = texture2D(u_BasketballColor_texture, v_coord);\n","order":7},"-1232938998":{"str":"vec4 mix_37 = mix(color_34,color_35,smoothed_36);\n"},"-1208350750":{"str":"float smoothed_36 = smoothstep(0.300,1.000, color_35.r);\n","order":7},"-359242164":{"str":"vec4 color_34 = textureCube(u_cube2_texture, reflect_16);\n","order":7},"-1326236929":{"str":"vec3 pixel_normal_ws = normal;\n","order":7},"-488000329":{"str":"vec3 camera_to_pixel_ws = normalize(v_pos - u_eye);\n","order":7}},"body_ids":[340067760,-488000329,-1326236929,294262404,-359242164,-1208350750,-1232938998],"includes":{"a_coord":1,"v_coord":1,"a_normal":1,"u_model":1,"v_normal":1,"u_eye":1,"v_pos":1},"scope":"","order":7},"output_var":"mix_37","order":7}],"T_types":{"vec4":1},"properties":{"alpha":0.5}},{"id":35,"title":"TextureSample","type":"texture/TextureSample","pos":[504,774],"size":[170,165],"flags":{},"inputs":[{"name":"UVs","type":"vec2","link":68,"types":{"vec2":1}}],"outputs":[{"name":"Texture","type":"Texture","types":{"Texture":1},"links":null},{"name":"Color","type":"vec4","types":{"vec4":1},"links":[73,90]},{"name":"R","type":"float","types":{"float":1},"links":[69]},{"name":"G","type":"float","types":{"float":1},"links":null},{"name":"B","type":"float","types":{"float":1},"links":null},{"name":"A","type":"float","types":{"float":1},"links":null}],"shader_piece":{"id":"texture_sample","includes":{}},"codes":[{"vertex":{"header":{},"body_hash":{},"body_ids":[],"includes":{},"scope":""},"fragment":{"header":{},"body_hash":{},"body_ids":[],"includes":{},"scope":""},"output_var":""},{"vertex":{"header":{},"body_hash":{"1641341615":{"str":"v_coord = a_coord;\n","order":4}},"body_ids":[1641341615],"includes":{"a_coord":1,"v_coord":1},"scope":"","order":4},"fragment":{"header":{"uniform sampler2D u_BasketballColor_texture;\n":1},"body_hash":{"340067760":{"str":"vec4 color_35 = texture2D(u_BasketballColor_texture, v_coord);\n"}},"body_ids":[340067760],"includes":{"a_coord":1,"v_coord":1},"scope":"","order":4},"output_var":"color_35","order":4},{"vertex":{"header":{},"body_hash":{"1641341615":{"str":"v_coord = a_coord;\n","order":4}},"body_ids":[1641341615],"includes":{"a_coord":1,"v_coord":1},"scope":""},"fragment":{"header":{"uniform sampler2D u_BasketballColor_texture;\n":1},"body_hash":{"340067760":{"str":"vec4 color_35 = texture2D(u_BasketballColor_texture, v_coord);\n"}},"body_ids":[340067760],"includes":{"a_coord":1,"v_coord":1},"scope":""},"output_var":"color_35.r","order":4},{"vertex":{"header":{},"body_hash":{"1641341615":{"str":"v_coord = a_coord;\n","order":4}},"body_ids":[1641341615],"includes":{"a_coord":1,"v_coord":1},"scope":""},"fragment":{"header":{"uniform sampler2D u_BasketballColor_texture;\n":1},"body_hash":{"340067760":{"str":"vec4 color_35 = texture2D(u_BasketballColor_texture, v_coord);\n"}},"body_ids":[340067760],"includes":{"a_coord":1,"v_coord":1},"scope":""},"output_var":"color_35.g","order":4},{"vertex":{"header":{},"body_hash":{"1641341615":{"str":"v_coord = a_coord;\n","order":4}},"body_ids":[1641341615],"includes":{"a_coord":1,"v_coord":1},"scope":""},"fragment":{"header":{"uniform sampler2D u_BasketballColor_texture;\n":1},"body_hash":{"340067760":{"str":"vec4 color_35 = texture2D(u_BasketballColor_texture, v_coord);\n"}},"body_ids":[340067760],"includes":{"a_coord":1,"v_coord":1},"scope":""},"output_var":"color_35.b","order":4},{"vertex":{"header":{},"body_hash":{"1641341615":{"str":"v_coord = a_coord;\n","order":4}},"body_ids":[1641341615],"includes":{"a_coord":1,"v_coord":1},"scope":""},"fragment":{"header":{"uniform sampler2D u_BasketballColor_texture;\n":1},"body_hash":{"340067760":{"str":"vec4 color_35 = texture2D(u_BasketballColor_texture, v_coord);\n"}},"body_ids":[340067760],"includes":{"a_coord":1,"v_coord":1},"scope":""},"output_var":"color_35.a","order":4}],"properties":{"name":"BasketballColor"}},{"id":41,"title":"Output","type":"core/Output","pos":[1281,564],"size":[125,250],"flags":{},"inputs":[{"name":"albedo","type":"vec3","link":91,"types":{"vec4":1}},{"name":"normal","type":"vec3","link":null,"types":{"vec3":1}},{"name":"emission","type":"vec3","link":null,"types":{"vec4":1}},{"name":"specular","type":"number","link":null,"types":{"number":1}},{"name":"gloss","type":"number","link":null,"types":{"number":1}},{"name":"alpha","type":"number","link":null,"types":{"number":1}},{"name":"world position offset","type":"vec3","link":null,"types":{"vec3":1}}],"shader_piece":{},"codes":[],"properties":{}},{"id":38,"title":"Add","type":"operations/Add","pos":[1056,583],"size":{"0":140,"1":34},"data":null,"flags":{},"inputs":[{"name":"A","type":"","link":89,"types":{"vec4":1},"types_list":{"float":1,"vec3":1,"vec4":1,"vec2":1},"use_t":1,"label":"A"},{"name":"B","type":"","link":90,"types":{"vec4":1},"types_list":{"float":1,"vec3":1,"vec4":1,"vec2":1},"use_t":1,"label":"B"}],"outputs":[{"name":"Result","type":"","types":{"vec4":1},"links":[83,91],"types_list":{"float":1,"vec3":1,"vec4":1,"vec2":1},"use_t":1}],"shader_piece":{"op":"+","id":"operation","includes":{}},"codes":[{"vertex":{"header":{},"body_hash":{"794463831":{"str":"v_normal = (u_model * vec4(a_normal, 0.0)).xyz;\n","order":8},"1641341615":{"str":"v_coord = a_coord;\n","order":8}},"body_ids":[1641341615,794463831],"includes":{"a_coord":1,"v_coord":1,"a_normal":1,"u_model":1,"v_normal":1,"u_eye":1,"v_pos":1},"scope":"","order":8},"fragment":{"header":{"uniform sampler2D u_BasketballColor_texture;\n":1,"uniform samplerCube u_cube2_texture;\n":1},"body_hash":{"294262404":{"str":"vec3 reflect_16 = reflect(camera_to_pixel_ws,pixel_normal_ws);\n","order":8},"340067760":{"str":"vec4 color_35 = texture2D(u_BasketballColor_texture, v_coord);\n","order":8},"-438725925":{"str":"vec4 add_38 = mix_37 + color_35;\n"},"-1232938998":{"str":"vec4 mix_37 = mix(color_34,color_35,smoothed_36);\n","order":8},"-1208350750":{"str":"float smoothed_36 = smoothstep(0.300,1.000, color_35.r);\n","order":8},"-359242164":{"str":"vec4 color_34 = textureCube(u_cube2_texture, reflect_16);\n","order":8},"-1326236929":{"str":"vec3 pixel_normal_ws = normal;\n","order":8},"-488000329":{"str":"vec3 camera_to_pixel_ws = normalize(v_pos - u_eye);\n","order":8}},"body_ids":[340067760,-488000329,-1326236929,294262404,-359242164,-1208350750,-1232938998,-438725925],"includes":{"a_coord":1,"v_coord":1,"a_normal":1,"u_model":1,"v_normal":1,"u_eye":1,"v_pos":1},"scope":"","order":8},"output_var":"add_38","order":8}],"T_types":{"vec4":1},"properties":{"A":0,"B":0}}]} -------------------------------------------------------------------------------- /graphs/empty_graph.json: -------------------------------------------------------------------------------- 1 | {"shader_textures":[],"iteration":19,"last_node_id":6,"last_link_id":1,"links":{},"config":{},"nodes":[{"id":5,"title":"Output","type":"core/Output","pos":[850,285],"size":[125,250],"flags":{},"inputs":[{"name":"albedo","type":"vec3","link":null,"types":{"vec3":1,"vec4":1}},{"name":"normal","type":"vec3","link":null,"types":{"vec3":1,"vec4":1}},{"name":"emission","type":"vec3","link":null,"types":{"vec3":1,"vec4":1}},{"name":"specular","type":"float","link":null,"types":{"float":1}},{"name":"gloss","type":"float","link":null,"types":{"float":1}},{"name":"alpha","type":"float","link":null,"types":{"float":1}},{"name":"alpha clip","type":"float","link":null,"types":{"float":1}},{"name":"refraction","type":"float","link":null,"types":{"float":1}},{"name":"vertex offset","type":"float","link":null,"types":{"float":1}}],"shader_piece":{},"codes":[],"T_out_types":{},"T_in_types":{},"properties":{"is_global":false,"global_name":"Output"},"options":{"global_name":{"hidden":true},"is_global":{"reloadonchange":1,"callback":"callbackIsGlobal"}}}],"node_flags":{"flip_normals":false,"depth_test":true,"depth_write":true,"blending":false,"blending_mode":"additive","two_sided":false,"blend":false},"scene_properties":{"color":"#ffffff","light_dir_x":1,"light_dir_y":1,"light_dir_z":1,"light_mode":"phong","alpha_threshold":0.5}} -------------------------------------------------------------------------------- /graphs/glass.json: -------------------------------------------------------------------------------- 1 | {"shader_textures":[],"iteration":604,"last_node_id":32,"last_link_id":51,"links":{"1":{"id":1,"origin_id":5,"origin_slot":1,"target_id":4,"target_slot":0,"data":null,"color":null},"2":{"id":2,"origin_id":6,"origin_slot":0,"target_id":4,"target_slot":4,"data":null,"color":null},"3":{"id":3,"origin_id":8,"origin_slot":0,"target_id":4,"target_slot":7,"data":null,"color":null},"4":{"id":4,"origin_id":9,"origin_slot":0,"target_id":10,"target_slot":2,"data":null,"color":null},"5":{"id":5,"origin_id":8,"origin_slot":0,"target_id":10,"target_slot":0,"data":null,"color":null},"6":{"id":6,"origin_id":11,"origin_slot":0,"target_id":10,"target_slot":1,"data":null,"color":null},"7":{"id":7,"origin_id":10,"origin_slot":0,"target_id":4,"target_slot":7,"data":null,"color":null},"8":{"id":8,"origin_id":13,"origin_slot":0,"target_id":4,"target_slot":0,"data":null,"color":null},"9":{"id":9,"origin_id":6,"origin_slot":0,"target_id":4,"target_slot":3,"data":null,"color":null},"10":{"id":10,"origin_id":14,"origin_slot":0,"target_id":9,"target_slot":1,"data":null,"color":null},"11":{"id":11,"origin_id":6,"origin_slot":0,"target_id":4,"target_slot":3,"data":null,"color":null},"12":{"id":12,"origin_id":15,"origin_slot":0,"target_id":16,"target_slot":1,"data":null,"color":null},"13":{"id":13,"origin_id":13,"origin_slot":0,"target_id":16,"target_slot":0,"data":null,"color":null},"14":{"id":14,"origin_id":9,"origin_slot":0,"target_id":17,"target_slot":2,"data":null,"color":null},"15":{"id":15,"origin_id":15,"origin_slot":0,"target_id":17,"target_slot":1,"data":null,"color":null},"16":{"id":16,"origin_id":13,"origin_slot":0,"target_id":17,"target_slot":0,"data":null,"color":null},"17":{"id":17,"origin_id":17,"origin_slot":0,"target_id":4,"target_slot":0,"data":null,"color":null},"18":{"id":18,"origin_id":13,"origin_slot":0,"target_id":4,"target_slot":0,"data":null,"color":null},"19":{"id":19,"origin_id":18,"origin_slot":0,"target_id":4,"target_slot":5,"data":null,"color":null},"20":{"id":20,"origin_id":6,"origin_slot":0,"target_id":4,"target_slot":4,"data":null,"color":null},"21":{"id":21,"origin_id":6,"origin_slot":0,"target_id":4,"target_slot":3,"data":null,"color":null},"22":{"id":22,"origin_id":19,"origin_slot":0,"target_id":21,"target_slot":0,"data":null,"color":null},"23":{"id":23,"origin_id":20,"origin_slot":0,"target_id":21,"target_slot":1,"data":null,"color":null},"24":{"id":24,"origin_id":9,"origin_slot":0,"target_id":21,"target_slot":2,"data":null,"color":null},"25":{"id":25,"origin_id":21,"origin_slot":0,"target_id":4,"target_slot":0,"data":null,"color":null},"26":{"id":26,"origin_id":21,"origin_slot":0,"target_id":4,"target_slot":2,"data":null,"color":null},"27":{"id":27,"origin_id":13,"origin_slot":0,"target_id":4,"target_slot":0,"data":null,"color":null},"28":{"id":28,"origin_id":22,"origin_slot":0,"target_id":21,"target_slot":2,"data":null,"color":null},"29":{"id":29,"origin_id":23,"origin_slot":0,"target_id":22,"target_slot":1,"data":null,"color":null},"30":{"id":30,"origin_id":24,"origin_slot":1,"target_id":4,"target_slot":0,"data":null,"color":null},"31":{"id":31,"origin_id":6,"origin_slot":0,"target_id":4,"target_slot":4,"data":null,"color":null},"32":{"id":32,"origin_id":10,"origin_slot":0,"target_id":4,"target_slot":7,"data":null,"color":null},"33":{"id":33,"origin_id":24,"origin_slot":1,"target_id":26,"target_slot":0,"data":null,"color":null},"34":{"id":34,"origin_id":26,"origin_slot":0,"target_id":4,"target_slot":0,"data":null,"color":null},"35":{"id":35,"origin_id":9,"origin_slot":0,"target_id":10,"target_slot":2,"data":null,"color":null},"36":{"id":36,"origin_id":26,"origin_slot":0,"target_id":27,"target_slot":0,"data":null,"color":null},"37":{"id":37,"origin_id":6,"origin_slot":0,"target_id":27,"target_slot":4,"data":null,"color":null},"38":{"id":38,"origin_id":18,"origin_slot":0,"target_id":27,"target_slot":5,"data":null,"color":null},"39":{"id":39,"origin_id":10,"origin_slot":0,"target_id":27,"target_slot":7,"data":null,"color":null},"40":{"id":40,"origin_id":8,"origin_slot":0,"target_id":28,"target_slot":0,"color":null,"data":null},"41":{"id":41,"origin_id":11,"origin_slot":0,"target_id":28,"target_slot":1,"color":null,"data":null},"42":{"id":42,"origin_id":9,"origin_slot":0,"target_id":28,"target_slot":2,"color":null,"data":null},"43":{"id":43,"origin_id":28,"origin_slot":0,"target_id":27,"target_slot":7,"color":null,"data":null},"44":{"id":44,"origin_id":14,"origin_slot":0,"target_id":29,"target_slot":1,"color":null,"data":null},"45":{"id":45,"origin_id":29,"origin_slot":0,"target_id":30,"target_slot":2,"color":null,"data":null},"46":{"id":46,"origin_id":11,"origin_slot":0,"target_id":30,"target_slot":1,"color":null,"data":null},"47":{"id":47,"origin_id":8,"origin_slot":0,"target_id":30,"target_slot":0,"color":null,"data":null},"48":{"id":48,"origin_id":30,"origin_slot":0,"target_id":27,"target_slot":7,"color":null,"data":null},"49":{"id":49,"origin_id":24,"origin_slot":1,"target_id":31,"target_slot":0,"color":null,"data":null},"50":{"id":50,"origin_id":31,"origin_slot":0,"target_id":27,"target_slot":0,"color":null,"data":null}},"config":{},"nodes":[{"id":27,"title":"Output","type":"core/Output","pos":[682,272],"size":[125,250],"flags":{},"inputs":[{"name":"albedo","type":"vec3","link":50,"types":{"vec3":1,"vec4":1}},{"name":"normal","type":"vec3","link":null,"types":{"vec3":1,"vec4":1}},{"name":"emission","type":"vec3","link":null,"types":{"vec3":1,"vec4":1}},{"name":"specular","type":"float","link":null,"types":{"float":1}},{"name":"gloss","type":"float","link":37,"types":{"float":1}},{"name":"alpha","type":"float","link":38,"types":{"float":1}},{"name":"alpha clip","type":"float","link":null,"types":{"float":1}},{"name":"refraction","type":"float","link":48,"types":{"float":1}},{"name":"vertex offset","type":"float","link":null,"types":{"float":1}}],"outputs":null,"shader_piece":{},"codes":[],"T_out_types":{},"T_in_types":{},"in_conected_using_T":0,"properties":{"is_global":false,"global_name":"Output"},"options":{"global_name":{"hidden":true},"is_global":{"reloadonchange":1,"callback":"callbackIsGlobal"}}},{"id":14,"title":"Number","type":"constants/Number","pos":[175,679],"size":{"0":74,"1":20},"flags":{},"inputs":null,"outputs":[{"name":"value","type":"float","types":{"float":1},"links":[44],"label":"2.770"}],"shader_piece":{"type":"float","id":"constant","includes":{"u_model":1,"a_normal":1,"v_normal":1}},"codes":[{"vertex":{"header":{},"body_hash":{},"includes":{"1161914576":"v_normal","-712412449":"u_model","-1077364091":"a_normal"},"scope":"","order":2},"fragment":{"header":{},"body_hash":{"-1055437206":{"str":"float float_14 = 2.770;\n","order":2}},"includes":{"1161914576":"v_normal","-712412449":"u_model","-1077364091":"a_normal"},"scope":"","order":2},"output_var":"float_14"}],"T_out_types":{},"T_in_types":{},"in_conected_using_T":0,"properties":{"value":2.77,"is_global":false,"global_name":"Number"},"options":{"global_name":{"hidden":true},"is_global":{"reloadonchange":1,"callback":"callbackIsGlobal"}}},{"id":24,"title":"TextureSampleCube","type":"texture/TextureSampleCube","pos":[230,123],"size":[170,165],"flags":{},"inputs":[{"name":"vec3","type":"vec3","link":null,"types":{}}],"outputs":[{"name":"Cubemap","type":"Cubemap","types":{},"links":null},{"name":"Color","type":"vec4","types":{"vec4":1},"links":[49]}],"shader_piece":{"id":"texture_sample_cube","includes":{}},"codes":[null,{"vertex":{"header":{},"body_hash":{},"includes":{"110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws","1161914576":"v_normal"},"scope":"","order":5},"fragment":{"header":{"1934770139":"uniform samplerCube u_cube_default_texture;\n"},"body_hash":{"965832708":{"str":"vec4 color_24 = textureCube(u_cube_default_texture, reflected_vector);\n","order":5},"-860329552":{"str":"vec3 pixel_normal_ws = normal;\n vec3 reflected_vector = reflect(view_dir,pixel_normal_ws);\n","order":4}},"includes":{"110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws","1161914576":"v_normal"},"scope":"","order":5},"output_var":"color_24"}],"T_out_types":{},"T_in_types":{},"in_conected_using_T":0,"properties":{"name":"cube_default","texture_url":"assets/textures/texture/cube_default.jpg","is_global":false,"global_name":"TextureSampleCube"},"options":{"texture_url":{"hidden":1},"global_name":{"hidden":true},"is_global":{"reloadonchange":1,"callback":"callbackIsGlobal"}}},{"id":6,"title":"Number","type":"constants/Number","pos":[459,322],"size":{"0":74,"1":20},"flags":{},"inputs":null,"outputs":[{"name":"value","type":"float","types":{"float":1},"links":[37],"label":"80.000"}],"shader_piece":{"type":"float","id":"constant","includes":{"u_model":1,"a_normal":1,"v_normal":1}},"codes":[{"vertex":{"header":{},"body_hash":{},"includes":{"1161914576":"v_normal","-712412449":"u_model","-1077364091":"a_normal"},"scope":"","order":0},"fragment":{"header":{},"body_hash":{"2032974557":{"str":"float float_6 = 80.000;\n","order":0}},"includes":{"1161914576":"v_normal","-712412449":"u_model","-1077364091":"a_normal"},"scope":"","order":0},"output_var":"float_6"}],"T_out_types":{},"T_in_types":{},"in_conected_using_T":0,"properties":{"value":80,"is_global":false,"global_name":"Number"},"options":{"global_name":{"hidden":true},"is_global":{"reloadonchange":1,"callback":"callbackIsGlobal"}}},{"id":31,"title":"Mul","type":"math/Mul","pos":[493,221],"size":{"0":140,"1":34},"data":null,"flags":{},"inputs":[{"name":"A","type":"","link":49,"types":{"float":1,"vec4":1},"types_list":{"float":1,"vec3":1,"vec4":1,"vec2":1},"use_t":1,"label":"A"},{"name":"B","type":"","link":null,"types":{"float":1,"vec4":1},"types_list":{"float":1,"vec3":1,"vec4":1,"vec2":1},"use_t":1,"label":"B=0.400"}],"outputs":[{"name":"Result","type":"","types":{"vec4":1},"links":[50],"types_list":{"float":1},"use_t":1}],"shader_piece":{"op":"*","id":"operation","includes":{}},"codes":[{"vertex":{"header":{},"body_hash":{},"includes":{"110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws","1161914576":"v_normal","-712412449":"u_model","-1077364091":"a_normal"},"scope":"","order":7},"fragment":{"header":{"1934770139":"uniform samplerCube u_cube_default_texture;\n"},"body_hash":{"593641086":{"str":"vec4 mul_31 = color_24 * float_B31;\n","order":7},"965832708":{"str":"vec4 color_24 = textureCube(u_cube_default_texture, reflected_vector);\n","order":5},"1071919323":{"str":"float float_B31 = 0.400;\n","order":6},"1947131590":{"str":"float mix_30 = mix(float_8,float_11,fresnel_29);\n","order":8},"2032974557":{"str":"float float_6 = 80.000;\n","order":0},"-860329552":{"str":"vec3 pixel_normal_ws = normal;\n vec3 reflected_vector = reflect(view_dir,pixel_normal_ws);\n","order":4},"-1432218033":{"str":"float float_18 = 0.300;\n","order":1},"-1010391876":{"str":"float fresnel_fresnel_29 = dot(normal, -view_dir);\n float fresnel_29 = pow( 1.0 - clamp(fresnel_fresnel_29,0.0,1.0), float_14);\n","order":6},"-1055437206":{"str":"float float_14 = 2.770;\n","order":2},"-236493712":{"str":"float float_8 = 1.000;\n","order":4},"-850033206":{"str":"float float_11 = 1.400;\n","order":3}},"includes":{"110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws","1161914576":"v_normal","1196168179":"view_dir","-712412449":"u_model","-1077364091":"a_normal"},"scope":"","order":7},"output_var":"mul_31"}],"T_out_types":{"vec4":1},"T_in_types":{"float":1,"vec4":1},"in_conected_using_T":1,"properties":{"A":0,"B":0.4,"is_global":false,"global_name":"Mul"},"options":{"global_name":{"hidden":true},"is_global":{"reloadonchange":1,"callback":"callbackIsGlobal","hidden":true}}},{"id":18,"title":"Number","type":"constants/Number","pos":[454,405],"size":{"0":74,"1":20},"flags":{},"inputs":null,"outputs":[{"name":"value","type":"float","types":{"float":1},"links":[38],"label":"0.300"}],"shader_piece":{"type":"float","id":"constant","includes":{"u_model":1,"a_normal":1,"v_normal":1}},"codes":[{"vertex":{"header":{},"body_hash":{},"includes":{"1161914576":"v_normal","-712412449":"u_model","-1077364091":"a_normal"},"scope":"","order":1},"fragment":{"header":{},"body_hash":{"-1432218033":{"str":"float float_18 = 0.300;\n","order":1}},"includes":{"1161914576":"v_normal","-712412449":"u_model","-1077364091":"a_normal"},"scope":"","order":1},"output_var":"float_18"}],"T_out_types":{},"T_in_types":{},"in_conected_using_T":0,"properties":{"value":0.3,"is_global":false,"global_name":"Number"},"options":{"global_name":{"hidden":true},"is_global":{"reloadonchange":1,"callback":"callbackIsGlobal"}}},{"id":30,"title":"Mix","type":"math/Mix","pos":[543,619],"size":{"0":140,"1":48},"data":null,"flags":{},"inputs":[{"name":"A","type":"","link":47,"types":{"float":1},"types_list":{"float":1,"vec3":1,"vec4":1,"vec2":1},"use_t":1},{"name":"B","type":"","link":46,"types":{"float":1},"types_list":{"float":1,"vec3":1,"vec4":1,"vec2":1},"use_t":1},{"name":"C","type":"","link":45,"types":{"float":1},"label":"alpha"}],"outputs":[{"name":"Result","type":"","types":{"float":1},"links":[48],"types_list":{"float":1,"vec3":1,"vec4":1,"vec2":1},"use_t":1}],"shader_piece":{"name":"mix","id":"3paramfunc","includes":{}},"codes":[{"vertex":{"header":{},"body_hash":{},"includes":{"1161914576":"v_normal","-712412449":"u_model","-1077364091":"a_normal"},"scope":"","order":8},"fragment":{"header":{},"body_hash":{"1947131590":{"str":"float mix_30 = mix(float_8,float_11,fresnel_29);\n","order":8},"-1010391876":{"str":"float fresnel_fresnel_29 = dot(normal, -view_dir);\n float fresnel_29 = pow( 1.0 - clamp(fresnel_fresnel_29,0.0,1.0), float_14);\n","order":6},"-1055437206":{"str":"float float_14 = 2.770;\n","order":2},"-236493712":{"str":"float float_8 = 1.000;\n","order":4},"-850033206":{"str":"float float_11 = 1.400;\n","order":3}},"includes":{"1161914576":"v_normal","1196168179":"view_dir","-712412449":"u_model","-1077364091":"a_normal"},"scope":"","order":8},"output_var":"mix_30","order":8}],"T_out_types":{"float":1},"T_in_types":{"float":1},"in_conected_using_T":2,"properties":{"alpha":0.5,"is_global":false,"global_name":"Mix"},"options":{"alpha":{"min":0,"max":1,"step":0.01},"global_name":{"hidden":true},"is_global":{"reloadonchange":1,"callback":"callbackIsGlobal","hidden":true}}},{"id":29,"title":"Fresnel","type":"math/Fresnel","pos":[311,676],"size":{"0":140,"1":34},"flags":{},"inputs":[{"name":"normal","type":"vec3","link":null,"types":{"vec3":1,"vec4":1}},{"name":"exp","type":"float","link":44,"types":{"float":1}}],"outputs":[{"name":"result","type":"float","types":{"float":1},"links":[45]}],"shader_piece":{"id":"fresnel","includes":{"u_model":1,"a_normal":1,"v_normal":1,"view_dir":1}},"codes":[{"vertex":{"header":{},"body_hash":{},"includes":{"1161914576":"v_normal","-712412449":"u_model","-1077364091":"a_normal"},"scope":"","order":6},"fragment":{"header":{},"body_hash":{"-1010391876":{"str":"float fresnel_fresnel_29 = dot(normal, -view_dir);\n float fresnel_29 = pow( 1.0 - clamp(fresnel_fresnel_29,0.0,1.0), float_14);\n","order":6},"-1055437206":{"str":"float float_14 = 2.770;\n","order":2}},"includes":{"1161914576":"v_normal","1196168179":"view_dir","-712412449":"u_model","-1077364091":"a_normal"},"scope":"","order":6},"output_var":"fresnel_29"}],"T_out_types":{},"T_in_types":{},"in_conected_using_T":0,"properties":{"is_global":false,"global_name":"Fresnel"},"options":{"global_name":{"hidden":true},"is_global":{"reloadonchange":1,"callback":"callbackIsGlobal","hidden":true}}},{"id":8,"title":"Number","type":"constants/Number","pos":[347,553],"size":{"0":74,"1":20},"flags":{},"inputs":null,"outputs":[{"name":"value","type":"float","types":{"float":1},"links":[47],"label":"1.000"}],"shader_piece":{"type":"float","id":"constant","includes":{"u_model":1,"a_normal":1,"v_normal":1}},"codes":[{"vertex":{"header":{},"body_hash":{},"includes":{"1161914576":"v_normal","-712412449":"u_model","-1077364091":"a_normal"},"scope":"","order":4},"fragment":{"header":{},"body_hash":{"-236493712":{"str":"float float_8 = 1.000;\n","order":4}},"includes":{"1161914576":"v_normal","-712412449":"u_model","-1077364091":"a_normal"},"scope":"","order":4},"output_var":"float_8"}],"T_out_types":{},"T_in_types":{},"in_conected_using_T":0,"properties":{"value":1,"is_global":false,"global_name":"Number"},"options":{"global_name":{"hidden":true},"is_global":{"reloadonchange":1,"callback":"callbackIsGlobal"}}},{"id":11,"title":"Number","type":"constants/Number","pos":[346,597],"size":{"0":74,"1":20},"flags":{},"inputs":null,"outputs":[{"name":"value","type":"float","types":{"float":1},"links":[46],"label":"1.400"}],"shader_piece":{"type":"float","id":"constant","includes":{"u_model":1,"a_normal":1,"v_normal":1}},"codes":[{"vertex":{"header":{},"body_hash":{},"includes":{"1161914576":"v_normal","-712412449":"u_model","-1077364091":"a_normal"},"scope":"","order":3},"fragment":{"header":{},"body_hash":{"-850033206":{"str":"float float_11 = 1.400;\n","order":3}},"includes":{"1161914576":"v_normal","-712412449":"u_model","-1077364091":"a_normal"},"scope":"","order":3},"output_var":"float_11"}],"T_out_types":{},"T_in_types":{},"in_conected_using_T":0,"properties":{"value":1.4,"is_global":false,"global_name":"Number"},"options":{"global_name":{"hidden":true},"is_global":{"reloadonchange":1,"callback":"callbackIsGlobal"}}}],"mesh":"lee","node_flags":{"flip_normals":false,"depth_test":true,"depth_write":true,"blending":false,"blending_mode":"additive","two_sided":false,"blend":false},"scene_properties":{"color":"#ffffff","light_dir_x":1,"light_dir_y":1,"light_dir_z":1,"light_mode":"phong","alpha_threshold":0.5,"environment_name":"default"}} -------------------------------------------------------------------------------- /graphs/leaf.json: -------------------------------------------------------------------------------- 1 | {"shader_textures":[],"iteration":233,"last_node_id":14,"last_link_id":12,"links":{"1":{"id":1,"origin_id":6,"origin_slot":1,"target_id":5,"target_slot":0,"data":null,"color":null},"2":{"id":2,"origin_id":8,"origin_slot":2,"target_id":5,"target_slot":3,"data":null,"color":null},"3":{"id":3,"origin_id":7,"origin_slot":1,"target_id":5,"target_slot":1,"data":null,"color":null},"4":{"id":4,"origin_id":9,"origin_slot":0,"target_id":5,"target_slot":4,"data":null,"color":null},"5":{"id":5,"origin_id":10,"origin_slot":1,"target_id":5,"target_slot":0,"color":null,"data":null},"6":{"id":6,"origin_id":11,"origin_slot":1,"target_id":5,"target_slot":1,"color":null,"data":null},"7":{"id":7,"origin_id":12,"origin_slot":2,"target_id":5,"target_slot":3,"color":null,"data":null},"8":{"id":8,"origin_id":9,"origin_slot":0,"target_id":5,"target_slot":4,"color":null,"data":null},"9":{"id":9,"origin_id":10,"origin_slot":5,"target_id":5,"target_slot":6,"color":null,"data":null},"10":{"id":10,"origin_id":11,"origin_slot":1,"target_id":5,"target_slot":1,"color":null,"data":null},"11":{"id":11,"origin_id":13,"origin_slot":0,"target_id":5,"target_slot":3,"color":null,"data":null}},"config":{},"nodes":[{"id":13,"title":"Number","type":"constants/Number","pos":[613,368],"size":{"0":74,"1":20},"flags":{},"inputs":null,"outputs":[{"name":"value","type":"float","types":{"float":1},"links":[11],"label":"0.300"}],"shader_piece":{"type":"float","id":"constant","includes":{"u_model":1,"a_normal":1,"v_normal":1}},"codes":[{"vertex":{"header":{},"body_hash":{},"includes":{"1161914576":"v_normal","-712412449":"u_model","-1077364091":"a_normal"},"scope":"","order":0},"fragment":{"header":{},"body_hash":{"-1037395830":{"str":"float float_13 = 0.300;\n","order":0}},"includes":{"1161914576":"v_normal","-712412449":"u_model","-1077364091":"a_normal"},"scope":"","order":0},"output_var":"float_13"}],"T_out_types":{},"T_in_types":{},"in_conected_using_T":0,"properties":{"value":0.3,"is_global":false,"global_name":"Number"},"options":{"is_global":{"reloadonchange":1,"callback":"callbackIsGlobal","hidden":true},"global_name":{"hidden":true}}},{"id":9,"title":"Number","type":"constants/Number","pos":[614,445],"size":{"0":74,"1":20},"flags":{},"inputs":null,"outputs":[{"name":"value","type":"float","types":{"float":1},"links":[8],"label":"73.000"}],"shader_piece":{"type":"float","id":"constant","includes":{"u_model":1,"a_normal":1,"v_normal":1}},"codes":[{"vertex":{"header":{},"body_hash":{},"includes":{"1161914576":"v_normal","-712412449":"u_model","-1077364091":"a_normal"},"scope":"","order":1},"fragment":{"header":{},"body_hash":{"-955043874":{"str":"float float_9 = 73.000;\n","order":1}},"includes":{"1161914576":"v_normal","-712412449":"u_model","-1077364091":"a_normal"},"scope":"","order":1},"output_var":"float_9"}],"T_out_types":{},"T_in_types":{},"in_conected_using_T":0,"properties":{"value":73,"is_global":false,"global_name":"Number"},"options":{"is_global":{"reloadonchange":1,"callback":"callbackIsGlobal"},"global_name":{"hidden":true}}},{"id":5,"title":"Output","type":"core/Output","pos":[852,248],"size":[125,250],"flags":{},"inputs":[{"name":"albedo","type":"vec3","link":5,"types":{"vec3":1,"vec4":1}},{"name":"normal","type":"vec3","link":null,"types":{"vec3":1,"vec4":1}},{"name":"emission","type":"vec3","link":null,"types":{"vec3":1,"vec4":1}},{"name":"specular","type":"float","link":11,"types":{"float":1}},{"name":"gloss","type":"float","link":8,"types":{"float":1}},{"name":"alpha","type":"float","link":null,"types":{"float":1}},{"name":"alpha clip","type":"float","link":9,"types":{"float":1}},{"name":"refraction","type":"float","link":null,"types":{"float":1}},{"name":"vertex offset","type":"float","link":null,"types":{"float":1}}],"outputs":null,"shader_piece":{},"codes":[],"T_out_types":{},"T_in_types":{},"in_conected_using_T":0,"properties":{"is_global":false,"global_name":"Output"},"options":{"is_global":{"reloadonchange":1,"callback":"callbackIsGlobal"},"global_name":{"hidden":true}}},{"id":10,"title":"TextureSample","type":"texture/TextureSample","pos":[489,165],"size":[170,165],"flags":{},"inputs":[{"name":"UVs","type":"vec2","link":null,"types":{"vec2":1}}],"outputs":[{"name":"Texture","type":"Texture","types":{"Texture":1},"links":null},{"name":"Color","type":"vec4","types":{"vec4":1},"links":[5]},{"name":"R","type":"float","types":{"float":1},"links":null},{"name":"G","type":"float","types":{"float":1},"links":null},{"name":"B","type":"float","types":{"float":1},"links":null},{"name":"A","type":"float","types":{"float":1},"links":[9]}],"shader_piece":{"id":"texture_sample","includes":{"v_pos":1,"v_coord":1,"camera_to_pixel_ws":1,"u_eye":1,"TBN":0}},"codes":[null,{"vertex":{"header":{},"body_hash":{},"includes":{"82848":"TBN","110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws"},"scope":"","order":2},"fragment":{"header":{"354319333":"uniform sampler2D u_leaf_texture;\n"},"body_hash":{"-256552825":{"str":"vec4 color_10 = texture2D(u_leaf_texture, v_coord);\n","order":2}},"includes":{"82848":"TBN","110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws"},"scope":"","order":2},"output_var":"color_10"},{"vertex":{"header":{},"body_hash":{},"includes":{"82848":"TBN","110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws"},"scope":"","order":2},"fragment":{"header":{"354319333":"uniform sampler2D u_leaf_texture;\n"},"body_hash":{"-256552825":{"str":"vec4 color_10 = texture2D(u_leaf_texture, v_coord);\n","order":2}},"includes":{"82848":"TBN","110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws"},"scope":"","order":2},"output_var":"color_10.r"},{"vertex":{"header":{},"body_hash":{},"includes":{"82848":"TBN","110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws"},"scope":"","order":2},"fragment":{"header":{"354319333":"uniform sampler2D u_leaf_texture;\n"},"body_hash":{"-256552825":{"str":"vec4 color_10 = texture2D(u_leaf_texture, v_coord);\n","order":2}},"includes":{"82848":"TBN","110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws"},"scope":"","order":2},"output_var":"color_10.g"},{"vertex":{"header":{},"body_hash":{},"includes":{"82848":"TBN","110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws"},"scope":"","order":2},"fragment":{"header":{"354319333":"uniform sampler2D u_leaf_texture;\n"},"body_hash":{"-256552825":{"str":"vec4 color_10 = texture2D(u_leaf_texture, v_coord);\n","order":2}},"includes":{"82848":"TBN","110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws"},"scope":"","order":2},"output_var":"color_10.b"},{"vertex":{"header":{},"body_hash":{},"includes":{"82848":"TBN","110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws"},"scope":"","order":2},"fragment":{"header":{"354319333":"uniform sampler2D u_leaf_texture;\n"},"body_hash":{"-256552825":{"str":"vec4 color_10 = texture2D(u_leaf_texture, v_coord);\n","order":2}},"includes":{"82848":"TBN","110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws"},"scope":"","order":2},"output_var":"color_10.a"}],"T_out_types":{},"T_in_types":{},"in_conected_using_T":0,"properties":{"name":"leaf","texture_url":"assets/textures/texture/leaf.png","texture_type":"Color","normal_map_type":"Tangent space","is_global":true,"global_name":"TextureSample"},"options":{"is_global":{"hidden":false,"reloadonchange":1,"callback":"callbackIsGlobal"},"texture_url":{"hidden":1},"texture_type":{"multichoice":["Color","Normal map"],"reloadonchange":1,"callback":"toggleNormalMap"},"normal_map_type":{"multichoice":["Tangent space","Model space","Bump map"],"hidden":1},"global_name":{"hidden":false}},"color":"#AFA"}],"mesh":"plane","node_flags":{"flip_normals":false,"depth_test":true,"depth_write":true,"blending":false,"blending_mode":"additive","two_sided":false,"blend":false},"scene_properties":{"color":"#ffffff","light_dir_x":1,"light_dir_y":1,"light_dir_z":1,"light_mode":"phong","alpha_threshold":0.5102311985118256,"environment_name":"default"}} -------------------------------------------------------------------------------- /graphs/lee.json: -------------------------------------------------------------------------------- 1 | {"shader_textures":[],"iteration":63,"last_node_id":13,"last_link_id":8,"links":{"1":{"id":1,"origin_id":6,"origin_slot":1,"target_id":5,"target_slot":0,"data":null,"color":null},"2":{"id":2,"origin_id":8,"origin_slot":2,"target_id":5,"target_slot":3,"data":null,"color":null},"3":{"id":3,"origin_id":7,"origin_slot":1,"target_id":5,"target_slot":1,"data":null,"color":null},"4":{"id":4,"origin_id":9,"origin_slot":0,"target_id":5,"target_slot":4,"data":null,"color":null},"5":{"id":5,"origin_id":10,"origin_slot":1,"target_id":5,"target_slot":0,"color":null,"data":null},"6":{"id":6,"origin_id":11,"origin_slot":1,"target_id":5,"target_slot":1,"color":null,"data":null},"7":{"id":7,"origin_id":12,"origin_slot":2,"target_id":5,"target_slot":3,"color":null,"data":null}},"config":{},"nodes":[{"id":5,"title":"Output","type":"core/Output","pos":[850,285],"size":[125,250],"flags":{},"inputs":[{"name":"albedo","type":"vec3","link":5,"types":{"vec3":1,"vec4":1}},{"name":"normal","type":"vec3","link":6,"types":{"vec3":1,"vec4":1}},{"name":"emission","type":"vec3","link":null,"types":{"vec3":1,"vec4":1}},{"name":"specular","type":"float","link":7,"types":{"float":1}},{"name":"gloss","type":"float","link":4,"types":{"float":1}},{"name":"alpha","type":"float","link":null,"types":{"float":1}},{"name":"alpha clip","type":"float","link":null,"types":{"float":1}},{"name":"refraction","type":"float","link":null,"types":{"float":1}},{"name":"vertex offset","type":"float","link":null,"types":{"float":1}}],"outputs":null,"shader_piece":{},"codes":[],"T_out_types":{},"T_in_types":{},"in_conected_using_T":0,"properties":{"is_global":false,"global_name":"Output"},"options":{"global_name":{"hidden":true},"is_global":{"reloadonchange":1,"callback":"callbackIsGlobal"}}},{"id":12,"title":"TextureSample","type":"texture/TextureSample","pos":[321,526],"size":[170,165],"flags":{},"inputs":[{"name":"UVs","type":"vec2","link":null,"types":{"vec2":1}}],"outputs":[{"name":"Texture","type":"Texture","types":{"Texture":1},"links":null},{"name":"Color","type":"vec4","types":{"vec4":1},"links":null},{"name":"R","type":"float","types":{"float":1},"links":[7]},{"name":"G","type":"float","types":{"float":1},"links":null},{"name":"B","type":"float","types":{"float":1},"links":null},{"name":"A","type":"float","types":{"float":1},"links":null}],"shader_piece":{"id":"texture_sample","includes":{"v_pos":1,"v_coord":1,"camera_to_pixel_ws":1,"u_eye":1,"TBN":0}},"codes":[null,{"vertex":{"header":{},"body_hash":{},"includes":{"82848":"TBN","110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws"},"scope":"","order":3},"fragment":{"header":{"1569347733":"uniform sampler2D u_lee_spec_texture;\n"},"body_hash":{"1985536885":{"str":"vec4 color_12 = texture2D(u_lee_spec_texture, v_coord);\n","order":3}},"includes":{"82848":"TBN","110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws"},"scope":"","order":3},"output_var":"color_12"},{"vertex":{"header":{},"body_hash":{},"includes":{"82848":"TBN","110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws"},"scope":"","order":3},"fragment":{"header":{"1569347733":"uniform sampler2D u_lee_spec_texture;\n"},"body_hash":{"1985536885":{"str":"vec4 color_12 = texture2D(u_lee_spec_texture, v_coord);\n","order":3}},"includes":{"82848":"TBN","110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws"},"scope":"","order":3},"output_var":"color_12.r"},{"vertex":{"header":{},"body_hash":{},"includes":{"82848":"TBN","110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws"},"scope":"","order":3},"fragment":{"header":{"1569347733":"uniform sampler2D u_lee_spec_texture;\n"},"body_hash":{"1985536885":{"str":"vec4 color_12 = texture2D(u_lee_spec_texture, v_coord);\n","order":3}},"includes":{"82848":"TBN","110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws"},"scope":"","order":3},"output_var":"color_12.g"},{"vertex":{"header":{},"body_hash":{},"includes":{"82848":"TBN","110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws"},"scope":"","order":3},"fragment":{"header":{"1569347733":"uniform sampler2D u_lee_spec_texture;\n"},"body_hash":{"1985536885":{"str":"vec4 color_12 = texture2D(u_lee_spec_texture, v_coord);\n","order":3}},"includes":{"82848":"TBN","110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws"},"scope":"","order":3},"output_var":"color_12.b"},{"vertex":{"header":{},"body_hash":{},"includes":{"82848":"TBN","110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws"},"scope":"","order":3},"fragment":{"header":{"1569347733":"uniform sampler2D u_lee_spec_texture;\n"},"body_hash":{"1985536885":{"str":"vec4 color_12 = texture2D(u_lee_spec_texture, v_coord);\n","order":3}},"includes":{"82848":"TBN","110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws"},"scope":"","order":3},"output_var":"color_12.a"}],"T_out_types":{},"T_in_types":{},"in_conected_using_T":0,"properties":{"name":"lee_spec","texture_url":"assets/textures/texture/lee_spec.jpg","texture_type":"Color","normal_map_type":"Tangent space","is_global":false,"global_name":"TextureSample"},"options":{"is_global":{"hidden":false,"reloadonchange":1,"callback":"callbackIsGlobal"},"texture_url":{"hidden":1},"texture_type":{"multichoice":["Color","Normal map"],"reloadonchange":1,"callback":"toggleNormalMap"},"normal_map_type":{"multichoice":["Tangent space","Model space","Bump map"],"hidden":1},"global_name":{"hidden":true}}},{"id":11,"title":"TextureSample","type":"texture/TextureSample","pos":[313,298],"size":[170,165],"flags":{},"inputs":[{"name":"UVs","type":"vec2","link":null,"types":{"vec2":1}}],"outputs":[{"name":"Texture","type":"Texture","types":{"Texture":1},"links":null},{"name":"Color","type":"vec4","types":{"vec4":1},"links":[6]},{"name":"R","type":"float","types":{"float":1},"links":null},{"name":"G","type":"float","types":{"float":1},"links":null},{"name":"B","type":"float","types":{"float":1},"links":null},{"name":"A","type":"float","types":{"float":1},"links":null}],"shader_piece":{"id":"texture_sample","includes":{"v_pos":1,"v_coord":1,"camera_to_pixel_ws":1,"u_eye":1,"TBN":0}},"codes":[null,{"vertex":{"header":{},"body_hash":{},"includes":{"82848":"TBN","110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws"},"scope":"","order":-998},"fragment":{"header":{"375205633":"uniform sampler2D u_lee_normal_texture;\n"},"body_hash":{"101097823":{"str":"vec4 color_11 = texture2D(u_lee_normal_texture, v_coord);\n color_11 = (2.0 * color_11 )-1.0;\n","order":-998},"974277786":{"str":"normal = normalize(color_11.xyz);\n","order":-5}},"includes":{"82848":"TBN","110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws"},"scope":"","order":-998},"output_var":"color_11"},{"vertex":{"header":{},"body_hash":{},"includes":{"82848":"TBN","110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws"},"scope":"","order":-998},"fragment":{"header":{"375205633":"uniform sampler2D u_lee_normal_texture;\n"},"body_hash":{"101097823":{"str":"vec4 color_11 = texture2D(u_lee_normal_texture, v_coord);\n color_11 = (2.0 * color_11 )-1.0;\n","order":-998},"974277786":{"str":"normal = normalize(color_11.xyz);\n","order":-5}},"includes":{"82848":"TBN","110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws"},"scope":"","order":-998},"output_var":"color_11.r"},{"vertex":{"header":{},"body_hash":{},"includes":{"82848":"TBN","110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws"},"scope":"","order":-998},"fragment":{"header":{"375205633":"uniform sampler2D u_lee_normal_texture;\n"},"body_hash":{"101097823":{"str":"vec4 color_11 = texture2D(u_lee_normal_texture, v_coord);\n color_11 = (2.0 * color_11 )-1.0;\n","order":-998},"974277786":{"str":"normal = normalize(color_11.xyz);\n","order":-5}},"includes":{"82848":"TBN","110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws"},"scope":"","order":-998},"output_var":"color_11.g"},{"vertex":{"header":{},"body_hash":{},"includes":{"82848":"TBN","110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws"},"scope":"","order":-998},"fragment":{"header":{"375205633":"uniform sampler2D u_lee_normal_texture;\n"},"body_hash":{"101097823":{"str":"vec4 color_11 = texture2D(u_lee_normal_texture, v_coord);\n color_11 = (2.0 * color_11 )-1.0;\n","order":-998},"974277786":{"str":"normal = normalize(color_11.xyz);\n","order":-5}},"includes":{"82848":"TBN","110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws"},"scope":"","order":-998},"output_var":"color_11.b"},{"vertex":{"header":{},"body_hash":{},"includes":{"82848":"TBN","110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws"},"scope":"","order":-998},"fragment":{"header":{"375205633":"uniform sampler2D u_lee_normal_texture;\n"},"body_hash":{"101097823":{"str":"vec4 color_11 = texture2D(u_lee_normal_texture, v_coord);\n color_11 = (2.0 * color_11 )-1.0;\n","order":-998},"974277786":{"str":"normal = normalize(color_11.xyz);\n","order":-5}},"includes":{"82848":"TBN","110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws"},"scope":"","order":-998},"output_var":"color_11.a"}],"T_out_types":{},"T_in_types":{},"in_conected_using_T":0,"properties":{"name":"lee_normal","texture_url":"assets/textures/texture/lee_normal.jpg","texture_type":"Normal map","normal_map_type":"Model space","is_global":false,"global_name":"TextureSample"},"options":{"is_global":{"hidden":false,"reloadonchange":1,"callback":"callbackIsGlobal"},"texture_url":{"hidden":1},"texture_type":{"multichoice":["Color","Normal map"],"reloadonchange":1,"callback":"toggleNormalMap"},"normal_map_type":{"multichoice":["Tangent space","Model space","Bump map"],"hidden":0},"global_name":{"hidden":true}}},{"id":10,"title":"TextureSample","type":"texture/TextureSample","pos":[312,76],"size":[170,165],"flags":{},"inputs":[{"name":"UVs","type":"vec2","link":null,"types":{"vec2":1}}],"outputs":[{"name":"Texture","type":"Texture","types":{"Texture":1},"links":null},{"name":"Color","type":"vec4","types":{"vec4":1},"links":[5]},{"name":"R","type":"float","types":{"float":1},"links":null},{"name":"G","type":"float","types":{"float":1},"links":null},{"name":"B","type":"float","types":{"float":1},"links":null},{"name":"A","type":"float","types":{"float":1},"links":null}],"shader_piece":{"id":"texture_sample","includes":{"v_pos":1,"v_coord":1,"camera_to_pixel_ws":1,"u_eye":1,"TBN":0}},"codes":[null,{"vertex":{"header":{},"body_hash":{},"includes":{"82848":"TBN","110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws","1161914576":"v_normal","-712412449":"u_model","-1077364091":"a_normal"},"scope":"","order":1},"fragment":{"header":{"375205633":"uniform sampler2D u_lee_normal_texture;\n","1569347733":"uniform sampler2D u_lee_spec_texture;\n","1934770139":"uniform samplerCube u_cube_default_texture;\n","-86978149":"uniform sampler2D u_lee_texture;\n"},"body_hash":{"101097823":{"str":"vec4 color_11 = texture2D(u_lee_normal_texture, v_coord);\n color_11 = (2.0 * color_11 )-1.0;\n","order":-998},"629065972":{"str":"float float_9 = 4.000;\n","order":0},"974277786":{"str":"normal = normalize(color_11.xyz);\n","order":-5},"1985536885":{"str":"vec4 color_12 = texture2D(u_lee_spec_texture, v_coord);\n","order":3},"-1504312773":{"str":"vec4 color_10 = texture2D(u_lee_texture, v_coord);\n","order":1}},"includes":{"82848":"TBN","110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws","1161914576":"v_normal","-712412449":"u_model","-1077364091":"a_normal"},"scope":"","order":1},"output_var":"color_10"},{"vertex":{"header":{},"body_hash":{},"includes":{"82848":"TBN","110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws","1161914576":"v_normal","-712412449":"u_model","-1077364091":"a_normal"},"scope":"","order":1},"fragment":{"header":{"375205633":"uniform sampler2D u_lee_normal_texture;\n","1569347733":"uniform sampler2D u_lee_spec_texture;\n","1934770139":"uniform samplerCube u_cube_default_texture;\n","-86978149":"uniform sampler2D u_lee_texture;\n"},"body_hash":{"101097823":{"str":"vec4 color_11 = texture2D(u_lee_normal_texture, v_coord);\n color_11 = (2.0 * color_11 )-1.0;\n","order":-998},"629065972":{"str":"float float_9 = 4.000;\n","order":0},"974277786":{"str":"normal = normalize(color_11.xyz);\n","order":-5},"1985536885":{"str":"vec4 color_12 = texture2D(u_lee_spec_texture, v_coord);\n","order":3},"-1504312773":{"str":"vec4 color_10 = texture2D(u_lee_texture, v_coord);\n","order":1}},"includes":{"82848":"TBN","110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws","1161914576":"v_normal","-712412449":"u_model","-1077364091":"a_normal"},"scope":"","order":1},"output_var":"color_10.r"},{"vertex":{"header":{},"body_hash":{},"includes":{"82848":"TBN","110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws","1161914576":"v_normal","-712412449":"u_model","-1077364091":"a_normal"},"scope":"","order":1},"fragment":{"header":{"375205633":"uniform sampler2D u_lee_normal_texture;\n","1569347733":"uniform sampler2D u_lee_spec_texture;\n","1934770139":"uniform samplerCube u_cube_default_texture;\n","-86978149":"uniform sampler2D u_lee_texture;\n"},"body_hash":{"101097823":{"str":"vec4 color_11 = texture2D(u_lee_normal_texture, v_coord);\n color_11 = (2.0 * color_11 )-1.0;\n","order":-998},"629065972":{"str":"float float_9 = 4.000;\n","order":0},"974277786":{"str":"normal = normalize(color_11.xyz);\n","order":-5},"1985536885":{"str":"vec4 color_12 = texture2D(u_lee_spec_texture, v_coord);\n","order":3},"-1504312773":{"str":"vec4 color_10 = texture2D(u_lee_texture, v_coord);\n","order":1}},"includes":{"82848":"TBN","110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws","1161914576":"v_normal","-712412449":"u_model","-1077364091":"a_normal"},"scope":"","order":1},"output_var":"color_10.g"},{"vertex":{"header":{},"body_hash":{},"includes":{"82848":"TBN","110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws","1161914576":"v_normal","-712412449":"u_model","-1077364091":"a_normal"},"scope":"","order":1},"fragment":{"header":{"375205633":"uniform sampler2D u_lee_normal_texture;\n","1569347733":"uniform sampler2D u_lee_spec_texture;\n","1934770139":"uniform samplerCube u_cube_default_texture;\n","-86978149":"uniform sampler2D u_lee_texture;\n"},"body_hash":{"101097823":{"str":"vec4 color_11 = texture2D(u_lee_normal_texture, v_coord);\n color_11 = (2.0 * color_11 )-1.0;\n","order":-998},"629065972":{"str":"float float_9 = 4.000;\n","order":0},"974277786":{"str":"normal = normalize(color_11.xyz);\n","order":-5},"1985536885":{"str":"vec4 color_12 = texture2D(u_lee_spec_texture, v_coord);\n","order":3},"-1504312773":{"str":"vec4 color_10 = texture2D(u_lee_texture, v_coord);\n","order":1}},"includes":{"82848":"TBN","110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws","1161914576":"v_normal","-712412449":"u_model","-1077364091":"a_normal"},"scope":"","order":1},"output_var":"color_10.b"},{"vertex":{"header":{},"body_hash":{},"includes":{"82848":"TBN","110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws","1161914576":"v_normal","-712412449":"u_model","-1077364091":"a_normal"},"scope":"","order":1},"fragment":{"header":{"375205633":"uniform sampler2D u_lee_normal_texture;\n","1569347733":"uniform sampler2D u_lee_spec_texture;\n","1934770139":"uniform samplerCube u_cube_default_texture;\n","-86978149":"uniform sampler2D u_lee_texture;\n"},"body_hash":{"101097823":{"str":"vec4 color_11 = texture2D(u_lee_normal_texture, v_coord);\n color_11 = (2.0 * color_11 )-1.0;\n","order":-998},"629065972":{"str":"float float_9 = 4.000;\n","order":0},"974277786":{"str":"normal = normalize(color_11.xyz);\n","order":-5},"1985536885":{"str":"vec4 color_12 = texture2D(u_lee_spec_texture, v_coord);\n","order":3},"-1504312773":{"str":"vec4 color_10 = texture2D(u_lee_texture, v_coord);\n","order":1}},"includes":{"82848":"TBN","110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws","1161914576":"v_normal","-712412449":"u_model","-1077364091":"a_normal"},"scope":"","order":1},"output_var":"color_10.a"}],"T_out_types":{},"T_in_types":{},"in_conected_using_T":0,"properties":{"name":"lee","texture_url":"assets/textures/texture/lee.jpg","texture_type":"Color","normal_map_type":"Tangent space","is_global":true,"global_name":"TextureSample"},"options":{"is_global":{"hidden":false,"reloadonchange":1,"callback":"callbackIsGlobal"},"texture_url":{"hidden":1},"texture_type":{"multichoice":["Color","Normal map"],"reloadonchange":1,"callback":"toggleNormalMap"},"normal_map_type":{"multichoice":["Tangent space","Model space","Bump map"],"hidden":1},"global_name":{"hidden":false}}},{"id":9,"title":"Number","type":"constants/Number","pos":[708,509],"size":{"0":74,"1":20},"flags":{},"inputs":null,"outputs":[{"name":"value","type":"float","types":{"float":1},"links":[4],"label":"4.000"}],"shader_piece":{"type":"float","id":"constant","includes":{"u_model":1,"a_normal":1,"v_normal":1}},"codes":[{"vertex":{"header":{},"body_hash":{},"includes":{"1161914576":"v_normal","-712412449":"u_model","-1077364091":"a_normal"},"scope":"","order":0},"fragment":{"header":{},"body_hash":{"629065972":{"str":"float float_9 = 4.000;\n","order":0}},"includes":{"1161914576":"v_normal","-712412449":"u_model","-1077364091":"a_normal"},"scope":"","order":0},"output_var":"float_9"}],"T_out_types":{},"T_in_types":{},"in_conected_using_T":0,"properties":{"value":4,"is_global":false,"global_name":"Number"},"options":{"global_name":{"hidden":true},"is_global":{"reloadonchange":1,"callback":"callbackIsGlobal"}}}],"mesh":"lee","node_flags":{"flip_normals":false,"depth_test":true,"depth_write":true,"blending":false,"blending_mode":"additive","two_sided":false,"blend":false},"scene_properties":{"color":"#ffffff","light_dir_x":1,"light_dir_y":1,"light_dir_z":1,"light_mode":"phong","alpha_threshold":0.5,"environment_name":"default"}} -------------------------------------------------------------------------------- /graphs/lee3.json: -------------------------------------------------------------------------------- 1 | {"shader_textures":["lee","lee_normal","lee_spec"],"iteration":127,"last_node_id":9,"last_link_id":9,"links":{"1":{"id":1,"origin_id":5,"origin_slot":1,"target_id":4,"target_slot":0,"data":null},"2":{"id":2,"origin_id":5,"origin_slot":1,"target_id":4,"target_slot":1,"data":null},"3":{"id":3,"origin_id":6,"origin_slot":1,"target_id":4,"target_slot":0,"data":null},"4":{"id":4,"origin_id":7,"origin_slot":2,"target_id":4,"target_slot":3,"data":null},"5":{"id":5,"origin_id":5,"origin_slot":1,"target_id":4,"target_slot":1,"data":null},"6":{"id":6,"origin_id":6,"origin_slot":1,"target_id":8,"target_slot":0,"data":null},"7":{"id":7,"origin_id":5,"origin_slot":1,"target_id":8,"target_slot":1,"data":null},"8":{"id":8,"origin_id":7,"origin_slot":2,"target_id":8,"target_slot":3,"data":null}},"config":{},"nodes":[{"id":8,"title":"Output","type":"core/Output","pos":[649,278],"size":[125,250],"flags":{},"inputs":[{"name":"albedo","type":"vec3","link":6,"types":{"vec3":1,"vec4":1}},{"name":"normal","type":"vec3","link":7,"types":{"vec3":1,"vec4":1}},{"name":"emission","type":"vec3","link":null,"types":{"vec3":1,"vec4":1}},{"name":"specular","type":"float","link":8,"types":{"float":1}},{"name":"gloss","type":"float","link":null,"types":{"float":1}},{"name":"alpha","type":"float","link":null,"types":{"float":1}},{"name":"alpha clip","type":"float","link":null,"types":{"float":1}},{"name":"vertex offset","type":"float","link":null,"types":{"float":1}}],"shader_piece":{},"codes":[],"properties":{"color":"#ffffff","gloss":4,"displacement_factor":1,"light_dir_x":1,"light_dir_y":1,"light_dir_z":1}},{"id":6,"title":"TextureSample","type":"texture/TextureSample","pos":[273,112],"size":[170,165],"flags":{},"inputs":[{"name":"UVs","type":"vec2","link":null,"types":{"vec2":1}}],"outputs":[{"name":"Texture","type":"Texture","types":{"Texture":1},"links":null},{"name":"Color","type":"vec4","types":{"vec4":1},"links":[6]},{"name":"R","type":"float","types":{"float":1},"links":null},{"name":"G","type":"float","types":{"float":1},"links":null},{"name":"B","type":"float","types":{"float":1},"links":null},{"name":"A","type":"float","types":{"float":1},"links":null}],"shader_piece":{"id":"texture_sample","includes":{"v_pos":1,"v_coord":1,"camera_to_pixel_ws":1,"u_eye":1}},"codes":[null,{"vertex":{"header":{},"body_hash":{},"body_ids":[],"includes":{"v_coord":1},"scope":"","order":0},"fragment":{"header":{"uniform sampler2D u_lee_texture;\n":1,"uniform sampler2D u_lee_normal_texture;\n":1,"uniform sampler2D u_lee_spec_texture;\n":1,"uniform samplerCube u_cube_default_texture;\n":1},"body_hash":{"-543907110":{"str":"vec4 color_6 = texture2D(u_lee_texture, v_coord);\n","order":0},"-487740388":{"str":"vec4 color_5 = texture2D(u_lee_normal_texture, v_coord);\n color_5 = (2.0 * color_5 )-1.0;\n","order":-999},"-1437606165":{"str":"normal = normalize(color_5.xyz);\n","order":-5},"-1482398505":{"str":"vec4 color_7 = texture2D(u_lee_spec_texture, v_coord);\n","order":2}},"body_ids":[-1482398505,-1437606165,-487740388,-543907110],"includes":{"v_pos":1,"v_coord":1,"camera_to_pixel_ws":1,"u_eye":1},"scope":"","order":0},"output_var":"color_6"},{"vertex":{"header":{},"body_hash":{},"body_ids":[],"includes":{"v_coord":1},"scope":"","order":1.7976931348623157e+308},"fragment":{"header":{"uniform sampler2D u_lee_texture;\n":1},"body_hash":{"-543907110":{"str":"vec4 color_6 = texture2D(u_lee_texture, v_coord);\n","order":0}},"body_ids":[-543907110],"includes":{"v_pos":1,"v_coord":1,"camera_to_pixel_ws":1,"u_eye":1},"scope":"","order":1.7976931348623157e+308},"output_var":"color_6.r"},{"vertex":{"header":{},"body_hash":{},"body_ids":[],"includes":{"v_coord":1},"scope":"","order":1.7976931348623157e+308},"fragment":{"header":{"uniform sampler2D u_lee_texture;\n":1},"body_hash":{"-543907110":{"str":"vec4 color_6 = texture2D(u_lee_texture, v_coord);\n","order":0}},"body_ids":[-543907110],"includes":{"v_pos":1,"v_coord":1,"camera_to_pixel_ws":1,"u_eye":1},"scope":"","order":1.7976931348623157e+308},"output_var":"color_6.g"},{"vertex":{"header":{},"body_hash":{},"body_ids":[],"includes":{"v_coord":1},"scope":"","order":1.7976931348623157e+308},"fragment":{"header":{"uniform sampler2D u_lee_texture;\n":1},"body_hash":{"-543907110":{"str":"vec4 color_6 = texture2D(u_lee_texture, v_coord);\n","order":0}},"body_ids":[-543907110],"includes":{"v_pos":1,"v_coord":1,"camera_to_pixel_ws":1,"u_eye":1},"scope":"","order":1.7976931348623157e+308},"output_var":"color_6.b"},{"vertex":{"header":{},"body_hash":{},"body_ids":[],"includes":{"v_coord":1},"scope":"","order":1.7976931348623157e+308},"fragment":{"header":{"uniform sampler2D u_lee_texture;\n":1},"body_hash":{"-543907110":{"str":"vec4 color_6 = texture2D(u_lee_texture, v_coord);\n","order":0}},"body_ids":[-543907110],"includes":{"v_pos":1,"v_coord":1,"camera_to_pixel_ws":1,"u_eye":1},"scope":"","order":1.7976931348623157e+308},"output_var":"color_6.a"}],"properties":{"name":"lee","texture_url":"assets/textures/texture/lee.jpg","texture_type":"Color"}},{"id":7,"title":"TextureSample","type":"texture/TextureSample","pos":[267,524],"size":[170,165],"flags":{},"inputs":[{"name":"UVs","type":"vec2","link":null,"types":{"vec2":1}}],"outputs":[{"name":"Texture","type":"Texture","types":{"Texture":1},"links":null},{"name":"Color","type":"vec4","types":{"vec4":1},"links":null},{"name":"R","type":"float","types":{"float":1},"links":[8]},{"name":"G","type":"float","types":{"float":1},"links":null},{"name":"B","type":"float","types":{"float":1},"links":null},{"name":"A","type":"float","types":{"float":1},"links":null}],"shader_piece":{"id":"texture_sample","includes":{"v_pos":1,"v_coord":1,"camera_to_pixel_ws":1,"u_eye":1}},"codes":[null,{"vertex":{"header":{},"body_hash":{},"body_ids":[],"includes":{"v_coord":1},"scope":"","order":2},"fragment":{"header":{"uniform sampler2D u_lee_spec_texture;\n":1},"body_hash":{"-1482398505":{"str":"vec4 color_7 = texture2D(u_lee_spec_texture, v_coord);\n","order":2}},"body_ids":[-1482398505],"includes":{"v_pos":1,"v_coord":1,"camera_to_pixel_ws":1,"u_eye":1},"scope":"","order":2},"output_var":"color_7"},{"vertex":{"header":{},"body_hash":{},"body_ids":[],"includes":{"v_coord":1},"scope":"","order":1.7976931348623157e+308},"fragment":{"header":{"uniform sampler2D u_lee_spec_texture;\n":1},"body_hash":{"-1482398505":{"str":"vec4 color_7 = texture2D(u_lee_spec_texture, v_coord);\n","order":2}},"body_ids":[-1482398505],"includes":{"v_pos":1,"v_coord":1,"camera_to_pixel_ws":1,"u_eye":1},"scope":"","order":1.7976931348623157e+308},"output_var":"color_7.r"},{"vertex":{"header":{},"body_hash":{},"body_ids":[],"includes":{"v_coord":1},"scope":"","order":1.7976931348623157e+308},"fragment":{"header":{"uniform sampler2D u_lee_spec_texture;\n":1},"body_hash":{"-1482398505":{"str":"vec4 color_7 = texture2D(u_lee_spec_texture, v_coord);\n","order":2}},"body_ids":[-1482398505],"includes":{"v_pos":1,"v_coord":1,"camera_to_pixel_ws":1,"u_eye":1},"scope":"","order":1.7976931348623157e+308},"output_var":"color_7.g"},{"vertex":{"header":{},"body_hash":{},"body_ids":[],"includes":{"v_coord":1},"scope":"","order":1.7976931348623157e+308},"fragment":{"header":{"uniform sampler2D u_lee_spec_texture;\n":1},"body_hash":{"-1482398505":{"str":"vec4 color_7 = texture2D(u_lee_spec_texture, v_coord);\n","order":2}},"body_ids":[-1482398505],"includes":{"v_pos":1,"v_coord":1,"camera_to_pixel_ws":1,"u_eye":1},"scope":"","order":1.7976931348623157e+308},"output_var":"color_7.b"},{"vertex":{"header":{},"body_hash":{},"body_ids":[],"includes":{"v_coord":1},"scope":"","order":1.7976931348623157e+308},"fragment":{"header":{"uniform sampler2D u_lee_spec_texture;\n":1},"body_hash":{"-1482398505":{"str":"vec4 color_7 = texture2D(u_lee_spec_texture, v_coord);\n","order":2}},"body_ids":[-1482398505],"includes":{"v_pos":1,"v_coord":1,"camera_to_pixel_ws":1,"u_eye":1},"scope":"","order":1.7976931348623157e+308},"output_var":"color_7.a"}],"properties":{"name":"lee_spec","texture_url":"assets/textures/texture/lee_spec.jpg","texture_type":"Color"}},{"id":5,"title":"TextureSample","type":"texture/TextureSample","pos":[268,322],"size":[170,165],"flags":{},"inputs":[{"name":"UVs","type":"vec2","link":null,"types":{"vec2":1}}],"outputs":[{"name":"Texture","type":"Texture","types":{"Texture":1},"links":null},{"name":"Color","type":"vec4","types":{"vec4":1},"links":[7]},{"name":"R","type":"float","types":{"float":1},"links":null},{"name":"G","type":"float","types":{"float":1},"links":null},{"name":"B","type":"float","types":{"float":1},"links":null},{"name":"A","type":"float","types":{"float":1},"links":null}],"shader_piece":{"id":"texture_sample","includes":{"v_pos":1,"v_coord":1,"camera_to_pixel_ws":1,"u_eye":1}},"codes":[null,{"vertex":{"header":{},"body_hash":{},"body_ids":[],"includes":{"v_coord":1},"scope":"","order":-999},"fragment":{"header":{"uniform sampler2D u_lee_normal_texture;\n":1},"body_hash":{"-487740388":{"str":"vec4 color_5 = texture2D(u_lee_normal_texture, v_coord);\n color_5 = (2.0 * color_5 )-1.0;\n","order":-999},"-1437606165":{"str":"normal = normalize(color_5.xyz);\n","order":-5}},"body_ids":[-1437606165,-487740388],"includes":{"v_pos":1,"v_coord":1,"camera_to_pixel_ws":1,"u_eye":1},"scope":"","order":-999},"output_var":"color_5"},{"vertex":{"header":{},"body_hash":{},"body_ids":[],"includes":{"v_coord":1},"scope":"","order":1.7976931348623157e+308},"fragment":{"header":{"uniform sampler2D u_lee_normal_texture;\n":1},"body_hash":{"-487740388":{"str":"vec4 color_5 = texture2D(u_lee_normal_texture, v_coord);\n color_5 = (2.0 * color_5 )-1.0;\n","order":-999}},"body_ids":[-487740388],"includes":{"v_pos":1,"v_coord":1,"camera_to_pixel_ws":1,"u_eye":1},"scope":"","order":1.7976931348623157e+308},"output_var":"color_5.r"},{"vertex":{"header":{},"body_hash":{},"body_ids":[],"includes":{"v_coord":1},"scope":"","order":1.7976931348623157e+308},"fragment":{"header":{"uniform sampler2D u_lee_normal_texture;\n":1},"body_hash":{"-487740388":{"str":"vec4 color_5 = texture2D(u_lee_normal_texture, v_coord);\n color_5 = (2.0 * color_5 )-1.0;\n","order":-999}},"body_ids":[-487740388],"includes":{"v_pos":1,"v_coord":1,"camera_to_pixel_ws":1,"u_eye":1},"scope":"","order":1.7976931348623157e+308},"output_var":"color_5.g"},{"vertex":{"header":{},"body_hash":{},"body_ids":[],"includes":{"v_coord":1},"scope":"","order":1.7976931348623157e+308},"fragment":{"header":{"uniform sampler2D u_lee_normal_texture;\n":1},"body_hash":{"-487740388":{"str":"vec4 color_5 = texture2D(u_lee_normal_texture, v_coord);\n color_5 = (2.0 * color_5 )-1.0;\n","order":-999}},"body_ids":[-487740388],"includes":{"v_pos":1,"v_coord":1,"camera_to_pixel_ws":1,"u_eye":1},"scope":"","order":1.7976931348623157e+308},"output_var":"color_5.b"},{"vertex":{"header":{},"body_hash":{},"body_ids":[],"includes":{"v_coord":1},"scope":"","order":1.7976931348623157e+308},"fragment":{"header":{"uniform sampler2D u_lee_normal_texture;\n":1},"body_hash":{"-487740388":{"str":"vec4 color_5 = texture2D(u_lee_normal_texture, v_coord);\n color_5 = (2.0 * color_5 )-1.0;\n","order":-999}},"body_ids":[-487740388],"includes":{"v_pos":1,"v_coord":1,"camera_to_pixel_ws":1,"u_eye":1},"scope":"","order":1.7976931348623157e+308},"output_var":"color_5.a"}],"properties":{"name":"lee_normal","texture_url":"assets/textures/texture/lee_normal.jpg","texture_type":"Normal map","normal_map_type":"Model space"}}],"mesh":"lee"} -------------------------------------------------------------------------------- /graphs/list.txt: -------------------------------------------------------------------------------- 1 | Lee 2 | Reflection 3 | Water 4 | Glass 5 | Material 6 | Lava 7 | Rim_lighting 8 | Animated_Material 9 | Leaf 10 | Lava_blocks -------------------------------------------------------------------------------- /graphs/reflection.json: -------------------------------------------------------------------------------- 1 | {"shader_textures":[],"iteration":266,"last_node_id":19,"last_link_id":20,"links":{"1":{"id":1,"origin_id":6,"origin_slot":1,"target_id":5,"target_slot":0,"data":null,"color":null},"2":{"id":2,"origin_id":8,"origin_slot":2,"target_id":5,"target_slot":3,"data":null,"color":null},"3":{"id":3,"origin_id":7,"origin_slot":1,"target_id":5,"target_slot":1,"data":null,"color":null},"4":{"id":4,"origin_id":9,"origin_slot":0,"target_id":5,"target_slot":4,"data":null,"color":null},"5":{"id":5,"origin_id":10,"origin_slot":1,"target_id":5,"target_slot":0,"color":null,"data":null},"6":{"id":6,"origin_id":11,"origin_slot":0,"target_id":12,"target_slot":0,"color":null,"data":null},"7":{"id":7,"origin_id":10,"origin_slot":1,"target_id":12,"target_slot":1,"color":null,"data":null},"8":{"id":8,"origin_id":12,"origin_slot":0,"target_id":5,"target_slot":0,"color":null,"data":null},"9":{"id":9,"origin_id":11,"origin_slot":0,"target_id":13,"target_slot":0,"color":null,"data":null},"10":{"id":10,"origin_id":10,"origin_slot":1,"target_id":13,"target_slot":1,"color":null,"data":null},"11":{"id":11,"origin_id":13,"origin_slot":0,"target_id":5,"target_slot":0,"color":null,"data":null},"12":{"id":12,"origin_id":14,"origin_slot":0,"target_id":16,"target_slot":0,"color":null,"data":null},"13":{"id":13,"origin_id":15,"origin_slot":0,"target_id":16,"target_slot":1,"color":null,"data":null},"14":{"id":14,"origin_id":16,"origin_slot":0,"target_id":10,"target_slot":0,"color":null,"data":null},"15":{"id":15,"origin_id":16,"origin_slot":0,"target_id":17,"target_slot":0,"color":null,"data":null},"16":{"id":16,"origin_id":17,"origin_slot":1,"target_id":13,"target_slot":1,"color":null,"data":null},"17":{"id":17,"origin_id":11,"origin_slot":0,"target_id":18,"target_slot":0,"color":null,"data":null},"18":{"id":18,"origin_id":17,"origin_slot":1,"target_id":18,"target_slot":1,"color":null,"data":null},"19":{"id":19,"origin_id":18,"origin_slot":0,"target_id":5,"target_slot":0,"color":null,"data":null}},"config":{},"nodes":[{"id":5,"title":"Output","type":"core/Output","pos":[850,285],"size":[125,250],"flags":{},"inputs":[{"name":"albedo","type":"vec3","link":19,"types":{"vec3":1,"vec4":1}},{"name":"normal","type":"vec3","link":null,"types":{"vec3":1,"vec4":1}},{"name":"emission","type":"vec3","link":null,"types":{"vec3":1,"vec4":1}},{"name":"specular","type":"float","link":null,"types":{"float":1}},{"name":"gloss","type":"float","link":4,"types":{"float":1}},{"name":"alpha","type":"float","link":null,"types":{"float":1}},{"name":"alpha clip","type":"float","link":null,"types":{"float":1}},{"name":"refraction","type":"float","link":null,"types":{"float":1}},{"name":"vertex offset","type":"float","link":null,"types":{"float":1}}],"outputs":null,"shader_piece":{},"codes":[],"T_out_types":{},"T_in_types":{},"in_conected_using_T":0,"properties":{"is_global":false,"global_name":"Output"},"options":{"global_name":{"hidden":true},"is_global":{"reloadonchange":1,"callback":"callbackIsGlobal"}}},{"id":9,"title":"Number","type":"constants/Number","pos":[554,479],"size":{"0":74,"1":20},"flags":{},"inputs":null,"outputs":[{"name":"value","type":"float","types":{"float":1},"links":[4],"label":"41.300"}],"shader_piece":{"type":"float","id":"constant","includes":{"u_model":1,"a_normal":1,"v_normal":1}},"codes":[{"vertex":{"header":{},"body_hash":{},"includes":{"1161914576":"v_normal","-712412449":"u_model","-1077364091":"a_normal"},"scope":"","order":0},"fragment":{"header":{},"body_hash":{"634222914":{"str":"float float_9 = 41.300;\n","order":0}},"includes":{"1161914576":"v_normal","-712412449":"u_model","-1077364091":"a_normal"},"scope":"","order":0},"output_var":"float_9"}],"T_out_types":{},"T_in_types":{},"in_conected_using_T":0,"properties":{"value":41.3,"is_global":false,"global_name":"Number"},"options":{"global_name":{"hidden":true},"is_global":{"reloadonchange":1,"callback":"callbackIsGlobal"}}},{"id":11,"title":"Color","type":"constants/Color","pos":[459,120],"size":{"0":70,"1":20},"flags":{},"inputs":null,"outputs":[{"name":"color","type":"vec4","types":{"vec4":1},"links":[17]}],"shader_piece":{"type":"vec4","id":"constant","includes":{"u_model":1,"a_normal":1,"v_normal":1}},"codes":[{"vertex":{"header":{"1665449466":"uniform vec4 vec4_11;\n"},"body_hash":{},"includes":{"1161914576":"v_normal","-712412449":"u_model","-1077364091":"a_normal"},"scope":"","order":1},"fragment":{"header":{"1665449466":"uniform vec4 vec4_11;\n"},"body_hash":{},"includes":{"1161914576":"v_normal","-712412449":"u_model","-1077364091":"a_normal"},"scope":"","order":1},"output_var":"vec4_11"}],"T_out_types":{},"T_in_types":{},"in_conected_using_T":0,"properties":{"color":"#1313ff","is_global":true,"global_name":"Color"},"options":{"is_global":{"reloadonchange":1,"callback":"callbackIsGlobal"},"global_name":{"hidden":false}},"bgcolor":"#1313ff","boxcolor":"#ffffff"},{"id":17,"title":"TextureSampleCube","type":"texture/TextureSampleCube","pos":[449,247],"size":[170,165],"flags":{},"inputs":[{"name":"vec3","type":"vec3","link":null,"types":{"vec3":1}}],"outputs":[{"name":"Cubemap","type":"Cubemap","types":{},"links":null},{"name":"Color","type":"vec4","types":{"vec4":1},"links":[18]}],"shader_piece":{"id":"texture_sample_cube","includes":{}},"codes":[null,{"vertex":{"header":{},"body_hash":{},"includes":{"110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws","1161914576":"v_normal"},"scope":"","order":2},"fragment":{"header":{"1934770139":"uniform samplerCube u_cube_default_texture;\n"},"body_hash":{"1705970408":{"str":"vec4 color_17 = textureCube(u_cube_default_texture, reflected_vector);\n","order":2},"-860329552":{"str":"vec3 pixel_normal_ws = normal;\n vec3 reflected_vector = reflect(view_dir,pixel_normal_ws);\n","order":1}},"includes":{"110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws","1161914576":"v_normal"},"scope":"","order":2},"output_var":"color_17"}],"T_out_types":{},"T_in_types":{},"in_conected_using_T":0,"properties":{"name":"cube_default","texture_url":"assets/textures/cubemap/miramar_large.jpg","is_global":false,"global_name":"TextureSampleCube"},"options":{"texture_url":{"hidden":1},"global_name":{"hidden":true},"is_global":{"reloadonchange":1,"callback":"callbackIsGlobal"}}},{"id":18,"title":"Mix","type":"math/Mix","pos":[680,191],"size":{"0":140,"1":48},"data":null,"flags":{},"inputs":[{"name":"A","type":"","link":17,"types":{"vec4":1},"types_list":{"float":1,"vec3":1,"vec4":1,"vec2":1},"use_t":1},{"name":"B","type":"","link":18,"types":{"vec4":1},"types_list":{"float":1,"vec3":1,"vec4":1,"vec2":1},"use_t":1},{"name":"C","type":"","link":null,"types":{"float":1},"label":"alpha=0.629"}],"outputs":[{"name":"Result","type":"","types":{"vec4":1},"links":[19],"types_list":{"float":1,"vec3":1,"vec4":1,"vec2":1},"use_t":1}],"shader_piece":{"name":"mix","id":"3paramfunc","includes":{}},"codes":[{"vertex":{"header":{"1665449466":"uniform vec4 vec4_11;\n"},"body_hash":{},"includes":{"110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws","1161914576":"v_normal","-712412449":"u_model","-1077364091":"a_normal"},"scope":"","order":3},"fragment":{"header":{"1665449466":"uniform vec4 vec4_11;\n","1934770139":"uniform samplerCube u_cube_default_texture;\n"},"body_hash":{"634222914":{"str":"float float_9 = 41.300;\n","order":0},"1705970408":{"str":"vec4 color_17 = textureCube(u_cube_default_texture, reflected_vector);\n","order":2},"-1322708362":{"str":"vec4 mix_18 = mix(vec4_11,color_17,float_18);\n","order":3},"-1429379239":{"str":"float float_18 = 0.629;\n","order":2},"-860329552":{"str":"vec3 pixel_normal_ws = normal;\n vec3 reflected_vector = reflect(view_dir,pixel_normal_ws);\n","order":1}},"includes":{"110983015":"u_eye","111916811":"v_pos","165866988":"v_coord","1126242911":"camera_to_pixel_ws","1161914576":"v_normal","-712412449":"u_model","-1077364091":"a_normal"},"scope":"","order":3},"output_var":"mix_18","order":3}],"T_out_types":{"vec4":1},"T_in_types":{"vec4":1},"in_conected_using_T":2,"properties":{"alpha":0.62931815241299,"is_global":false,"global_name":"Mix"},"options":{"alpha":{"min":0,"max":1,"step":0.01},"global_name":{"hidden":true},"is_global":{"reloadonchange":1,"callback":"callbackIsGlobal","hidden":true}}}],"mesh":"sphere","node_flags":{"flip_normals":false,"depth_test":true,"depth_write":true,"blending":false,"blending_mode":"additive","two_sided":false,"blend":false},"scene_properties":{"color":"#ffffff","light_dir_x":1,"light_dir_y":1,"light_dir_z":1,"light_mode":"phong","alpha_threshold":0.5,"environment_name":"stormydays_large"}} -------------------------------------------------------------------------------- /graphs/simple_smoothstep.json: -------------------------------------------------------------------------------- 1 | {"shader_textures":["ball","cube2"],"iteration":296,"last_node_id":29,"last_link_id":47,"links":{"0":{"data":null,"id":0,"origin_id":0,"origin_slot":0,"target_id":1,"target_slot":0},"1":{"data":null,"id":1,"origin_id":0,"origin_slot":0,"target_id":8,"target_slot":0},"2":{"data":null,"id":2,"origin_id":8,"origin_slot":2,"target_id":10,"target_slot":2},"3":{"data":null,"id":3,"origin_id":1,"origin_slot":0,"target_id":2,"target_slot":0},"4":{"data":null,"id":4,"origin_id":4,"origin_slot":0,"target_id":6,"target_slot":0},"5":{"data":null,"id":5,"origin_id":5,"origin_slot":0,"target_id":6,"target_slot":1},"6":{"data":null,"id":6,"origin_id":6,"origin_slot":0,"target_id":7,"target_slot":0},"7":{"data":null,"id":7,"origin_id":1,"origin_slot":1,"target_id":9,"target_slot":0},"8":{"data":null,"id":8,"origin_id":7,"origin_slot":1,"target_id":9,"target_slot":1},"9":{"data":null,"id":9,"origin_id":9,"origin_slot":0,"target_id":3,"target_slot":0},"10":{"data":null,"id":10,"origin_id":10,"origin_slot":0,"target_id":9,"target_slot":2},"11":{"data":null,"id":11,"origin_id":0,"origin_slot":0,"target_id":11,"target_slot":0},"12":{"data":null,"id":12,"origin_id":11,"origin_slot":1,"target_id":9,"target_slot":0},"13":{"data":null,"id":13,"origin_id":0,"origin_slot":0,"target_id":12,"target_slot":0},"14":{"data":null,"id":14,"origin_id":12,"origin_slot":2,"target_id":10,"target_slot":2},"15":{"id":15,"origin_id":15,"origin_slot":0,"target_id":13,"target_slot":0,"data":null},"16":{"id":16,"origin_id":13,"origin_slot":1,"target_id":3,"target_slot":0,"data":null},"17":{"id":17,"origin_id":18,"origin_slot":0,"target_id":16,"target_slot":1,"data":null},"18":{"id":18,"origin_id":17,"origin_slot":0,"target_id":16,"target_slot":0,"data":null},"19":{"id":19,"origin_id":16,"origin_slot":0,"target_id":14,"target_slot":0,"data":null},"20":{"id":20,"origin_id":13,"origin_slot":1,"target_id":19,"target_slot":0,"data":null},"21":{"id":21,"origin_id":14,"origin_slot":1,"target_id":19,"target_slot":1,"data":null},"22":{"id":22,"origin_id":19,"origin_slot":0,"target_id":3,"target_slot":0,"data":null},"23":{"id":23,"origin_id":19,"origin_slot":0,"target_id":3,"target_slot":0,"data":null},"24":{"id":24,"origin_id":20,"origin_slot":0,"target_id":16,"target_slot":1,"data":null},"25":{"id":25,"origin_id":15,"origin_slot":0,"target_id":22,"target_slot":0,"data":null},"26":{"id":26,"origin_id":22,"origin_slot":2,"target_id":21,"target_slot":2,"data":null},"27":{"id":27,"origin_id":21,"origin_slot":0,"target_id":19,"target_slot":2,"data":null},"28":{"id":28,"origin_id":19,"origin_slot":0,"target_id":23,"target_slot":0,"data":null},"29":{"id":29,"origin_id":14,"origin_slot":1,"target_id":19,"target_slot":0,"data":null},"30":{"id":30,"origin_id":13,"origin_slot":1,"target_id":19,"target_slot":1,"data":null},"31":{"id":31,"origin_id":19,"origin_slot":0,"target_id":24,"target_slot":0,"data":null},"32":{"id":32,"origin_id":19,"origin_slot":0,"target_id":24,"target_slot":1,"data":null},"33":{"id":33,"origin_id":24,"origin_slot":0,"target_id":3,"target_slot":0,"data":null},"34":{"id":34,"origin_id":24,"origin_slot":0,"target_id":3,"target_slot":0,"data":null},"35":{"id":35,"origin_id":19,"origin_slot":0,"target_id":3,"target_slot":0,"data":null},"36":{"id":36,"origin_id":25,"origin_slot":0,"target_id":26,"target_slot":0,"data":null},"37":{"id":37,"origin_id":26,"origin_slot":1,"target_id":21,"target_slot":2,"data":null},"38":{"id":38,"origin_id":26,"origin_slot":1,"target_id":27,"target_slot":0,"data":null},"39":{"id":39,"origin_id":27,"origin_slot":0,"target_id":21,"target_slot":2,"data":null},"40":{"id":40,"origin_id":19,"origin_slot":0,"target_id":3,"target_slot":0,"data":null},"41":{"id":41,"origin_id":27,"origin_slot":0,"target_id":28,"target_slot":0,"data":null},"42":{"id":42,"origin_id":28,"origin_slot":0,"target_id":21,"target_slot":2,"data":null},"43":{"id":43,"origin_id":26,"origin_slot":0,"target_id":21,"target_slot":2,"data":null},"44":{"id":44,"origin_id":26,"origin_slot":1,"target_id":21,"target_slot":2,"data":null},"45":{"id":45,"origin_id":14,"origin_slot":1,"target_id":19,"target_slot":1,"data":null},"46":{"id":46,"origin_id":13,"origin_slot":1,"target_id":19,"target_slot":0,"data":null}},"config":{},"nodes":[{"id":17,"title":"PixelNormalWS","type":"coordinates/PixelNormalWS","pos":[45,534],"size":{"0":124,"1":20},"flags":{},"outputs":[{"name":"Pixel Normal","type":"vec3","types":{"vec3":1},"links":[18]}],"shader_piece":{"id":"pixel_normal_ws","includes":{"a_normal":1,"u_model":1,"v_normal":1}},"codes":[{"vertex":{"header":{},"body_hash":{"794463831":{"str":"v_normal = (u_model * vec4(a_normal, 0.0)).xyz;\n"}},"body_ids":[794463831],"includes":{"a_normal":1,"u_model":1,"v_normal":1},"scope":""},"fragment":{"header":{},"body_hash":{"-1326236929":{"str":"vec3 pixel_normal_ws = normal;\n"}},"body_ids":[-1326236929],"includes":{"a_normal":1,"u_model":1,"v_normal":1},"scope":""},"output_var":"pixel_normal_ws","order":0}],"properties":{}},{"id":16,"title":"Reflect","type":"texture/Reflect","pos":[253,566],"size":{"0":140,"1":34},"flags":{},"inputs":[{"name":"normal","type":"vec3","link":18,"types":{"vec3":1}},{"name":"vector","type":"vec3","link":24,"types":{"vec3":1}}],"outputs":[{"name":"reflect vector","type":"vec3","types":{"vec3":1},"links":[19]}],"shader_piece":{"name":"reflect","id":"2paramfunc","includes":{}},"codes":[{"vertex":{"header":{},"body_hash":{"794463831":{"str":"v_normal = (u_model * vec4(a_normal, 0.0)).xyz;\n","order":4}},"body_ids":[794463831],"includes":{"a_normal":1,"u_model":1,"v_normal":1,"u_eye":1,"v_pos":1},"scope":"","order":4},"fragment":{"header":{},"body_hash":{"294262404":{"str":"vec3 reflect_16 = reflect(camera_to_pixel_ws,pixel_normal_ws);\n"},"-1326236929":{"str":"vec3 pixel_normal_ws = normal;\n","order":4},"-488000329":{"str":"vec3 camera_to_pixel_ws = normalize(v_pos - u_eye);\n","order":4}},"body_ids":[-488000329,-1326236929,294262404],"includes":{"a_normal":1,"u_model":1,"v_normal":1,"u_eye":1,"v_pos":1},"scope":"","order":4},"output_var":"reflect_16","order":4}],"properties":{}},{"id":20,"title":"CameraToPixelWS","type":"coordinates/CameraToPixelWS","pos":[39,607],"size":{"0":145,"1":20},"flags":{},"outputs":[{"name":"Camera To Pixel","type":"vec3","types":{"vec3":1},"links":[24]}],"shader_piece":{"id":"cameratopixelws","includes":{"u_eye":1,"v_pos":1}},"codes":[{"vertex":{"header":{},"body_hash":{},"body_ids":[],"includes":{"u_eye":1,"v_pos":1},"scope":""},"fragment":{"header":{},"body_hash":{"-488000329":{"str":"vec3 camera_to_pixel_ws = normalize(v_pos - u_eye);\n"}},"body_ids":[-488000329],"includes":{"u_eye":1,"v_pos":1},"scope":""},"output_var":"camera_to_pixel_ws","order":1}],"properties":{}},{"id":15,"title":"TextureCoords","type":"coordinates/TextureCoords","pos":[233,374],"size":{"0":123,"1":20},"flags":{},"outputs":[{"name":"UVs","type":"vec2","types":{"vec2":1},"links":[15]}],"shader_piece":{"id":"uvs","includes":{"a_coord":1,"v_coord":1},"already_included":false},"codes":[{"vertex":{"header":{},"body_hash":{"1641341615":{"str":"v_coord = a_coord;\n"}},"body_ids":[1641341615],"includes":{"a_coord":1,"v_coord":1},"scope":""},"fragment":{"header":{},"body_hash":{},"body_ids":[],"includes":{"a_coord":1,"v_coord":1},"scope":""},"output_var":"v_coord","order":2}],"properties":{"UTiling":1,"VTiling":1}},{"id":14,"title":"TextureSampleCube","type":"texture/TextureSampleCube","pos":[490,558],"size":[170,165],"flags":{},"inputs":[{"name":"vec3","type":"vec3","link":19,"types":{}}],"outputs":[{"name":"Cubemap","type":"Cubemap","types":{},"links":null},{"name":"Color","type":"vec4","types":{"vec3":1,"vec4":1},"links":[45]}],"shader_piece":{"id":"texture_sample_cube","includes":{}},"codes":[{"vertex":{"header":{},"body_hash":{},"body_ids":[],"includes":{},"scope":""},"fragment":{"header":{},"body_hash":{},"body_ids":[],"includes":{},"scope":""},"output_var":""},{"vertex":{"header":{},"body_hash":{"794463831":{"str":"v_normal = (u_model * vec4(a_normal, 0.0)).xyz;\n","order":7}},"body_ids":[794463831],"includes":{"a_normal":1,"u_model":1,"v_normal":1,"u_eye":1,"v_pos":1},"scope":"","order":7},"fragment":{"header":{"uniform samplerCube u_cube2_texture;\n":1},"body_hash":{"294262404":{"str":"vec3 reflect_16 = reflect(camera_to_pixel_ws,pixel_normal_ws);\n","order":7},"-6153782":{"str":"vec4 color_14 = textureCube(u_cube2_texture, reflect_16);\n"},"-1326236929":{"str":"vec3 pixel_normal_ws = normal;\n","order":7},"-488000329":{"str":"vec3 camera_to_pixel_ws = normalize(v_pos - u_eye);\n","order":7}},"body_ids":[-488000329,-1326236929,294262404,-6153782],"includes":{"a_normal":1,"u_model":1,"v_normal":1,"u_eye":1,"v_pos":1},"scope":"","order":7},"output_var":"color_14","order":7}],"properties":{"name":"cube2"}},{"id":13,"title":"TextureSample","type":"texture/TextureSample","pos":[479,315],"size":[170,165],"flags":{},"inputs":[{"name":"UVs","type":"vec2","link":15,"types":{"vec2":1}}],"outputs":[{"name":"Texture","type":"Texture","types":{"Texture":1},"links":null},{"name":"Color","type":"vec4","types":{"vec3":1,"vec4":1},"links":[46]},{"name":"R","type":"number","types":{"number":1},"links":null},{"name":"G","type":"number","types":{"number":1},"links":null},{"name":"B","type":"number","types":{"number":1},"links":null},{"name":"A","type":"number","types":{"number":1},"links":null}],"shader_piece":{"id":"texture_sample","includes":{}},"codes":[{"vertex":{"header":{},"body_hash":{},"body_ids":[],"includes":{},"scope":""},"fragment":{"header":{},"body_hash":{},"body_ids":[],"includes":{},"scope":""},"output_var":""},{"vertex":{"header":{},"body_hash":{"1641341615":{"str":"v_coord = a_coord;\n","order":5}},"body_ids":[1641341615],"includes":{"a_coord":1,"v_coord":1},"scope":"","order":5},"fragment":{"header":{"uniform sampler2D u_ball_texture;\n":1},"body_hash":{"143519557":{"str":"vec4 color_13 = texture2D(u_ball_texture, v_coord);\n"}},"body_ids":[143519557],"includes":{"a_coord":1,"v_coord":1},"scope":"","order":5},"output_var":"color_13","order":5},{"vertex":{"header":{},"body_hash":{"1641341615":{"str":"v_coord = a_coord;\n","order":5}},"body_ids":[1641341615],"includes":{"a_coord":1,"v_coord":1},"scope":""},"fragment":{"header":{"uniform sampler2D u_ball_texture;\n":1},"body_hash":{"143519557":{"str":"vec4 color_13 = texture2D(u_ball_texture, v_coord);\n"}},"body_ids":[143519557],"includes":{"a_coord":1,"v_coord":1},"scope":""},"output_var":"color_13.r","order":5},{"vertex":{"header":{},"body_hash":{"1641341615":{"str":"v_coord = a_coord;\n","order":5}},"body_ids":[1641341615],"includes":{"a_coord":1,"v_coord":1},"scope":""},"fragment":{"header":{"uniform sampler2D u_ball_texture;\n":1},"body_hash":{"143519557":{"str":"vec4 color_13 = texture2D(u_ball_texture, v_coord);\n"}},"body_ids":[143519557],"includes":{"a_coord":1,"v_coord":1},"scope":""},"output_var":"color_13.g","order":5},{"vertex":{"header":{},"body_hash":{"1641341615":{"str":"v_coord = a_coord;\n","order":5}},"body_ids":[1641341615],"includes":{"a_coord":1,"v_coord":1},"scope":""},"fragment":{"header":{"uniform sampler2D u_ball_texture;\n":1},"body_hash":{"143519557":{"str":"vec4 color_13 = texture2D(u_ball_texture, v_coord);\n"}},"body_ids":[143519557],"includes":{"a_coord":1,"v_coord":1},"scope":""},"output_var":"color_13.b","order":5},{"vertex":{"header":{},"body_hash":{"1641341615":{"str":"v_coord = a_coord;\n","order":5}},"body_ids":[1641341615],"includes":{"a_coord":1,"v_coord":1},"scope":""},"fragment":{"header":{"uniform sampler2D u_ball_texture;\n":1},"body_hash":{"143519557":{"str":"vec4 color_13 = texture2D(u_ball_texture, v_coord);\n"}},"body_ids":[143519557],"includes":{"a_coord":1,"v_coord":1},"scope":""},"output_var":"color_13.a","order":5}],"properties":{"name":"ball"}},{"id":21,"title":"SmoothStep","type":"texture/SmoothStep","pos":[686,725],"size":{"0":140,"1":48},"flags":{},"inputs":[{"name":"lower","type":"number","link":null,"types":{"number":1},"label":"lower=0.300"},{"name":"upper","type":"number","link":null,"types":{"number":1},"label":"upper=0.800"},{"name":"x","type":"number","link":44,"types":{"number":1}}],"outputs":[{"name":"Result","type":"number","types":{"number":1},"links":[27]}],"shader_piece":{"id":"smoothsteep","includes":{}},"codes":[{"vertex":{"header":{},"body_hash":{},"body_ids":[],"includes":{"u_eye":1,"v_pos":1},"scope":""},"fragment":{"header":{},"body_hash":{"-1343114527":{"str":"float smoothed_21 = smoothstep(0.300,0.800, v_pos.y);\n"}},"body_ids":[-1343114527],"includes":{"v_pos":1,"u_eye":1},"scope":""},"output_var":"smoothed_21"}],"properties":{"lower":0.3,"upper":0.8}},{"id":26,"title":"VecToComps","type":"coordinates/VecToComps","pos":[443,763],"size":{"0":140,"1":62},"flags":{},"inputs":[{"name":"vec","type":"vec4","link":36,"types":{"vec4":1,"vec3":1,"vec2":1}}],"outputs":[{"name":"x","type":"number","types":{"number":1},"links":[]},{"name":"y","type":"number","types":{"number":1},"links":[44]},{"name":"z","type":"number","types":{"number":1},"links":null},{"name":"v","type":"number","types":{"number":1},"links":null}],"shader_piece":null,"codes":[{"vertex":{"header":{},"body_hash":{},"body_ids":[],"includes":{"u_eye":1,"v_pos":1},"scope":""},"fragment":{"header":{},"body_hash":{},"body_ids":[],"includes":{"v_pos":1,"u_eye":1},"scope":""},"output_var":"v_pos.x"},{"vertex":{"header":{},"body_hash":{},"body_ids":[],"includes":{"u_eye":1,"v_pos":1},"scope":""},"fragment":{"header":{},"body_hash":{},"body_ids":[],"includes":{"v_pos":1,"u_eye":1},"scope":""},"output_var":"v_pos.y"},{"vertex":{"header":{},"body_hash":{},"body_ids":[],"includes":{"u_eye":1,"v_pos":1},"scope":""},"fragment":{"header":{},"body_hash":{},"body_ids":[],"includes":{"v_pos":1,"u_eye":1},"scope":""},"output_var":"v_pos.z"},null,{"vertex":{"header":{},"body_hash":{},"body_ids":[],"includes":{"u_eye":1,"v_pos":1},"scope":""},"fragment":{"header":{},"body_hash":{},"body_ids":[],"includes":{"v_pos":1,"u_eye":1},"scope":""},"output_var":"v_pos.v"}],"properties":{}},{"id":25,"title":"VertexPositionWS","type":"coordinates/VertexPositionWS","pos":[214,781],"size":{"0":143,"1":20},"flags":{},"outputs":[{"name":"vec3","type":"vec3","types":{"vec3":1},"links":[36]}],"shader_piece":{"id":"cameratopixelws","includes":{"v_pos":1,"u_eye":1},"already_included":false},"codes":[{"vertex":{"header":{},"body_hash":{},"body_ids":[],"includes":{"u_eye":1,"v_pos":1},"scope":""},"fragment":{"header":{},"body_hash":{},"body_ids":[],"includes":{"v_pos":1,"u_eye":1},"scope":""},"output_var":"v_pos"}],"properties":{}},{"id":19,"title":"Mix","type":"texture/Mix","pos":[862,540],"size":{"0":140,"1":48},"flags":{},"inputs":[{"name":"A","type":"vec3","link":46,"types":{"vec4":1,"vec3":1,"float":1}},{"name":"B","type":"vec3","link":45,"types":{"vec4":1,"vec3":1,"float":1}},{"name":"alpha","type":"number","link":27,"types":{"float":1},"label":"alpha"}],"outputs":[{"name":"Result","type":"vec4","types":{"vec4":1,"vec3":1},"links":[40]}],"shader_piece":{"name":"mix","id":"3paramfunc","includes":{}},"codes":[{"vertex":{"header":{},"body_hash":{"794463831":{"str":"v_normal = (u_model * vec4(a_normal, 0.0)).xyz;\n","order":9},"1641341615":{"str":"v_coord = a_coord;\n","order":9}},"body_ids":[794463831,1641341615],"includes":{"u_eye":1,"v_pos":1,"a_coord":1,"v_coord":1,"a_normal":1,"u_model":1,"v_normal":1},"scope":"","order":9},"fragment":{"header":{"uniform sampler2D u_ball_texture;\n":1,"uniform samplerCube u_cube2_texture;\n":1},"body_hash":{"143519557":{"str":"vec4 color_13 = texture2D(u_ball_texture, v_coord);\n","order":9},"294262404":{"str":"vec3 reflect_16 = reflect(camera_to_pixel_ws,pixel_normal_ws);\n","order":9},"-892524503":{"str":"vec4 mixed_19 = mix(color_13,color_14,smoothed_21);\n"},"-1343114527":{"str":"float smoothed_21 = smoothstep(0.300,0.800, v_pos.y);\n","order":9},"-6153782":{"str":"vec4 color_14 = textureCube(u_cube2_texture, reflect_16);\n","order":9},"-1326236929":{"str":"vec3 pixel_normal_ws = normal;\n","order":9},"-488000329":{"str":"vec3 camera_to_pixel_ws = normalize(v_pos - u_eye);\n","order":9}},"body_ids":[-488000329,-1326236929,294262404,-6153782,143519557,-1343114527,-892524503],"includes":{"v_pos":1,"u_eye":1,"a_coord":1,"v_coord":1,"a_normal":1,"u_model":1,"v_normal":1},"scope":"","order":9},"output_var":"mixed_19","order":9}],"properties":{"alpha":0.5}},{"id":3,"title":"Shader","type":"core/Shader","pos":[1069,502],"size":[125,250],"flags":{},"inputs":[{"link":40,"name":"color","type":"vec4","types":{"vec4":1}},{"link":null,"name":"normal","type":"vec3","types":{"vec3":1}},{"link":null,"name":"world position offset","type":"vec3","types":{"vec3":1}}],"shader_piece":{},"codes":[],"properties":{}}]} -------------------------------------------------------------------------------- /img/grid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victhorlopez/ez-shader-editor/ef608a65bc107259595c902ca329314398348cfd/img/grid.png -------------------------------------------------------------------------------- /img/light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victhorlopez/ez-shader-editor/ef608a65bc107259595c902ca329314398348cfd/img/light.png -------------------------------------------------------------------------------- /img/rotation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victhorlopez/ez-shader-editor/ef608a65bc107259595c902ca329314398348cfd/img/rotation.png -------------------------------------------------------------------------------- /img/rotation_min2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victhorlopez/ez-shader-editor/ef608a65bc107259595c902ca329314398348cfd/img/rotation_min2.png -------------------------------------------------------------------------------- /img/rotation_min3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victhorlopez/ez-shader-editor/ef608a65bc107259595c902ca329314398348cfd/img/rotation_min3.png -------------------------------------------------------------------------------- /img/scale.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victhorlopez/ez-shader-editor/ef608a65bc107259595c902ca329314398348cfd/img/scale.png -------------------------------------------------------------------------------- /img/translate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victhorlopez/ez-shader-editor/ef608a65bc107259595c902ca329314398348cfd/img/translate.png -------------------------------------------------------------------------------- /img/translate_min2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victhorlopez/ez-shader-editor/ef608a65bc107259595c902ca329314398348cfd/img/translate_min2.png -------------------------------------------------------------------------------- /img/unselect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victhorlopez/ez-shader-editor/ef608a65bc107259595c902ca329314398348cfd/img/unselect.png -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Node Based Shader Editor in WebGL 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 |
34 |
35 |
myTab
36 |
37 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /js/external/ez.render.min.js: -------------------------------------------------------------------------------- 1 | /*! ez.render 09-06-2015 */ 2 | var EZ=EZ||{};EZ.ZERO=vec3.fromValues(0,0,0),EZ.LEFT=vec3.fromValues(1,0,0),EZ.UP=vec3.fromValues(0,1,0),EZ.FRONT=vec3.fromValues(0,0,1),EZ.WHITE=vec3.fromValues(1,1,1),EZ.BLACK=vec3.fromValues(0,0,0),EZ.temp_mat4=mat4.create(),EZ.temp_vec2=vec3.create(),EZ.temp_vec3=vec3.create(),EZ.temp_vec4=vec4.create(),EZ.temp_quat=quat.create(),EZ.temp_quat2=quat.create(),EZ.temp_mat3=mat3.create(),EZ.PRIORITY_BACKGROUND=30,EZ.PRIORITY_OPAQUE=20,EZ.PRIORITY_ALPHA=10,EZ.PRIORITY_HUD=0,EZ.entity_count=0,EZ.Entity=function(){this.uuid=EZ.entity_count++,this.name="",this.type="entity",this.position=vec3.create(),this.quat=quat.create(),this.scale=vec3.fromValues(1,1,1),this.up=vec3.clone(EZ.UP),this.local_transform=mat4.create(),this.global_transform=mat4.create(),this.local_needs_update=!0,this.global_needs_update=!0,this.parent=null,this.children=[],this.visible=!0,this.follow=null},EZ.Entity.prototype={constructor:EZ.Entity,updateLocalMatrix:function(){mat4.identity(this.local_transform),mat4.translate(this.local_transform,this.local_transform,this.follow?this.follow.position:this.position),mat4.fromQuat(EZ.temp_mat4,this.quat),mat4.mul(this.local_transform,this.local_transform,EZ.temp_mat4),mat4.scale(this.local_transform,this.local_transform,this.scale),this.local_needs_update=!1,this.global_needs_update=!0},updateGlobalMatrix:function(a){(this.local_needs_update||this.follow&&this.follow.local_needs_update)&&this.updateLocalMatrix(),this.parent&&(a||this.parent.updateGlobalMatrix(),mat4.mul(this.global_transform,this.local_transform,this.parent.global_transform)),this.global_needs_update=!1},lookAt:function(a){mat4.lookAt(this.global_transform,this.position,a,this.up),quat.fromMat4(this.quat,this.global_transform),this.local_needs_update=!0},addChild:function(a){if(a.parent)throw"the child "+a.name+" has already a parent";a.parent=this,this.children.push(a),a.propagate("updateGlobalMatrix",[!0])},removeChild:function(a){if(a.parent!==this)throw"the child "+a.name+" has a different parent";a.parent=null,this.children[this.children.length]=a;for(var b=this.children.length-1;b>=0;b--)this.children[b]===a&&this.children.splice(b,1);this.propagate("updateGlobalMatrix",[!0])},followEntity:function(a){this.follow=a},propagate:function(a,b){for(var c=this.children.length-1;c>=0;c--){var d=this.children[c];d&&(d[a]&&d[a].apply(d,b),d.propagate(d,b))}},getAllChildren:function(){for(var a=[],b=this.children.length-1;b>=0;b--){var c=this.children[b];a[a.length]=c,c.getAllChildren(a)}return a},getLeft:function(){return this.getGlobalVector([1,0,0])},getUp:function(){return this.getGlobalVector([0,1,0])},getFront:function(){return this.getGlobalVector([0,0,1])},getGlobalVector:function(a,b){return vec3.transformMat4(b||vec3.create(),a,this.global_transform)}},EZ.EMesh=function(){EZ.Entity.call(this),this.color=vec4.fromValues(1,1,1,1),this.render_priority=EZ.PRIORITY_OPAQUE,this.shader="",this.mesh="",this.mesh_obj=null,this.textures={},this.uniforms={u_color:this.color,u_color_texture:0},this.flags={flip_normals:!1,depth_test:!0,depth_write:!0,blending:!1,blending_mode:"additive",two_sided:!1},this.type="mesh"},EZ.EMesh.prototype=Object.create(EZ.Entity.prototype),EZ.EMesh.prototype.constructor=EZ.EMesh,EZ.EMesh.prototype.setTexture=function(a,b){b?"string"==typeof b&&(this.textures[a]=b):this.textures[a]=null},EZ.EMesh.prototype.clearTextures=function(){this.textures={}},EZ.EMesh.prototype.setSkyBox=function(){this.flags.depth_write=!1,this.flags.depth_test=!1,this.render_priority=EZ.PRIORITY_BACKGROUND,this.flags.flip_normals=!0},EZ.EMesh.prototype.render=function(a){if(this.mesh&&(this.mesh_obj=gl.meshes[this.mesh]),this.mesh_obj){var b=0,c=null;for(var d in this.textures){var e=this.textures[d];c=gl.textures[e],c||(c=gl.textures.white),this.uniforms["u_"+d+"_texture"]=c.bind(b++)}var f=null;this.shader&&(f=gl.shaders[this.shader]),f||(f=gl.shaders.flat),gl.frontFace(this.flags.flip_normals?gl.CW:gl.CCW),gl[this.flags.depth_test===!1?"disable":"enable"](gl.DEPTH_TEST),this.flags.depth_write===!1&&gl.depthMask(!1),gl[this.flags.two_sided===!0?"disable":"enable"](gl.CULL_FACE),this.flags.blending&&(gl.enable(gl.BLEND),"additive"==this.flags.blending_mode?gl.blendFunc(gl.SRC_ALPHA,gl.ONE):"substractive"==this.flags.blending_mode?gl.blendFunc(gl.ZERO,gl.ONE_MINUS_SRC_COLOR):"multiplicative"==this.flags.blending_mode?gl.blendFunc(gl.ZERO,gl.SRC_COLOR):"alpha_blended"==this.flags.blending_mode?gl.blendFunc(gl.SRC_ALPHA,gl.ONE_MINUS_SRC_ALPHA):"screen"==this.flags.blending_mode&&gl.blendFunc(gl.ONE,gl.ONE_MINUS_SRC_COLOR)),[GL.SRC_ALPHA,GL.ONE],this.setExtraUniforms(f),f.uniforms(this.uniforms),f.uniforms(a.uniforms),f.draw(this.mesh_obj,void 0===this.flags.primitive?gl.TRIANGLES:this.flags.primitive),this.flags.flip_normals&&gl.frontFace(gl.CCW),this.flags.depth_test===!1&&gl.enable(gl.DEPTH_TEST),this.flags.blending&&gl.disable(gl.BLEND),this.flags.two_sided&&gl.disable(gl.CULL_FACE),this.flags.depth_write===!1&&gl.depthMask(!0)}},EZ.EMesh.prototype.setExtraUniforms=function(a){var b={};for(var c in a.globals)b[a.globals[c].name]=a.globals[c].getValue();a.uniforms(b)},EZ.EScene=function(){EZ.Entity.call(this),this.time=0,this.type="scene"},EZ.EScene.prototype=Object.create(EZ.Entity.prototype),EZ.EScene.prototype.constructor=EZ.EScene,EZ.EScene.prototype.update=function(a){this.time+=a},EZ.ECamera=function(a,b,c,d){EZ.Entity.call(this),this.target=vec3.create(),this.aspect=b||1,this.fov=a||45,this.near=c||.1,this.far=d||1e3,this.projection_matrix=mat4.create(),this.view_projection=mat4.create(),this.view=mat4.create(),this.type="camera"},EZ.ECamera.prototype=Object.create(EZ.Entity.prototype),EZ.ECamera.prototype.constructor=EZ.ECamera,EZ.ECamera.prototype.updateProjectionMatrix=function(){mat4.invert(this.view,this.global_transform),mat4.perspective(this.projection_matrix,this.fov*DEG2RAD,this.aspect,this.near,this.far),mat4.mul(this.view_projection,this.projection_matrix,this.view)},EZ.CameraController=function(a){if(a&&!a.context)throw"CameraController can't work without the canvas";this.renderer=a,this.ctx=a.context,this.cam=null,this.needs_update=!0,this.needs_rotation_update=!0,this.radius=vec3.create(),this.scale=1,this.zoom_speed=1;var b=this;this.onMouseMove=function(a){if(a.dragging){var c=a.deltax>.1||a.deltax<-.1?-a.deltax:0;c&&(quat.setAxisAngle(EZ.temp_quat,[0,1,0],c*DEG2RAD),b.cam.needs_local_update=!0,b.needs_x_rot=!0,b.needs_update=!0);var d=b.cam.getFront();vec3.normalize(d,d);var e=vec3.dot([0,1,0],d),f=.01,g=a.deltay>.1?f:a.deltay<-.1?-f:0;if(.99>e+g&&e+g>-.99&&(c=a.deltay>.1||a.deltay<-.1?-a.deltay:0)){var h=b.cam.getLeft();vec3.sub(h,h,b.cam.position),quat.setAxisAngle(EZ.temp_quat2,h,c*DEG2RAD),b.cam.needs_local_update=!0,b.needs_y_rot=!0,b.needs_update=!0}}},this.onMouseDown=function(){},this.onMouseWheel=function(a){Math.pow(.95,b.zoom_speed);a.deltaY<1?b.scale*=.95:b.scale/=.95,b.needs_update=!0},this.update=function(){this.cam=this.renderer.current_cam,this.cam&&this.needs_update&&(vec3.sub(EZ.temp_vec4,this.cam.position,this.cam.target),vec3.scale(EZ.temp_vec4,EZ.temp_vec4,this.scale),this.needs_x_rot&&vec3.transformQuat(EZ.temp_vec4,EZ.temp_vec4,EZ.temp_quat),this.needs_y_rot&&vec3.transformQuat(EZ.temp_vec4,EZ.temp_vec4,EZ.temp_quat2),vec3.add(this.cam.position,this.cam.target,EZ.temp_vec4),this.scale=1,this.cam.lookAt(this.cam.target),this.needs_update=!1,this.needs_y_rot=!1,this.needs_x_rot=!1)},this.ctx.captureMouse(!0),this.ctx.onmousewheel=this.onMouseWheel,this.ctx.onmousedown=this.onMouseDown,this.ctx.onmousemove=this.onMouseMove,this.ctx.captureKeys(),this.ctx.onkeydown=function(){}},EZ.Renderer=function(){this.current_cam=null,this.current_scene=null,this.cam_controller=null,this.color=[0,0,0,0],this.mvp_matrix=mat4.create(),this.uniforms={u_view:{},u_viewprojection:{},u_model:{},u_mvp:this.mvp_matrix},this.now=getTime(),this.then=this.now,this.dt=0,this.total_time=0},EZ.Renderer.prototype={constructor:EZ.Renderer,addMesh:function(a,b){this.context!=window.gl&&this.context.makeCurrent(),this.context.meshes[a]=b},addTextureFromURL:function(a,b,c,d){return c=c||{},this.context.textures[a]=GL.Texture.fromURL(b,c,d,this.context)},addCubeMapFromURL:function(a,b,c,d){return c=c||{},this.context.textures[a]=GL.Texture.cubemapFromURL(b,c,d,this.context)},loadAssets:function(){var a={lat:128,size:.5};a["long"]=128,this.addMesh("sphere",GL.Mesh.sphere(a)),this.addMesh("cylinder",GL.Mesh.cylinder({height:2,radius:.1})),this.addMesh("circle",GL.Mesh.circle({xz:!0})),this.addMesh("grid",GL.Mesh.grid({size:1,lines:50})),this.addMesh("box",GL.Mesh.box({size:1})),this.addMesh("plane",GL.Mesh.plane({size:1,detail:100})),this.addMesh("lee",GL.Mesh.fromURL("assets/meshes/lee.obj")),gl.textures={},gl.textures.notfound=new GL.Texture(1,1,{filter:gl.NEAREST,pixel_data:new Uint8Array([0,0,0,255])}),gl.textures.white=new GL.Texture(1,1,{filter:gl.NEAREST,pixel_data:new Uint8Array([255,255,255,255])})},createCanvas:function(a,b,c){this.context=GL.create({width:a,height:b}),this.context.canvas.id=c,this.context.canvas.width=a,this.context.canvas.height=b;var d=this;this.context.ondrop=function(a){a.preventDefault();var b,c=a.dataTransfer.files[0],e=c.name,f=e.lastIndexOf(".");if(-1==f)return b="";b=e.substr(f+1).toLowerCase();var g=new FileReader;g.onload=function(a){var b=a.target.result;node.onDropFile(b,e,c,null,gl),d.onDropFile&&d.onDropFile(b,e,c),LiteGraph.dispatchEvent("contentChange",null,null)};var h=c.type.split("/")[0];return"text"==h||"json"==b?g.readAsText(c):"image"==h?g.readAsDataURL(c):g.readAsArrayBuffer(c),!1},this.cam_controller=new EZ.CameraController(this),this.loadAssets(),this.createShaders()},setModelMatrix:function(a,b){mat4.multiply(this.mvp_matrix,b.view_projection,a)},setUniforms:function(a,b){this.uniforms={u_eye:a.position,u_view:a.view,u_viewprojection:a.view_projection,u_model:b.global_transform,u_mvp:this.mvp_matrix,u_time:this.total_time,u_frame_time:this.dt}},clearContext:function(){this.context.clearColor(this.color[0],this.color[1],this.color[2],this.color[3]),this.context.clear(gl.COLOR_BUFFER_BIT|gl.DEPTH_BUFFER_BIT)},update:function(){this.now=getTime();var a=.001*(this.now-this.then);this.then=this.now,this.dt=a,this.total_time+=a,this.current_scene&&this.current_scene.update(a),this.cam_controller.update(a)},render:function(a,b){if(!a)throw"Renderer.render: scene not provided";if(!b)throw"Renderer.render: camera not provided";this.context!=window.gl&&this.context.makeCurrent(),this.current_cam=b,this.current_scene=a,this.update(),this.clearContext();for(var c=a.getAllChildren(),d=null,e=c.length-1;e>=0;e--)d=c[e],d.updateGlobalMatrix(!0);b.updateProjectionMatrix(),c.sort(function(a,b){return a.render_priority-b.render_priority});for(var e=c.length-1;e>=0;e--)d=c[e],d.render&&d.visible&&(this.setModelMatrix(d.global_transform,b),this.setUniforms(b,d),d.render(this))},createShaders:function(){var a=new GL.Shader(" precision mediump float; attribute vec3 a_vertex; uniform mat4 u_mvp; void main() { gl_Position = u_mvp * vec4(a_vertex,1.0); gl_PointSize = 5.0; } "," precision mediump float; uniform vec4 u_color; void main() { gl_FragColor = u_color; } ");gl.shaders.flat=a;var b={u_lightvector:vec3.fromValues(1,0,0),u_lightcolor:EZ.WHITE},c=new GL.Shader(" precision mediump float; attribute vec3 a_vertex; attribute vec3 a_normal; varying vec3 v_normal; uniform mat4 u_mvp; uniform mat4 u_model; void main() { v_normal = (u_model * vec4(a_normal,0.0)).xyz; gl_Position = u_mvp * vec4(a_vertex,1.0); } "," precision mediump float; varying vec3 v_normal; uniform vec3 u_lightcolor; uniform vec3 u_lightvector; uniform vec4 u_color; void main() { vec3 N = normalize(v_normal); gl_FragColor = u_color * max(0.0, dot(u_lightvector,N)) * vec4(u_lightcolor,1.0); } ");gl.shaders.phong=c,gl.shaders.phong.uniforms(b);var d=new Shader(" precision mediump float; attribute vec3 a_vertex; attribute vec3 a_normal; varying vec3 v_pos; varying vec3 v_normal; uniform mat4 u_mvp; uniform mat4 u_model; void main() { v_pos = a_vertex.xyz; v_normal = (u_model * vec4(a_normal,0.0)).xyz; gl_Position = u_mvp * vec4(a_vertex,1.0); } "," precision mediump float; varying vec3 v_normal; varying vec3 v_pos; uniform vec4 u_color; uniform samplerCube u_cubemap_texture; void main() { vec3 N = normalize(v_normal); gl_FragColor = u_color * textureCube( u_cubemap_texture, v_pos ); } ");gl.shaders.cubemap=d;var e=new Shader(" precision mediump float; attribute vec3 a_vertex; attribute vec3 a_normal; varying vec3 v_pos; varying vec3 v_normal; varying vec3 v_refl; uniform vec3 u_eye; uniform mat4 u_mvp; uniform mat4 u_model; void main() { v_pos = (u_model * vec4(a_vertex,1.0)).xyz; v_normal = (u_model * vec4(a_normal,0.0)).xyz; gl_Position = u_mvp * vec4(a_vertex,1.0); vec3 I = v_pos - u_eye; v_refl = reflect(I,v_normal); } "," precision mediump float; varying vec3 v_normal; varying vec3 v_pos; varying vec3 v_refl; uniform vec4 u_color; uniform vec3 u_lightvector; uniform samplerCube u_cubemap_texture; void main() { vec3 N = normalize(v_normal); vec4 color = u_color * textureCube( u_cubemap_texture, v_refl); gl_FragColor = color *(0.2 + max(0.2, dot(u_lightvector, N))); } ");gl.shaders.env_reflection=e,gl.shaders.env_reflection.uniforms(b);var f=new Shader(" precision mediump float; attribute vec3 a_vertex; attribute vec3 a_normal; varying vec3 v_pos; varying vec3 v_normal; uniform mat4 u_mvp; uniform mat4 u_model; void main() { v_pos = (u_model * vec4(a_vertex,1.0)).xyz; v_normal = (u_model * vec4(a_normal,0.0)).xyz; gl_Position = u_mvp * vec4(a_vertex,1.0); } "," precision mediump float; varying vec3 v_normal; varying vec3 v_pos; varying vec3 v_refr; uniform vec3 u_eye; uniform vec4 u_color; uniform vec3 u_lightvector; uniform samplerCube u_cubemap_texture; void main() { vec3 N = normalize(v_normal); vec3 I = normalize(v_pos - u_eye); vec3 refr = refract(I,N, (0.666)); vec4 RR_color = u_color * textureCube( u_cubemap_texture, refr); gl_FragColor = RR_color; } ");gl.shaders.env_refraction=f,gl.shaders.env_refraction.uniforms(b)},append:function(a){a.appendChild(this.context.canvas)},resize:function(a,b){this.context!=window.gl&&this.context.makeCurrent(),gl.canvas.width=a,gl.canvas.height=b,gl.viewport(0,0,a,b),this.current_cam&&(this.current_cam.aspect=gl.canvas.width/gl.canvas.height)}}; -------------------------------------------------------------------------------- /js/external/highlight.pack.js: -------------------------------------------------------------------------------- 1 | !function(e){"undefined"!=typeof exports?e(exports):(window.hljs=e({}),"function"==typeof define&&define.amd&&define([],function(){return window.hljs}))}(function(e){function n(e){return e.replace(/&/gm,"&").replace(//gm,">")}function t(e){return e.nodeName.toLowerCase()}function r(e,n){var t=e&&e.exec(n);return t&&0==t.index}function a(e){var n=(e.className+" "+(e.parentNode?e.parentNode.className:"")).split(/\s+/);return n=n.map(function(e){return e.replace(/^lang(uage)?-/,"")}),n.filter(function(e){return N(e)||/no(-?)highlight/.test(e)})[0]}function o(e,n){var t={};for(var r in e)t[r]=e[r];if(n)for(var r in n)t[r]=n[r];return t}function i(e){var n=[];return function r(e,a){for(var o=e.firstChild;o;o=o.nextSibling)3==o.nodeType?a+=o.nodeValue.length:1==o.nodeType&&(n.push({event:"start",offset:a,node:o}),a=r(o,a),t(o).match(/br|hr|img|input/)||n.push({event:"stop",offset:a,node:o}));return a}(e,0),n}function c(e,r,a){function o(){return e.length&&r.length?e[0].offset!=r[0].offset?e[0].offset"}function c(e){l+=""}function u(e){("start"==e.event?i:c)(e.node)}for(var s=0,l="",f=[];e.length||r.length;){var g=o();if(l+=n(a.substr(s,g[0].offset-s)),s=g[0].offset,g==e){f.reverse().forEach(c);do u(g.splice(0,1)[0]),g=o();while(g==e&&g.length&&g[0].offset==s);f.reverse().forEach(i)}else"start"==g[0].event?f.push(g[0].node):f.pop(),u(g.splice(0,1)[0])}return l+n(a.substr(s))}function u(e){function n(e){return e&&e.source||e}function t(t,r){return RegExp(n(t),"m"+(e.cI?"i":"")+(r?"g":""))}function r(a,i){if(!a.compiled){if(a.compiled=!0,a.k=a.k||a.bK,a.k){var c={},u=function(n,t){e.cI&&(t=t.toLowerCase()),t.split(" ").forEach(function(e){var t=e.split("|");c[t[0]]=[n,t[1]?Number(t[1]):1]})};"string"==typeof a.k?u("keyword",a.k):Object.keys(a.k).forEach(function(e){u(e,a.k[e])}),a.k=c}a.lR=t(a.l||/\b[A-Za-z0-9_]+\b/,!0),i&&(a.bK&&(a.b="\\b("+a.bK.split(" ").join("|")+")\\b"),a.b||(a.b=/\B|\b/),a.bR=t(a.b),a.e||a.eW||(a.e=/\B|\b/),a.e&&(a.eR=t(a.e)),a.tE=n(a.e)||"",a.eW&&i.tE&&(a.tE+=(a.e?"|":"")+i.tE)),a.i&&(a.iR=t(a.i)),void 0===a.r&&(a.r=1),a.c||(a.c=[]);var s=[];a.c.forEach(function(e){e.v?e.v.forEach(function(n){s.push(o(e,n))}):s.push("self"==e?a:e)}),a.c=s,a.c.forEach(function(e){r(e,a)}),a.starts&&r(a.starts,i);var l=a.c.map(function(e){return e.bK?"\\.?("+e.b+")\\.?":e.b}).concat([a.tE,a.i]).map(n).filter(Boolean);a.t=l.length?t(l.join("|"),!0):{exec:function(){return null}}}}r(e)}function s(e,t,a,o){function i(e,n){for(var t=0;t";return o+=e+'">',o+n+i}function d(){if(!w.k)return n(y);var e="",t=0;w.lR.lastIndex=0;for(var r=w.lR.exec(y);r;){e+=n(y.substr(t,r.index-t));var a=g(w,r);a?(B+=a[1],e+=p(a[0],n(r[0]))):e+=n(r[0]),t=w.lR.lastIndex,r=w.lR.exec(y)}return e+n(y.substr(t))}function h(){if(w.sL&&!R[w.sL])return n(y);var e=w.sL?s(w.sL,y,!0,L[w.sL]):l(y);return w.r>0&&(B+=e.r),"continuous"==w.subLanguageMode&&(L[w.sL]=e.top),p(e.language,e.value,!1,!0)}function v(){return void 0!==w.sL?h():d()}function b(e,t){var r=e.cN?p(e.cN,"",!0):"";e.rB?(M+=r,y=""):e.eB?(M+=n(t)+r,y=""):(M+=r,y=t),w=Object.create(e,{parent:{value:w}})}function m(e,t){if(y+=e,void 0===t)return M+=v(),0;var r=i(t,w);if(r)return M+=v(),b(r,t),r.rB?0:t.length;var a=c(w,t);if(a){var o=w;o.rE||o.eE||(y+=t),M+=v();do w.cN&&(M+=""),B+=w.r,w=w.parent;while(w!=a.parent);return o.eE&&(M+=n(t)),y="",a.starts&&b(a.starts,""),o.rE?0:t.length}if(f(t,w))throw new Error('Illegal lexeme "'+t+'" for mode "'+(w.cN||"")+'"');return y+=t,t.length||1}var x=N(e);if(!x)throw new Error('Unknown language: "'+e+'"');u(x);for(var w=o||x,L={},M="",k=w;k!=x;k=k.parent)k.cN&&(M=p(k.cN,"",!0)+M);var y="",B=0;try{for(var C,j,I=0;;){if(w.t.lastIndex=I,C=w.t.exec(t),!C)break;j=m(t.substr(I,C.index-I),C[0]),I=C.index+j}m(t.substr(I));for(var k=w;k.parent;k=k.parent)k.cN&&(M+="");return{r:B,value:M,language:e,top:w}}catch(A){if(-1!=A.message.indexOf("Illegal"))return{r:0,value:n(t)};throw A}}function l(e,t){t=t||E.languages||Object.keys(R);var r={r:0,value:n(e)},a=r;return t.forEach(function(n){if(N(n)){var t=s(n,e,!1);t.language=n,t.r>a.r&&(a=t),t.r>r.r&&(a=r,r=t)}}),a.language&&(r.second_best=a),r}function f(e){return E.tabReplace&&(e=e.replace(/^((<[^>]+>|\t)+)/gm,function(e,n){return n.replace(/\t/g,E.tabReplace)})),E.useBR&&(e=e.replace(/\n/g,"
")),e}function g(e,n,t){var r=n?x[n]:t,a=[e.trim()];return e.match(/(\s|^)hljs(\s|$)/)||a.push("hljs"),r&&a.push(r),a.join(" ").trim()}function p(e){var n=a(e);if(!/no(-?)highlight/.test(n)){var t;E.useBR?(t=document.createElementNS("http://www.w3.org/1999/xhtml","div"),t.innerHTML=e.innerHTML.replace(/\n/g,"").replace(//g,"\n")):t=e;var r=t.textContent,o=n?s(n,r,!0):l(r),u=i(t);if(u.length){var p=document.createElementNS("http://www.w3.org/1999/xhtml","div");p.innerHTML=o.value,o.value=c(u,i(p),r)}o.value=f(o.value),e.innerHTML=o.value,e.className=g(e.className,n,o.language),e.result={language:o.language,re:o.r},o.second_best&&(e.second_best={language:o.second_best.language,re:o.second_best.r})}}function d(e){E=o(E,e)}function h(){if(!h.called){h.called=!0;var e=document.querySelectorAll("pre code");Array.prototype.forEach.call(e,p)}}function v(){addEventListener("DOMContentLoaded",h,!1),addEventListener("load",h,!1)}function b(n,t){var r=R[n]=t(e);r.aliases&&r.aliases.forEach(function(e){x[e]=n})}function m(){return Object.keys(R)}function N(e){return R[e]||R[x[e]]}var E={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0},R={},x={};return e.highlight=s,e.highlightAuto=l,e.fixMarkup=f,e.highlightBlock=p,e.configure=d,e.initHighlighting=h,e.initHighlightingOnLoad=v,e.registerLanguage=b,e.listLanguages=m,e.getLanguage=N,e.inherit=o,e.IR="[a-zA-Z][a-zA-Z0-9_]*",e.UIR="[a-zA-Z_][a-zA-Z0-9_]*",e.NR="\\b\\d+(\\.\\d+)?",e.CNR="(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",e.BNR="\\b(0b[01]+)",e.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",e.BE={b:"\\\\[\\s\\S]",r:0},e.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[e.BE]},e.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[e.BE]},e.PWM={b:/\b(a|an|the|are|I|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such)\b/},e.CLCM={cN:"comment",b:"//",e:"$",c:[e.PWM]},e.CBCM={cN:"comment",b:"/\\*",e:"\\*/",c:[e.PWM]},e.HCM={cN:"comment",b:"#",e:"$",c:[e.PWM]},e.NM={cN:"number",b:e.NR,r:0},e.CNM={cN:"number",b:e.CNR,r:0},e.BNM={cN:"number",b:e.BNR,r:0},e.CSSNM={cN:"number",b:e.NR+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",r:0},e.RM={cN:"regexp",b:/\//,e:/\/[gimuy]*/,i:/\n/,c:[e.BE,{b:/\[/,e:/\]/,r:0,c:[e.BE]}]},e.TM={cN:"title",b:e.IR,r:0},e.UTM={cN:"title",b:e.UIR,r:0},e});hljs.registerLanguage("glsl",function(e){return{k:{keyword:"atomic_uint attribute bool break bvec2 bvec3 bvec4 case centroid coherent const continue default discard dmat2 dmat2x2 dmat2x3 dmat2x4 dmat3 dmat3x2 dmat3x3 dmat3x4 dmat4 dmat4x2 dmat4x3 dmat4x4 do double dvec2 dvec3 dvec4 else flat float for highp if iimage1D iimage1DArray iimage2D iimage2DArray iimage2DMS iimage2DMSArray iimage2DRect iimage3D iimageBuffer iimageCube iimageCubeArray image1D image1DArray image2D image2DArray image2DMS image2DMSArray image2DRect image3D imageBuffer imageCube imageCubeArray in inout int invariant isampler1D isampler1DArray isampler2D isampler2DArray isampler2DMS isampler2DMSArray isampler2DRect isampler3D isamplerBuffer isamplerCube isamplerCubeArray ivec2 ivec3 ivec4 layout lowp mat2 mat2x2 mat2x3 mat2x4 mat3 mat3x2 mat3x3 mat3x4 mat4 mat4x2 mat4x3 mat4x4 mediump noperspective out patch precision readonly restrict return sample sampler1D sampler1DArray sampler1DArrayShadow sampler1DShadow sampler2D sampler2DArray sampler2DArrayShadow sampler2DMS sampler2DMSArray sampler2DRect sampler2DRectShadow sampler2DShadow sampler3D samplerBuffer samplerCube samplerCubeArray samplerCubeArrayShadow samplerCubeShadow smooth struct subroutine switch uimage1D uimage1DArray uimage2D uimage2DArray uimage2DMS uimage2DMSArray uimage2DRect uimage3D uimageBuffer uimageCube uimageCubeArray uint uniform usampler1D usampler1DArray usampler2D usampler2DArray usampler2DMS usampler2DMSArray usampler2DRect usampler3D usamplerBuffer usamplerCube usamplerCubeArray uvec2 uvec3 uvec4 varying vec2 vec3 vec4 void volatile while writeonly",built_in:"gl_BackColor gl_BackLightModelProduct gl_BackLightProduct gl_BackMaterial gl_BackSecondaryColor gl_ClipDistance gl_ClipPlane gl_ClipVertex gl_Color gl_DepthRange gl_EyePlaneQ gl_EyePlaneR gl_EyePlaneS gl_EyePlaneT gl_Fog gl_FogCoord gl_FogFragCoord gl_FragColor gl_FragCoord gl_FragData gl_FragDepth gl_FrontColor gl_FrontFacing gl_FrontLightModelProduct gl_FrontLightProduct gl_FrontMaterial gl_FrontSecondaryColor gl_InstanceID gl_InvocationID gl_Layer gl_LightModel gl_LightSource gl_MaxAtomicCounterBindings gl_MaxAtomicCounterBufferSize gl_MaxClipDistances gl_MaxClipPlanes gl_MaxCombinedAtomicCounterBuffers gl_MaxCombinedAtomicCounters gl_MaxCombinedImageUniforms gl_MaxCombinedImageUnitsAndFragmentOutputs gl_MaxCombinedTextureImageUnits gl_MaxDrawBuffers gl_MaxFragmentAtomicCounterBuffers gl_MaxFragmentAtomicCounters gl_MaxFragmentImageUniforms gl_MaxFragmentInputComponents gl_MaxFragmentUniformComponents gl_MaxFragmentUniformVectors gl_MaxGeometryAtomicCounterBuffers gl_MaxGeometryAtomicCounters gl_MaxGeometryImageUniforms gl_MaxGeometryInputComponents gl_MaxGeometryOutputComponents gl_MaxGeometryOutputVertices gl_MaxGeometryTextureImageUnits gl_MaxGeometryTotalOutputComponents gl_MaxGeometryUniformComponents gl_MaxGeometryVaryingComponents gl_MaxImageSamples gl_MaxImageUnits gl_MaxLights gl_MaxPatchVertices gl_MaxProgramTexelOffset gl_MaxTessControlAtomicCounterBuffers gl_MaxTessControlAtomicCounters gl_MaxTessControlImageUniforms gl_MaxTessControlInputComponents gl_MaxTessControlOutputComponents gl_MaxTessControlTextureImageUnits gl_MaxTessControlTotalOutputComponents gl_MaxTessControlUniformComponents gl_MaxTessEvaluationAtomicCounterBuffers gl_MaxTessEvaluationAtomicCounters gl_MaxTessEvaluationImageUniforms gl_MaxTessEvaluationInputComponents gl_MaxTessEvaluationOutputComponents gl_MaxTessEvaluationTextureImageUnits gl_MaxTessEvaluationUniformComponents gl_MaxTessGenLevel gl_MaxTessPatchComponents gl_MaxTextureCoords gl_MaxTextureImageUnits gl_MaxTextureUnits gl_MaxVaryingComponents gl_MaxVaryingFloats gl_MaxVaryingVectors gl_MaxVertexAtomicCounterBuffers gl_MaxVertexAtomicCounters gl_MaxVertexAttribs gl_MaxVertexImageUniforms gl_MaxVertexOutputComponents gl_MaxVertexTextureImageUnits gl_MaxVertexUniformComponents gl_MaxVertexUniformVectors gl_MaxViewports gl_MinProgramTexelOffsetgl_ModelViewMatrix gl_ModelViewMatrixInverse gl_ModelViewMatrixInverseTranspose gl_ModelViewMatrixTranspose gl_ModelViewProjectionMatrix gl_ModelViewProjectionMatrixInverse gl_ModelViewProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixTranspose gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_Normal gl_NormalMatrix gl_NormalScale gl_ObjectPlaneQ gl_ObjectPlaneR gl_ObjectPlaneS gl_ObjectPlaneT gl_PatchVerticesIn gl_PerVertex gl_Point gl_PointCoord gl_PointSize gl_Position gl_PrimitiveID gl_PrimitiveIDIn gl_ProjectionMatrix gl_ProjectionMatrixInverse gl_ProjectionMatrixInverseTranspose gl_ProjectionMatrixTranspose gl_SampleID gl_SampleMask gl_SampleMaskIn gl_SamplePosition gl_SecondaryColor gl_TessCoord gl_TessLevelInner gl_TessLevelOuter gl_TexCoord gl_TextureEnvColor gl_TextureMatrixInverseTranspose gl_TextureMatrixTranspose gl_Vertex gl_VertexID gl_ViewportIndex gl_in gl_out EmitStreamVertex EmitVertex EndPrimitive EndStreamPrimitive abs acos acosh all any asin asinh atan atanh atomicCounter atomicCounterDecrement atomicCounterIncrement barrier bitCount bitfieldExtract bitfieldInsert bitfieldReverse ceil clamp cos cosh cross dFdx dFdy degrees determinant distance dot equal exp exp2 faceforward findLSB findMSB floatBitsToInt floatBitsToUint floor fma fract frexp ftransform fwidth greaterThan greaterThanEqual imageAtomicAdd imageAtomicAnd imageAtomicCompSwap imageAtomicExchange imageAtomicMax imageAtomicMin imageAtomicOr imageAtomicXor imageLoad imageStore imulExtended intBitsToFloat interpolateAtCentroid interpolateAtOffset interpolateAtSample inverse inversesqrt isinf isnan ldexp length lessThan lessThanEqual log log2 matrixCompMult max memoryBarrier min mix mod modf noise1 noise2 noise3 noise4 normalize not notEqual outerProduct packDouble2x32 packHalf2x16 packSnorm2x16 packSnorm4x8 packUnorm2x16 packUnorm4x8 pow radians reflect refract round roundEven shadow1D shadow1DLod shadow1DProj shadow1DProjLod shadow2D shadow2DLod shadow2DProj shadow2DProjLod sign sin sinh smoothstep sqrt step tan tanh texelFetch texelFetchOffset texture texture1D texture1DLod texture1DProj texture1DProjLod texture2D texture2DLod texture2DProj texture2DProjLod texture3D texture3DLod texture3DProj texture3DProjLod textureCube textureCubeLod textureGather textureGatherOffset textureGatherOffsets textureGrad textureGradOffset textureLod textureLodOffset textureOffset textureProj textureProjGrad textureProjGradOffset textureProjLod textureProjLodOffset textureProjOffset textureQueryLod textureSize transpose trunc uaddCarry uintBitsToFloat umulExtended unpackDouble2x32 unpackHalf2x16 unpackSnorm2x16 unpackSnorm4x8 unpackUnorm2x16 unpackUnorm4x8 usubBorrow gl_TextureMatrix gl_TextureMatrixInverse",literal:"true false"},i:'"',c:[e.CLCM,e.CBCM,e.CNM,{cN:"preprocessor",b:"#",e:"$"}]}});hljs.registerLanguage("coffeescript",function(e){var c={keyword:"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger super then unless until loop of by when and or is isnt not",literal:"true false null undefined yes no on off",reserved:"case default function var void with const let enum export import native __hasProp __extends __slice __bind __indexOf",built_in:"npm require console print module global window document"},n="[A-Za-z$_][0-9A-Za-z$_]*",t={cN:"subst",b:/#\{/,e:/}/,k:c},r=[e.BNM,e.inherit(e.CNM,{starts:{e:"(\\s*/)?",r:0}}),{cN:"string",v:[{b:/'''/,e:/'''/,c:[e.BE]},{b:/'/,e:/'/,c:[e.BE]},{b:/"""/,e:/"""/,c:[e.BE,t]},{b:/"/,e:/"/,c:[e.BE,t]}]},{cN:"regexp",v:[{b:"///",e:"///",c:[t,e.HCM]},{b:"//[gim]*",r:0},{b:/\/(?![ *])(\\\/|.)*?\/[gim]*(?=\W|$)/}]},{cN:"property",b:"@"+n},{b:"`",e:"`",eB:!0,eE:!0,sL:"javascript"}];t.c=r;var i=e.inherit(e.TM,{b:n}),s="(\\(.*\\))?\\s*\\B[-=]>",o={cN:"params",b:"\\([^\\(]",rB:!0,c:[{b:/\(/,e:/\)/,k:c,c:["self"].concat(r)}]};return{aliases:["coffee","cson","iced"],k:c,i:/\/\*/,c:r.concat([{cN:"comment",b:"###",e:"###",c:[e.PWM]},e.HCM,{cN:"function",b:"^\\s*"+n+"\\s*=\\s*"+s,e:"[-=]>",rB:!0,c:[i,o]},{b:/[:\(,=]\s*/,r:0,c:[{cN:"function",b:s,e:"[-=]>",rB:!0,c:[o]}]},{cN:"class",bK:"class",e:"$",i:/[:="\[\]]/,c:[{bK:"extends",eW:!0,i:/[:="\[\]]/,c:[i]},i]},{cN:"attribute",b:n+":",e:":",rB:!0,rE:!0,r:0}])}}); -------------------------------------------------------------------------------- /readme.MD: -------------------------------------------------------------------------------- 1 | Node-Based Shader Editor 2 | ========= 3 | 4 | Node based Shader Editor in webGL done as my final degree's project, a demo can be checked online on http://victhorlopez.github.io/editor/. 5 | Many thanks to my tutor, Javier Agenjo (https://github.com/jagenjo) who advised me throughout the entire project and also provided me with very useful libraries to develop this project. 6 | 7 | * Litegl.js(https://github.com/jagenjo/litegl.js) is a library that wraps WebGL to make it more user-friendly. 8 | * Litegraph.js(https://github.com/jagenjo/litegraph.js) is the core library of the project used to create graphs and nodes visually. 9 | 10 | Other libraries 11 | ----- 12 | The project includes some other libraries to fulfill other requirements 13 | 14 | For the UI: 15 | * Dat.gui (https://code.google.com/p/dat-gui/) 16 | * w2ui (http://w2ui.com/web/) 17 | For the icons: 18 | * Font-awesome: (http://fortawesome.github.io/Font-Awesome/) 19 | General utility: 20 | * Jquery: (https://jquery.com/). 21 | 22 | Assets 23 | ----- 24 | The assets for the project all are extracted from the following links. 25 | 26 | * http://artsaucebyjesse.blogspot.com.es/2015/02/zbrush-tiling-seamless-texture.html 27 | * http://graphics.cs.williams.edu/data/meshes.xml 28 | * https://forums.epicgames.com/threads/506748-My-skies-and-and-cliff-textures-(large-images 29 | * http://www.humus.name/index.php?page=Textures 30 | * http://irrlicht.sourceforge.net/forum//viewtopic.php?t=21057 31 | * http://unigine.com/articles/130605-procedural-content-generation/ -------------------------------------------------------------------------------- /readme.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Node-Based Shader Editor

4 | 5 | 6 | Node based Shader Editor in webGL done as my final degree's project, a demo can be checked online on http://victhorlopez.github.io/editor/. 7 | Many thanks to my tutor, Javier Agenjo (https://github.com/jagenjo) who advised me throughout the entire project and also provided me with very useful libraries to develop this project. 8 |
    9 |
  • Litegl.js(https://github.com/jagenjo/litegl.js) is a library that wraps WebGL to make it more user-friendly.
  • 10 |
  • Litegraph.js(https://github.com/jagenjo/litegraph.js) is the core library of the project used to create graphs and nodes visually.
  • 11 |
12 | 13 |

Other libraries

14 | 15 | The project includes some other libraries to fulfill other requirements 16 | 17 | For the UI: 18 |
    19 |
  • Dat.gui (https://code.google.com/p/dat-gui/)
  • 20 |
  • w2ui (http://w2ui.com/web/)
  • 21 |
22 | For the icons: 23 |
    24 |
  • Font-awesome: (http://fortawesome.github.io/Font-Awesome/)
  • 25 |
26 | General utility: 27 |
    28 |
  • Jquery: (https://jquery.com/).
  • 29 |
30 |

Assets

31 | 32 | The assets for the project all are extracted from the following links. 33 |
    34 |
  • http://artsaucebyjesse.blogspot.com.es/2015/02/zbrush-tiling-seamless-texture.html
  • 35 |
  • http://graphics.cs.williams.edu/data/meshes.xml
  • 36 |
  • https://forums.epicgames.com/threads/506748-My-skies-and-and-cliff-textures-(large-images
  • 37 |
  • http://www.humus.name/index.php?page=Textures
  • 38 |
  • http://irrlicht.sourceforge.net/forum//viewtopic.php?t=21057
  • 39 |
  • http://unigine.com/articles/130605-procedural-content-generation/
  • 40 |
41 |
42 |
--------------------------------------------------------------------------------