@pmndrs/vanilla
Advanced tools
Comparing version
@@ -1,1 +0,1 @@ | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./pcss.cjs.js"),r=require("./Caustics.cjs.js"),s=require("./shaderMaterial.cjs.js"),t=require("./AccumulativeShadows.cjs.js"),a=require("./Cloud.cjs.js"),i=require("./useFBO.cjs.js"),o=require("./SpriteAnimator.cjs.js"),l=require("./Outlines.cjs.js"),p=require("./Billboard.cjs.js"),u=require("./Splat.cjs.js"),c=require("./Grid.cjs.js"),j=require("./MeshPortalMaterial.cjs.js");require("three"),require("three/examples/jsm/postprocessing/Pass.js"),require("../materials/MeshDiscardMaterial.cjs.js"),require("../helpers/deprecated.cjs.js"),require("three/examples/jsm/utils/BufferGeometryUtils.js"),require("../helpers/constants.cjs.js"),require("three-stdlib"),exports.pcss=e.pcss,exports.Caustics=r.Caustics,exports.CausticsMaterial=r.CausticsMaterial,exports.CausticsProjectionMaterial=r.CausticsProjectionMaterial,exports.createCausticsUpdate=r.createCausticsUpdate,exports.shaderMaterial=s.shaderMaterial,exports.ProgressiveLightMap=t.ProgressiveLightMap,exports.SoftShadowMaterial=t.SoftShadowMaterial,exports.CLOUD_URL=a.CLOUD_URL,exports.Cloud=a.Cloud,exports.Clouds=a.Clouds,exports.useFBO=i.useFBO,exports.SpriteAnimator=o.SpriteAnimator,exports.Outlines=l.Outlines,exports.Billboard=p.Billboard,exports.Splat=u.Splat,exports.SplatLoader=u.SplatLoader,exports.Grid=c.Grid,exports.MeshPortalMaterial=j.MeshPortalMaterial,exports.meshPortalMaterialApplySDF=j.meshPortalMaterialApplySDF; | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./pcss.cjs.js"),s=require("./Caustics.cjs.js"),r=require("./shaderMaterial.cjs.js"),t=require("./AccumulativeShadows.cjs.js"),a=require("./Cloud.cjs.js"),i=require("./useFBO.cjs.js"),o=require("./SpriteAnimator.cjs.js"),l=require("./Outlines.cjs.js"),p=require("./Billboard.cjs.js"),u=require("./Splat.cjs.js"),c=require("./Grid.cjs.js"),j=require("./MeshPortalMaterial.cjs.js");require("three"),require("three/examples/jsm/postprocessing/Pass.js"),require("../materials/MeshDiscardMaterial.cjs.js"),require("../helpers/deprecated.cjs.js"),require("three/examples/jsm/utils/BufferGeometryUtils.js"),require("../helpers/constants.cjs.js"),require("../helpers/Pass.cjs.js"),exports.pcss=e.pcss,exports.Caustics=s.Caustics,exports.CausticsMaterial=s.CausticsMaterial,exports.CausticsProjectionMaterial=s.CausticsProjectionMaterial,exports.createCausticsUpdate=s.createCausticsUpdate,exports.shaderMaterial=r.shaderMaterial,exports.ProgressiveLightMap=t.ProgressiveLightMap,exports.SoftShadowMaterial=t.SoftShadowMaterial,exports.CLOUD_URL=a.CLOUD_URL,exports.Cloud=a.Cloud,exports.Clouds=a.Clouds,exports.useFBO=i.useFBO,exports.SpriteAnimator=o.SpriteAnimator,exports.Outlines=l.Outlines,exports.Billboard=p.Billboard,exports.Splat=u.Splat,exports.SplatLoader=u.SplatLoader,exports.Grid=c.Grid,exports.MeshPortalMaterial=j.MeshPortalMaterial,exports.meshPortalMaterialApplySDF=j.meshPortalMaterialApplySDF; |
@@ -19,2 +19,2 @@ export { pcss } from './pcss.js'; | ||
import '../helpers/constants.js'; | ||
import 'three-stdlib'; | ||
import '../helpers/Pass.js'; |
@@ -1,1 +0,1 @@ | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),r=require("./shaderMaterial.cjs.js"),t=require("../helpers/constants.cjs.js"),n=require("three-stdlib");function a(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var i=a(e);const l=r.shaderMaterial({blur:0,map:null,sdf:null,size:0,resolution:new i.Vector2},"varying vec2 vUv;\n void main() {\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n vUv = uv;\n }",`uniform sampler2D sdf;\n uniform sampler2D map;\n uniform float blur;\n uniform float size;\n uniform float time;\n uniform vec2 resolution;\n varying vec2 vUv;\n #include <packing>\n void main() {\n vec2 uv = gl_FragCoord.xy / resolution.xy;\n vec4 t = texture2D(map, uv);\n float k = blur;\n float d = texture2D(sdf, vUv).r/size;\n float alpha = 1.0 - smoothstep(0.0, 1.0, clamp(d/k + 1.0, 0.0, 1.0));\n gl_FragColor = vec4(t.rgb, blur == 0.0 ? t.a : t.a * alpha);\n #include <tonemapping_fragment>\n #include <${t.version>=154?"colorspace_fragment":"encodings_fragment"}>\n }`);exports.MeshPortalMaterial=l,exports.meshPortalMaterialApplySDF=(e,r,t)=>{const a=new i.WebGLRenderTarget(r,r),l=e.material,o=new i.Mesh(e.geometry,new i.MeshBasicMaterial),s=(new i.Box3).setFromBufferAttribute(o.geometry.attributes.position),v=new i.OrthographicCamera(s.min.x*(1+2/r),s.max.x*(1+2/r),s.max.y*(1+2/r),s.min.y*(1+2/r),.1,1e3);v.position.set(0,0,1),v.lookAt(0,0,0),t.setRenderTarget(a),t.render(o,v);const u=((e,r,t)=>{const a=new i.WebGLRenderTarget(e,r,{minFilter:i.LinearMipmapLinearFilter,magFilter:i.LinearFilter,type:i.FloatType,format:i.RedFormat,generateMipmaps:!0}),l=new i.WebGLRenderTarget(e,r,{minFilter:i.NearestFilter,magFilter:i.NearestFilter}),o=new i.WebGLRenderTarget(e,r,{minFilter:i.NearestFilter,magFilter:i.NearestFilter}),s=new i.WebGLRenderTarget(e,r,{minFilter:i.NearestFilter,magFilter:i.NearestFilter}),v=new i.WebGLRenderTarget(e,r,{minFilter:i.NearestFilter,magFilter:i.NearestFilter}),u=new i.WebGLRenderTarget(e,r,{minFilter:i.NearestFilter,magFilter:i.NearestFilter,type:i.FloatType,format:i.RedFormat}),m=new i.WebGLRenderTarget(e,r,{minFilter:i.NearestFilter,magFilter:i.NearestFilter,type:i.FloatType,format:i.RedFormat}),d=new n.FullScreenQuad(new i.ShaderMaterial({uniforms:{tex:{value:null}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"\n uniform sampler2D tex;\n varying vec2 vUv;\n #include <packing>\n void main() {\n gl_FragColor = pack2HalfToRGBA(vUv * (round(texture2D(tex, vUv).x)));\n }"})),f=new n.FullScreenQuad(new i.ShaderMaterial({uniforms:{tex:{value:null}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"\n uniform sampler2D tex;\n varying vec2 vUv;\n #include <packing>\n void main() {\n gl_FragColor = pack2HalfToRGBA(vUv * (1.0 - round(texture2D(tex, vUv).x)));\n }"})),c=new n.FullScreenQuad(new i.ShaderMaterial({uniforms:{tex:{value:null},offset:{value:0},level:{value:0},maxSteps:{value:0}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:`\n varying vec2 vUv;\n uniform sampler2D tex;\n uniform float offset;\n uniform float level;\n uniform float maxSteps;\n #include <packing>\n void main() {\n float closestDist = 9999999.9;\n vec2 closestPos = vec2(0.0);\n for (float x = -1.0; x <= 1.0; x += 1.0) {\n for (float y = -1.0; y <= 1.0; y += 1.0) {\n vec2 voffset = vUv;\n voffset += vec2(x, y) * vec2(${1/e}, ${1/r}) * offset;\n vec2 pos = unpackRGBATo2Half(texture2D(tex, voffset));\n float dist = distance(pos.xy, vUv);\n if(pos.x != 0.0 && pos.y != 0.0 && dist < closestDist) {\n closestDist = dist;\n closestPos = pos;\n }\n }\n }\n gl_FragColor = pack2HalfToRGBA(closestPos);\n }`})),g=new n.FullScreenQuad(new i.ShaderMaterial({uniforms:{tex:{value:null},size:{value:new i.Vector2(e,r)}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"\n varying vec2 vUv;\n uniform sampler2D tex;\n uniform vec2 size;\n #include <packing>\n void main() {\n gl_FragColor = vec4(distance(size * unpackRGBATo2Half(texture2D(tex, vUv)), size * vUv), 0.0, 0.0, 0.0);\n }"})),x=new n.FullScreenQuad(new i.ShaderMaterial({uniforms:{inside:{value:m.texture},outside:{value:u.texture},tex:{value:null}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"\n varying vec2 vUv;\n uniform sampler2D inside;\n uniform sampler2D outside;\n uniform sampler2D tex;\n #include <packing>\n void main() {\n float i = texture2D(inside, vUv).x;\n float o =texture2D(outside, vUv).x;\n if (texture2D(tex, vUv).x == 0.0) {\n gl_FragColor = vec4(o, 0.0, 0.0, 0.0);\n } else {\n gl_FragColor = vec4(-i, 0.0, 0.0, 0.0);\n }\n }"}));return n=>{const p=a;n.minFilter=i.NearestFilter,n.magFilter=i.NearestFilter,d.material.uniforms.tex.value=n,t.setRenderTarget(l),d.render(t);const F=Math.ceil(Math.log(Math.max(e,r))/Math.log(2));let h=l,y=null;for(let e=0;e<F;e++){const r=Math.pow(2,F-e-1);y=h===l?s:l,c.material.uniforms.level.value=e,c.material.uniforms.maxSteps.value=F,c.material.uniforms.offset.value=r,c.material.uniforms.tex.value=h.texture,t.setRenderTarget(y),c.render(t),h=y}t.setRenderTarget(u),g.material.uniforms.tex.value=y.texture,g.render(t),f.material.uniforms.tex.value=n,t.setRenderTarget(o),f.render(t),h=o;for(let e=0;e<F;e++){const r=Math.pow(2,F-e-1);y=h===o?v:o,c.material.uniforms.level.value=e,c.material.uniforms.maxSteps.value=F,c.material.uniforms.offset.value=r,c.material.uniforms.tex.value=h.texture,t.setRenderTarget(y),c.render(t),h=y}return t.setRenderTarget(m),g.material.uniforms.tex.value=y.texture,g.render(t),t.setRenderTarget(p),x.material.uniforms.tex.value=n,x.render(t),t.setRenderTarget(null),p}})(r,r,t)(a.texture),m=new Float32Array(r*r);t.readRenderTargetPixels(u,0,0,r,r,m);let d=1/0;for(let e=0;e<m.length;e++)m[e]<d&&(d=m[e]);d=-d,l.size=d,l.sdf=u.texture,t.setRenderTarget(null)}; | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),r=require("./shaderMaterial.cjs.js"),t=require("../helpers/constants.cjs.js"),n=require("../helpers/Pass.cjs.js");function a(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var i=a(e);const l=r.shaderMaterial({blur:0,map:null,sdf:null,size:0,resolution:new i.Vector2},"varying vec2 vUv;\n void main() {\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n vUv = uv;\n }",`uniform sampler2D sdf;\n uniform sampler2D map;\n uniform float blur;\n uniform float size;\n uniform float time;\n uniform vec2 resolution;\n varying vec2 vUv;\n #include <packing>\n void main() {\n vec2 uv = gl_FragCoord.xy / resolution.xy;\n vec4 t = texture2D(map, uv);\n float k = blur;\n float d = texture2D(sdf, vUv).r/size;\n float alpha = 1.0 - smoothstep(0.0, 1.0, clamp(d/k + 1.0, 0.0, 1.0));\n gl_FragColor = vec4(t.rgb, blur == 0.0 ? t.a : t.a * alpha);\n #include <tonemapping_fragment>\n #include <${t.version>=154?"colorspace_fragment":"encodings_fragment"}>\n }`);exports.MeshPortalMaterial=l,exports.meshPortalMaterialApplySDF=(e,r,t)=>{const a=new i.WebGLRenderTarget(r,r),l=e.material,o=new i.Mesh(e.geometry,new i.MeshBasicMaterial),s=(new i.Box3).setFromBufferAttribute(o.geometry.attributes.position),v=new i.OrthographicCamera(s.min.x*(1+2/r),s.max.x*(1+2/r),s.max.y*(1+2/r),s.min.y*(1+2/r),.1,1e3);v.position.set(0,0,1),v.lookAt(0,0,0),t.setRenderTarget(a),t.render(o,v);const u=((e,r,t)=>{const a=new i.WebGLRenderTarget(e,r,{minFilter:i.LinearMipmapLinearFilter,magFilter:i.LinearFilter,type:i.FloatType,format:i.RedFormat,generateMipmaps:!0}),l=new i.WebGLRenderTarget(e,r,{minFilter:i.NearestFilter,magFilter:i.NearestFilter}),o=new i.WebGLRenderTarget(e,r,{minFilter:i.NearestFilter,magFilter:i.NearestFilter}),s=new i.WebGLRenderTarget(e,r,{minFilter:i.NearestFilter,magFilter:i.NearestFilter}),v=new i.WebGLRenderTarget(e,r,{minFilter:i.NearestFilter,magFilter:i.NearestFilter}),u=new i.WebGLRenderTarget(e,r,{minFilter:i.NearestFilter,magFilter:i.NearestFilter,type:i.FloatType,format:i.RedFormat}),m=new i.WebGLRenderTarget(e,r,{minFilter:i.NearestFilter,magFilter:i.NearestFilter,type:i.FloatType,format:i.RedFormat}),d=new n.FullScreenQuad(new i.ShaderMaterial({uniforms:{tex:{value:null}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"\n uniform sampler2D tex;\n varying vec2 vUv;\n #include <packing>\n void main() {\n gl_FragColor = pack2HalfToRGBA(vUv * (round(texture2D(tex, vUv).x)));\n }"})),f=new n.FullScreenQuad(new i.ShaderMaterial({uniforms:{tex:{value:null}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"\n uniform sampler2D tex;\n varying vec2 vUv;\n #include <packing>\n void main() {\n gl_FragColor = pack2HalfToRGBA(vUv * (1.0 - round(texture2D(tex, vUv).x)));\n }"})),c=new n.FullScreenQuad(new i.ShaderMaterial({uniforms:{tex:{value:null},offset:{value:0},level:{value:0},maxSteps:{value:0}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:`\n varying vec2 vUv;\n uniform sampler2D tex;\n uniform float offset;\n uniform float level;\n uniform float maxSteps;\n #include <packing>\n void main() {\n float closestDist = 9999999.9;\n vec2 closestPos = vec2(0.0);\n for (float x = -1.0; x <= 1.0; x += 1.0) {\n for (float y = -1.0; y <= 1.0; y += 1.0) {\n vec2 voffset = vUv;\n voffset += vec2(x, y) * vec2(${1/e}, ${1/r}) * offset;\n vec2 pos = unpackRGBATo2Half(texture2D(tex, voffset));\n float dist = distance(pos.xy, vUv);\n if(pos.x != 0.0 && pos.y != 0.0 && dist < closestDist) {\n closestDist = dist;\n closestPos = pos;\n }\n }\n }\n gl_FragColor = pack2HalfToRGBA(closestPos);\n }`})),g=new n.FullScreenQuad(new i.ShaderMaterial({uniforms:{tex:{value:null},size:{value:new i.Vector2(e,r)}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"\n varying vec2 vUv;\n uniform sampler2D tex;\n uniform vec2 size;\n #include <packing>\n void main() {\n gl_FragColor = vec4(distance(size * unpackRGBATo2Half(texture2D(tex, vUv)), size * vUv), 0.0, 0.0, 0.0);\n }"})),x=new n.FullScreenQuad(new i.ShaderMaterial({uniforms:{inside:{value:m.texture},outside:{value:u.texture},tex:{value:null}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"\n varying vec2 vUv;\n uniform sampler2D inside;\n uniform sampler2D outside;\n uniform sampler2D tex;\n #include <packing>\n void main() {\n float i = texture2D(inside, vUv).x;\n float o =texture2D(outside, vUv).x;\n if (texture2D(tex, vUv).x == 0.0) {\n gl_FragColor = vec4(o, 0.0, 0.0, 0.0);\n } else {\n gl_FragColor = vec4(-i, 0.0, 0.0, 0.0);\n }\n }"}));return n=>{const p=a;n.minFilter=i.NearestFilter,n.magFilter=i.NearestFilter,d.material.uniforms.tex.value=n,t.setRenderTarget(l),d.render(t);const F=Math.ceil(Math.log(Math.max(e,r))/Math.log(2));let h=l,y=null;for(let e=0;e<F;e++){const r=Math.pow(2,F-e-1);y=h===l?s:l,c.material.uniforms.level.value=e,c.material.uniforms.maxSteps.value=F,c.material.uniforms.offset.value=r,c.material.uniforms.tex.value=h.texture,t.setRenderTarget(y),c.render(t),h=y}t.setRenderTarget(u),g.material.uniforms.tex.value=y.texture,g.render(t),f.material.uniforms.tex.value=n,t.setRenderTarget(o),f.render(t),h=o;for(let e=0;e<F;e++){const r=Math.pow(2,F-e-1);y=h===o?v:o,c.material.uniforms.level.value=e,c.material.uniforms.maxSteps.value=F,c.material.uniforms.offset.value=r,c.material.uniforms.tex.value=h.texture,t.setRenderTarget(y),c.render(t),h=y}return t.setRenderTarget(m),g.material.uniforms.tex.value=y.texture,g.render(t),t.setRenderTarget(p),x.material.uniforms.tex.value=n,x.render(t),t.setRenderTarget(null),p}})(r,r,t)(a.texture),m=new Float32Array(r*r);t.readRenderTargetPixels(u,0,0,r,r,m);let d=1/0;for(let e=0;e<m.length;e++)m[e]<d&&(d=m[e]);d=-d,l.size=d,l.sdf=u.texture,t.setRenderTarget(null)}; |
import * as THREE from 'three'; | ||
import { shaderMaterial } from './shaderMaterial.js'; | ||
import { version } from '../helpers/constants.js'; | ||
import { FullScreenQuad } from 'three-stdlib'; | ||
import { FullScreenQuad } from '../helpers/Pass.js'; | ||
@@ -6,0 +6,0 @@ const MeshPortalMaterial = shaderMaterial({ |
@@ -1,1 +0,1 @@ | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./shaderMaterial.cjs.js"),n=require("three"),t=require("three/examples/jsm/utils/BufferGeometryUtils.js");function r(e){if(e&&e.__esModule)return e;var n=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var r=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,r.get?r:{enumerable:!0,get:function(){return e[t]}})}})),n.default=e,Object.freeze(n)}var o=r(n);const i=e.shaderMaterial({screenspace:!1,color:new o.Color("black"),opacity:1,thickness:.05,size:new o.Vector2},"\n #include <common>\n #include <morphtarget_pars_vertex>\n #include <skinning_pars_vertex>\n uniform float thickness;\n uniform float screenspace;\n uniform vec2 size;\n void main() {\n #if defined (USE_SKINNING)\n\t #include <beginnormal_vertex>\n #include <morphnormal_vertex>\n #include <skinbase_vertex>\n #include <skinnormal_vertex>\n #include <defaultnormal_vertex>\n #endif\n #include <begin_vertex>\n\t #include <morphtarget_vertex>\n\t #include <skinning_vertex>\n #include <project_vertex>\n vec4 tNormal = vec4(normal, 0.0);\n vec4 tPosition = vec4(transformed, 1.0);\n #ifdef USE_INSTANCING\n tNormal = instanceMatrix * tNormal;\n tPosition = instanceMatrix * tPosition;\n #endif\n if (screenspace == 0.0) {\n vec3 newPosition = tPosition.xyz + tNormal.xyz * thickness;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(newPosition, 1.0); \n } else {\n vec4 clipPosition = projectionMatrix * modelViewMatrix * tPosition;\n vec4 clipNormal = projectionMatrix * modelViewMatrix * tNormal;\n vec2 offset = normalize(clipNormal.xy) * thickness / size * clipPosition.w * 2.0;\n clipPosition.xy += offset;\n gl_Position = clipPosition;\n }\n }",`\n uniform vec3 color;\n uniform float opacity;\n void main(){\n gl_FragColor = vec4(color, opacity);\n #include <tonemapping_fragment>\n #include <${parseInt(o.REVISION.replace(/\D+/g,""))>=154?"colorspace_fragment":"encodings_fragment"}>\n }`);exports.Outlines=function({color:e=new o.Color("black"),opacity:n=1,transparent:r=!1,screenspace:a=!1,toneMapped:c=!0,polygonOffset:s=!1,polygonOffsetFactor:l=0,renderOrder:p=0,thickness:d=.05,angle:f=Math.PI,gl:u}){const m=new o.Group;let g={color:e,opacity:n,transparent:r,screenspace:a,toneMapped:c,polygonOffset:s,polygonOffsetFactor:l,renderOrder:p,thickness:d,angle:f};function v(e){const n=m.parent;if(m.clear(),n&&n.geometry){let r;const a=new i({side:o.BackSide});n.skeleton?(r=new o.SkinnedMesh,r.material=a,r.bind(n.skeleton,n.bindMatrix),m.add(r)):n.isInstancedMesh?(r=new o.InstancedMesh(n.geometry,a,n.count),r.instanceMatrix=n.instanceMatrix,m.add(r)):(r=new o.Mesh,r.material=a,m.add(r)),r.geometry=e?t.toCreasedNormals(n.geometry,e):n.geometry}}function x(e){g={...g,...e};const n=m.children[0];if(n){const{transparent:e,thickness:t,color:r,opacity:i,screenspace:a,toneMapped:c,polygonOffset:s,polygonOffsetFactor:l,renderOrder:p}=g,d=new o.Vector2;!u&&g.screenspace&&console.warn('Outlines: "screenspace" requires a WebGLRenderer instance to calculate the outline size'),u&&u.getSize(d),Object.assign(n.material,{transparent:e,thickness:t,color:r,opacity:i,size:d,screenspace:a,toneMapped:c,polygonOffset:s,polygonOffsetFactor:l}),void 0!==p&&(n.renderOrder=p)}}return{group:m,updateProps(e){var n;const t=null!==(n=e.angle)&&void 0!==n?n:g.angle;t!==g.angle&&v(t),x(e)},generate(){v(g.angle),x(g)}}}; | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./shaderMaterial.cjs.js"),n=require("three"),t=require("three/examples/jsm/utils/BufferGeometryUtils.js");function r(e){if(e&&e.__esModule)return e;var n=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var r=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,r.get?r:{enumerable:!0,get:function(){return e[t]}})}})),n.default=e,Object.freeze(n)}var o=r(n);const i=e.shaderMaterial({screenspace:!1,color:new o.Color("black"),opacity:1,thickness:.05,size:new o.Vector2},"\n #include <common>\n #include <morphtarget_pars_vertex>\n #include <skinning_pars_vertex>\n uniform float thickness;\n uniform float screenspace;\n uniform vec2 size;\n void main() {\n #if defined (USE_SKINNING)\n\t #include <beginnormal_vertex>\n #include <morphnormal_vertex>\n #include <skinbase_vertex>\n #include <skinnormal_vertex>\n #include <defaultnormal_vertex>\n #endif\n #include <begin_vertex>\n\t #include <morphtarget_vertex>\n\t #include <skinning_vertex>\n #include <project_vertex>\n vec4 tNormal = vec4(normal, 0.0);\n vec4 tPosition = vec4(transformed, 1.0);\n #ifdef USE_INSTANCING\n tNormal = instanceMatrix * tNormal;\n tPosition = instanceMatrix * tPosition;\n #endif\n if (screenspace == 0.0) {\n vec3 newPosition = tPosition.xyz + tNormal.xyz * thickness;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(newPosition, 1.0); \n } else {\n vec4 clipPosition = projectionMatrix * modelViewMatrix * tPosition;\n vec4 clipNormal = projectionMatrix * modelViewMatrix * tNormal;\n vec2 offset = normalize(clipNormal.xy) * thickness / size * clipPosition.w * 2.0;\n clipPosition.xy += offset;\n gl_Position = clipPosition;\n }\n }",`\n uniform vec3 color;\n uniform float opacity;\n void main(){\n gl_FragColor = vec4(color, opacity);\n #include <tonemapping_fragment>\n #include <${parseInt(o.REVISION.replace(/\D+/g,""))>=154?"colorspace_fragment":"encodings_fragment"}>\n }`);exports.Outlines=function({color:e=new o.Color("black"),opacity:n=1,transparent:r=!1,screenspace:a=!1,toneMapped:c=!0,polygonOffset:s=!1,polygonOffsetFactor:l=0,renderOrder:p=0,thickness:d=.05,angle:f=Math.PI,gl:u}={}){const m=new o.Group;let g={color:e,opacity:n,transparent:r,screenspace:a,toneMapped:c,polygonOffset:s,polygonOffsetFactor:l,renderOrder:p,thickness:d,angle:f};function v(e){const n=m.parent;if(m.clear(),n&&n.geometry){let r;const a=new i({side:o.BackSide});n.skeleton?(r=new o.SkinnedMesh,r.material=a,r.bind(n.skeleton,n.bindMatrix),m.add(r)):n.isInstancedMesh?(r=new o.InstancedMesh(n.geometry,a,n.count),r.instanceMatrix=n.instanceMatrix,m.add(r)):(r=new o.Mesh,r.material=a,m.add(r)),r.geometry=e?t.toCreasedNormals(n.geometry,e):n.geometry}}function x(e){g={...g,...e};const n=m.children[0];if(n){const{transparent:e,thickness:t,color:r,opacity:i,screenspace:a,toneMapped:c,polygonOffset:s,polygonOffsetFactor:l,renderOrder:p}=g,d=new o.Vector2;!u&&g.screenspace&&console.warn('Outlines: "screenspace" requires a WebGLRenderer instance to calculate the outline size'),u&&u.getSize(d),Object.assign(n.material,{transparent:e,thickness:t,color:r,opacity:i,size:d,screenspace:a,toneMapped:c,polygonOffset:s,polygonOffsetFactor:l}),void 0!==p&&(n.renderOrder=p)}}return{group:m,updateProps(e){var n;const t=null!==(n=e.angle)&&void 0!==n?n:g.angle;t!==g.angle&&v(t),x(e)},generate(){v(g.angle),x(g)}}}; |
@@ -20,2 +20,2 @@ import * as THREE from 'three'; | ||
}; | ||
export declare function Outlines({ color, opacity, transparent, screenspace, toneMapped, polygonOffset, polygonOffsetFactor, renderOrder, thickness, angle, gl, }: Partial<OutlinesProps>): OutlinesType; | ||
export declare function Outlines({ color, opacity, transparent, screenspace, toneMapped, polygonOffset, polygonOffsetFactor, renderOrder, thickness, angle, gl, }?: Partial<OutlinesProps>): OutlinesType; |
@@ -66,3 +66,3 @@ import { shaderMaterial } from './shaderMaterial.js'; | ||
gl | ||
}) { | ||
} = {}) { | ||
const group = new THREE.Group(); | ||
@@ -69,0 +69,0 @@ let shapeProps = { |
{ | ||
"name": "@pmndrs/vanilla", | ||
"version": "1.20.0", | ||
"version": "1.20.1", | ||
"private": false, | ||
@@ -46,4 +46,3 @@ "publishConfig": { | ||
"dependencies": { | ||
"glsl-noise": "^0.0.0", | ||
"three-stdlib": "^2.34.0" | ||
"glsl-noise": "^0.0.0" | ||
}, | ||
@@ -50,0 +49,0 @@ "peerDependencies": { |
Sorry, the diff of this file is too big to display
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
365711
0.63%2
-33.33%82
3.8%4765
1%23
4.55%- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed