x_ite 5.0.3 → 6.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.vscode/settings.json +12 -5
- package/.vscode/tasks.json +25 -1
- package/Makefile +36 -28
- package/README.md +6 -11
- package/build/bin/dist.pl +0 -6
- package/build/bin/examples-and-tests.pl +75 -0
- package/build/bin/tests-menu.pl +57 -0
- package/build/bin/version.pl +7 -4
- package/build/parts/default.start.frag.js +3 -2
- package/dist/assets/components/annotation.js +3 -2
- package/dist/assets/components/annotation.min.js +1 -1
- package/dist/assets/components/cad-geometry.js +3 -2
- package/dist/assets/components/cad-geometry.min.js +1 -1
- package/dist/assets/components/cube-map-texturing.js +8 -20
- package/dist/assets/components/cube-map-texturing.min.js +1 -1
- package/dist/assets/components/dis.js +3 -2
- package/dist/assets/components/dis.min.js +1 -1
- package/dist/assets/components/event-utilities.js +4 -3
- package/dist/assets/components/event-utilities.min.js +1 -1
- package/dist/assets/components/geometry2d.js +38 -52
- package/dist/assets/components/geometry2d.min.js +1 -1
- package/dist/assets/components/geospatial.js +34 -1686
- package/dist/assets/components/geospatial.min.js +1 -1
- package/dist/assets/components/h-anim.js +71 -77
- package/dist/assets/components/h-anim.min.js +1 -1
- package/dist/assets/components/key-device-sensor.js +4 -3
- package/dist/assets/components/key-device-sensor.min.js +1 -1
- package/dist/assets/components/layout.js +101 -173
- package/dist/assets/components/layout.min.js +1 -1
- package/dist/assets/components/nurbs.js +3 -2
- package/dist/assets/components/nurbs.min.js +1 -1
- package/dist/assets/components/particle-systems.js +1926 -1669
- package/dist/assets/components/particle-systems.min.js +1 -1
- package/dist/assets/components/picking.js +34 -41
- package/dist/assets/components/picking.min.js +1 -1
- package/dist/assets/components/projective-texture-mapping.js +73 -86
- package/dist/assets/components/projective-texture-mapping.min.js +1 -1
- package/dist/assets/components/rigid-body-physics.js +37 -57
- package/dist/assets/components/rigid-body-physics.min.js +1 -1
- package/dist/assets/components/scripting.js +3 -2
- package/dist/assets/components/scripting.min.js +1 -1
- package/dist/assets/components/texturing-3d.js +27 -33
- package/dist/assets/components/texturing-3d.min.js +3 -3
- package/dist/assets/components/volume-rendering.js +12 -11
- package/dist/assets/components/volume-rendering.min.js +1 -1
- package/dist/assets/components/x_ite.js +3 -2
- package/dist/assets/components/x_ite.min.js +1 -1
- package/dist/assets/images/Shading.png +0 -0
- package/dist/assets/linetype/1.png +0 -0
- package/dist/assets/linetype/10.png +0 -0
- package/dist/assets/linetype/11.png +0 -0
- package/dist/assets/linetype/12.png +0 -0
- package/dist/assets/linetype/13.png +0 -0
- package/dist/assets/linetype/14.png +0 -0
- package/dist/assets/linetype/15.png +0 -0
- package/dist/assets/linetype/16.png +0 -0
- package/dist/assets/linetype/2.png +0 -0
- package/dist/assets/linetype/3.png +0 -0
- package/dist/assets/linetype/4.png +0 -0
- package/dist/assets/linetype/5.png +0 -0
- package/dist/assets/linetype/6.png +0 -0
- package/dist/assets/linetype/7.png +0 -0
- package/dist/assets/linetype/8.png +0 -0
- package/dist/assets/linetype/9.png +0 -0
- package/dist/assets/shaders/webgl1/Gouraud.vs +1 -1
- package/dist/assets/shaders/webgl1/Line.fs +0 -21
- package/dist/assets/shaders/webgl1/Line.vs +0 -10
- package/dist/assets/shaders/webgl1/PBR.fs +1 -1
- package/dist/assets/shaders/webgl1/PBR.vs +1 -1
- package/dist/assets/shaders/webgl1/Phong.fs +1 -1
- package/dist/assets/shaders/webgl1/Point.vs +1 -1
- package/dist/assets/shaders/webgl2/Depth.vs +29 -1
- package/dist/assets/shaders/webgl2/Gouraud.vs +32 -4
- package/dist/assets/shaders/webgl2/Line.fs +24 -12
- package/dist/assets/shaders/webgl2/Line.vs +36 -11
- package/dist/assets/shaders/webgl2/LineTransform.fs +4 -0
- package/dist/assets/shaders/webgl2/LineTransform.vs +57 -0
- package/dist/assets/shaders/webgl2/PBR.fs +1 -1
- package/dist/assets/shaders/webgl2/PBR.vs +35 -7
- package/dist/assets/shaders/webgl2/Phong.fs +1 -1
- package/dist/assets/shaders/webgl2/Phong.vs +31 -3
- package/dist/assets/shaders/webgl2/Point.vs +30 -2
- package/dist/assets/shaders/webgl2/Unlit.vs +31 -3
- package/dist/example.html +6 -6
- package/dist/x_ite.css +199 -224
- package/dist/x_ite.js +16335 -15917
- package/dist/x_ite.min.js +17 -17
- package/dist/x_ite.zip +0 -0
- package/docs/404.md +6 -0
- package/docs/Accessing-the-External-Browser.md +21 -15
- package/docs/Browser-Support.md +6 -0
- package/docs/Custom-Shaders.md +18 -25
- package/docs/Features.md +11 -5
- package/docs/Gemfile +44 -0
- package/docs/Gemfile.lock +122 -0
- package/docs/Glossary.md +6 -0
- package/docs/How-To-Configure-Your-Web-Server.md +6 -0
- package/docs/Supported-Nodes.md +9 -1
- package/docs/What's-New.md +93 -39
- package/docs/XHTML-DOM-Integration.md +6 -0
- package/docs/_config.yml +2 -2
- package/docs/assets/css/main.scss +26 -0
- package/docs/index.md +42 -50
- package/docs/reference/Browser-Services.md +9 -3
- package/docs/reference/Constants-Services.md +6 -0
- package/docs/reference/ECMAScript-Object-and-Function-Definitions.md +12 -6
- package/docs/reference/Field-Services-and-Objects.md +105 -1
- package/docs/reference/Prototype-Services.md +11 -0
- package/docs/reference/Route-Services.md +9 -0
- package/docs/reference/Scene-Services.md +17 -2
- package/docs/reference/Script-Node-Authoring-Interface.md +7 -1
- package/docs/tutorials/Adding-backgrounds.md +6 -0
- package/docs/tutorials/Adding-fog.md +6 -0
- package/docs/tutorials/Adding-sound.md +6 -0
- package/docs/tutorials/Animating-transforms.md +6 -0
- package/docs/tutorials/Basic-Nodes.md +6 -0
- package/docs/tutorials/Building-a-X3D-world.md +6 -0
- package/docs/tutorials/Building-elevation-grids.md +6 -0
- package/docs/tutorials/Building-extruded-shapes.md +6 -0
- package/docs/tutorials/Building-primitive-shapes.md +6 -0
- package/docs/tutorials/Building-shapes-out-of-points,-lines,-and-faces.md +6 -0
- package/docs/tutorials/Controlling-appearance-with-materials.md +6 -0
- package/docs/tutorials/Controlling-color-on-coordinate-based-geometry.md +6 -0
- package/docs/tutorials/Controlling-detail.md +6 -0
- package/docs/tutorials/Controlling-how-textures-are-mapped.md +6 -0
- package/docs/tutorials/Controlling-navigation.md +6 -0
- package/docs/tutorials/Controlling-shading-on-coordinate-based-geometry.md +6 -0
- package/docs/tutorials/Controlling-the-viewpoint.md +6 -0
- package/docs/tutorials/Creating-new-node-types.md +6 -0
- package/docs/tutorials/Grouping-nodes.md +6 -0
- package/docs/tutorials/Hello,-World!.md +6 -0
- package/docs/tutorials/Improving-Performance.md +6 -0
- package/docs/tutorials/Increasing-Rendering-Speed.md +6 -0
- package/docs/tutorials/Introducing-X3D.md +6 -0
- package/docs/tutorials/Introducing-animation.md +6 -0
- package/docs/tutorials/Introducing-script-use.md +6 -0
- package/docs/tutorials/Lighting-your-world.md +6 -0
- package/docs/tutorials/Mapping-textures.md +6 -0
- package/docs/tutorials/Naming-nodes.md +6 -0
- package/docs/tutorials/Providing-information-about-your-world.md +6 -0
- package/docs/tutorials/Sensing-the-viewer.md +6 -0
- package/docs/tutorials/Sensing-viewer-actions.md +6 -0
- package/docs/tutorials/Transforming-Shapes.md +6 -0
- package/docs/tutorials/Writing-program-scripts-with-ECMAScript.md +6 -0
- package/docs/tutorials/index.md +42 -36
- package/package.json +6 -7
- package/src/assets/components/geometry2d.js +1 -1
- package/src/assets/components/key-device-sensor.js +1 -1
- package/src/assets/components/layout.js +1 -1
- package/src/assets/components/particle-systems.js +1 -1
- package/src/assets/components/volume-rendering.js +1 -1
- package/src/assets/images/Shading.png +0 -0
- package/src/assets/linetype/1.png +0 -0
- package/src/assets/linetype/10.png +0 -0
- package/src/assets/linetype/11.png +0 -0
- package/src/assets/linetype/12.png +0 -0
- package/src/assets/linetype/13.png +0 -0
- package/src/assets/linetype/14.png +0 -0
- package/src/assets/linetype/15.png +0 -0
- package/src/assets/linetype/16.png +0 -0
- package/src/assets/linetype/2.png +0 -0
- package/src/assets/linetype/3.png +0 -0
- package/src/assets/linetype/4.png +0 -0
- package/src/assets/linetype/5.png +0 -0
- package/src/assets/linetype/6.png +0 -0
- package/src/assets/linetype/7.png +0 -0
- package/src/assets/linetype/8.png +0 -0
- package/src/assets/linetype/9.png +0 -0
- package/src/assets/shaders/Types.glsl +1 -9
- package/src/assets/shaders/webgl1/Gouraud.fs +1 -1
- package/src/assets/shaders/webgl1/Gouraud.vs +2 -3
- package/src/assets/shaders/webgl1/Line.fs +3 -28
- package/src/assets/shaders/webgl1/Line.vs +6 -20
- package/src/assets/shaders/webgl1/PBR.fs +6 -6
- package/src/assets/shaders/webgl1/PBR.vs +1 -1
- package/src/assets/shaders/webgl1/Phong.fs +10 -10
- package/src/assets/shaders/webgl1/Point.vs +2 -2
- package/src/assets/shaders/webgl1/Unlit.fs +4 -4
- package/src/assets/shaders/webgl1/include/Normal.glsl +1 -1
- package/src/assets/shaders/webgl1/include/Texture.glsl +3 -8
- package/src/assets/shaders/webgl2/Depth.vs +4 -1
- package/src/assets/shaders/webgl2/Gouraud.fs +1 -1
- package/src/assets/shaders/webgl2/Gouraud.vs +8 -6
- package/src/assets/shaders/webgl2/Line.fs +11 -17
- package/src/assets/shaders/webgl2/Line.vs +17 -21
- package/src/assets/shaders/webgl2/LineTransform.fs +6 -0
- package/src/assets/shaders/webgl2/LineTransform.vs +77 -0
- package/src/assets/shaders/webgl2/PBR.fs +6 -6
- package/src/assets/shaders/webgl2/PBR.vs +10 -7
- package/src/assets/shaders/webgl2/Phong.fs +11 -11
- package/src/assets/shaders/webgl2/Phong.vs +6 -3
- package/src/assets/shaders/webgl2/Point.vs +5 -4
- package/src/assets/shaders/webgl2/Unlit.fs +5 -5
- package/src/assets/shaders/webgl2/Unlit.vs +6 -3
- package/src/assets/shaders/webgl2/include/Line2.glsl +20 -0
- package/src/assets/shaders/webgl2/include/Normal.glsl +1 -1
- package/src/assets/shaders/webgl2/include/Particle.glsl +36 -0
- package/src/assets/shaders/webgl2/include/Texture.glsl +3 -3
- package/src/example.html +6 -6
- package/src/examples.js +5 -4
- package/src/standard/Math/Algorithm.js +12 -28
- package/src/standard/Math/Geometry/Line2.js +163 -0
- package/src/standard/Math/Geometry/Line3.js +3 -5
- package/src/standard/Math/Geometry/Plane3.js +0 -2
- package/src/standard/Math/Geometry/Triangle3.js +1 -1
- package/src/standard/Math/Geometry/ViewVolume.js +121 -103
- package/src/standard/Math/Numbers/Color3.js +6 -0
- package/src/standard/Math/Numbers/Color4.js +7 -0
- package/src/standard/Math/Numbers/Complex.js +48 -34
- package/src/standard/Math/Numbers/Matrix2.js +62 -2
- package/src/standard/Math/Numbers/Matrix3.js +129 -110
- package/src/standard/Math/Numbers/Matrix4.js +138 -119
- package/src/standard/Math/Numbers/Quaternion.js +12 -5
- package/src/standard/Math/Numbers/Rotation4.js +8 -1
- package/src/standard/Math/Numbers/Vector2.js +42 -9
- package/src/standard/Math/Numbers/Vector3.js +50 -14
- package/src/standard/Math/Numbers/Vector4.js +48 -11
- package/src/standard/Math/Utility/BVH.js +45 -17
- package/src/tests.js +68 -66
- package/src/x_ite/Base/X3DBaseNode.js +22 -11
- package/src/x_ite/Base/X3DField.js +1 -1
- package/src/x_ite/Browser/Core/BrowserOptions.js +24 -143
- package/src/x_ite/Browser/Core/BrowserTimings.js +6 -4
- package/src/x_ite/Browser/Core/Context.js +185 -0
- package/src/x_ite/Browser/Core/ContextMenu.js +398 -211
- package/src/x_ite/Browser/Core/Notification.js +1 -0
- package/src/x_ite/Browser/Core/X3DCoreContext.js +35 -146
- package/src/x_ite/Browser/Followers/X3DArrayFollowerTemplate.js +1 -1
- package/src/x_ite/Browser/Geometry2D/Disk2DOptions.js +1 -0
- package/src/x_ite/Browser/Geometry2D/X3DGeometry2DContext.js +2 -2
- package/src/x_ite/Browser/Geometry3D/X3DGeometry3DContext.js +41 -2
- package/src/x_ite/Browser/Geospatial/Geocentric.js +2 -2
- package/src/x_ite/Browser/Interpolation/CatmullRomSplineInterpolatorTemplate.js +1 -1
- package/src/x_ite/Browser/Layout/ScreenText.js +18 -65
- package/src/x_ite/Browser/Layout/X3DLayoutContext.js +59 -16
- package/src/x_ite/Browser/Navigation/ExamineViewer.js +13 -20
- package/src/x_ite/Browser/Navigation/LookAtViewer.js +1 -4
- package/src/x_ite/Browser/Navigation/PlaneViewer.js +0 -3
- package/src/x_ite/Browser/Navigation/X3DFlyViewer.js +15 -8
- package/src/x_ite/Browser/Navigation/X3DViewer.js +12 -20
- package/src/x_ite/Browser/Networking/X3DNetworkingContext.js +11 -7
- package/src/x_ite/Browser/ParticleSystems/BVH.glsl +183 -0
- package/src/x_ite/Browser/ParticleSystems/Box3.glsl +47 -0
- package/src/x_ite/Browser/ParticleSystems/GeometryTypes.js +66 -0
- package/src/x_ite/Browser/ParticleSystems/Line3.glsl +55 -0
- package/src/x_ite/Browser/ParticleSystems/Plane3.glsl +160 -0
- package/src/x_ite/Browser/PointingDeviceSensor/PointingDevice.js +27 -3
- package/src/x_ite/Browser/PointingDeviceSensor/X3DPointingDeviceSensorContext.js +41 -37
- package/src/x_ite/Browser/Rendering/X3DRenderingContext.js +21 -13
- package/src/x_ite/Browser/Shaders/Shader.js +33 -12
- package/src/x_ite/Browser/Shaders/ShaderSource.js +6 -0
- package/src/x_ite/Browser/Shaders/ShaderTest.js +16 -10
- package/src/x_ite/Browser/Shape/X3DShapeContext.js +50 -9
- package/src/x_ite/Browser/Text/X3DTextContext.js +4 -13
- package/src/x_ite/Browser/Text/X3DTextGeometry.js +2 -1
- package/src/x_ite/Browser/Texturing/X3DTexturingContext.js +71 -34
- package/src/x_ite/Browser/Texturing3D/DICOMParser.js +2 -2
- package/src/x_ite/Browser/Time/X3DTimeContext.js +4 -2
- package/src/x_ite/Browser/VERSION.js +1 -1
- package/src/x_ite/Browser/X3DBrowser.js +7 -6
- package/src/x_ite/Browser/X3DBrowserContext.js +43 -10
- package/src/x_ite/Components/Core/X3DNode.js +4 -0
- package/src/x_ite/Components/Core/X3DPrototypeInstance.js +0 -2
- package/src/x_ite/Components/CubeMapTexturing/ComposedCubeMapTexture.js +3 -4
- package/src/x_ite/Components/CubeMapTexturing/GeneratedCubeMapTexture.js +1 -12
- package/src/x_ite/Components/CubeMapTexturing/ImageCubeMapTexture.js +1 -2
- package/src/x_ite/Components/EnvironmentalEffects/TextureBackground.js +1 -1
- package/src/x_ite/Components/EnvironmentalEffects/X3DBackgroundNode.js +76 -77
- package/src/x_ite/Components/EnvironmentalEffects/X3DFogObject.js +2 -9
- package/src/x_ite/Components/EnvironmentalSensor/ProximitySensor.js +51 -65
- package/src/x_ite/Components/EventUtilities/X3DSequencerNode.js +1 -1
- package/src/x_ite/Components/Followers/ColorDamper.js +1 -1
- package/src/x_ite/Components/Followers/X3DChaserNode.js +18 -32
- package/src/x_ite/Components/Followers/X3DDamperNode.js +1 -6
- package/src/x_ite/Components/Followers/X3DFollowerNode.js +1 -1
- package/src/x_ite/Components/Geometry2D/Disk2D.js +30 -46
- package/src/x_ite/Components/Geometry2D/TriangleSet2D.js +1 -1
- package/src/x_ite/Components/Geometry3D/ElevationGrid.js +12 -4
- package/src/x_ite/Components/Geometry3D/IndexedFaceSet.js +4 -4
- package/src/x_ite/Components/Geospatial/GeoCoordinate.js +10 -27
- package/src/x_ite/Components/Geospatial/GeoLOD.js +1 -1
- package/src/x_ite/Components/Geospatial/GeoPositionInterpolator.js +5 -10
- package/src/x_ite/Components/Geospatial/GeoTouchSensor.js +9 -16
- package/src/x_ite/Components/Geospatial/GeoTransform.js +6 -18
- package/src/x_ite/Components/Geospatial/GeoViewpoint.js +26 -30
- package/src/x_ite/Components/Geospatial/X3DGeospatialObject.js +20 -27
- package/src/x_ite/Components/Grouping/X3DGroupingNode.js +8 -8
- package/src/x_ite/Components/Grouping/X3DTransformNode.js +0 -4
- package/src/x_ite/Components/HAnim/HAnimHumanoid.js +68 -75
- package/src/x_ite/Components/Interpolation/OrientationInterpolator.js +4 -11
- package/src/x_ite/Components/Interpolation/X3DInterpolatorNode.js +1 -1
- package/src/x_ite/Components/Layout/LayoutGroup.js +4 -9
- package/src/x_ite/Components/Layout/ScreenFontStyle.js +1 -1
- package/src/x_ite/Components/Layout/ScreenGroup.js +16 -80
- package/src/x_ite/Components/Lighting/DirectionalLight.js +28 -36
- package/src/x_ite/Components/Lighting/PointLight.js +32 -47
- package/src/x_ite/Components/Lighting/SpotLight.js +33 -48
- package/src/x_ite/Components/Navigation/Billboard.js +49 -56
- package/src/x_ite/Components/Navigation/LOD.js +2 -2
- package/src/x_ite/Components/Navigation/OrthoViewpoint.js +29 -30
- package/src/x_ite/Components/Navigation/Viewpoint.js +16 -20
- package/src/x_ite/Components/Navigation/X3DViewpointNode.js +82 -111
- package/src/x_ite/Components/Networking/Anchor.js +18 -7
- package/src/x_ite/Components/ParticleSystems/BoundedPhysicsModel.js +6 -6
- package/src/x_ite/Components/ParticleSystems/ConeEmitter.js +44 -36
- package/src/x_ite/Components/ParticleSystems/ExplosionEmitter.js +26 -17
- package/src/x_ite/Components/ParticleSystems/ForcePhysicsModel.js +20 -7
- package/src/x_ite/Components/ParticleSystems/ParticleSystem.js +463 -882
- package/src/x_ite/Components/ParticleSystems/PointEmitter.js +39 -35
- package/src/x_ite/Components/ParticleSystems/PolylineEmitter.js +112 -128
- package/src/x_ite/Components/ParticleSystems/SurfaceEmitter.js +105 -112
- package/src/x_ite/Components/ParticleSystems/VolumeEmitter.js +138 -176
- package/src/x_ite/Components/ParticleSystems/WindPhysicsModel.js +16 -11
- package/src/x_ite/Components/ParticleSystems/X3DParticleEmitterNode.js +807 -217
- package/src/x_ite/Components/Picking/LinePickSensor.js +31 -39
- package/src/x_ite/Components/PointingDeviceSensor/CylinderSensor.js +91 -108
- package/src/x_ite/Components/PointingDeviceSensor/PlaneSensor.js +56 -59
- package/src/x_ite/Components/PointingDeviceSensor/SphereSensor.js +54 -71
- package/src/x_ite/Components/PointingDeviceSensor/TouchSensor.js +8 -15
- package/src/x_ite/Components/ProjectiveTextureMapping/TextureProjectorParallel.js +43 -50
- package/src/x_ite/Components/ProjectiveTextureMapping/TextureProjectorPerspective.js +32 -39
- package/src/x_ite/Components/Rendering/ClipPlane.js +3 -11
- package/src/x_ite/Components/Rendering/Color.js +12 -24
- package/src/x_ite/Components/Rendering/ColorRGBA.js +13 -25
- package/src/x_ite/Components/Rendering/IndexedLineSet.js +26 -4
- package/src/x_ite/Components/Rendering/LineSet.js +35 -13
- package/src/x_ite/Components/Rendering/PointSet.js +35 -13
- package/src/x_ite/Components/Rendering/X3DComposedGeometryNode.js +13 -5
- package/src/x_ite/Components/Rendering/X3DGeometryNode.js +331 -387
- package/src/x_ite/Components/Rendering/X3DLineGeometryNode.js +350 -140
- package/src/x_ite/Components/Rendering/X3DPointGeometryNode.js +116 -126
- package/src/x_ite/Components/RigidBodyPhysics/DoubleAxisHingeJoint.js +24 -38
- package/src/x_ite/Components/RigidBodyPhysics/SingleAxisHingeJoint.js +10 -17
- package/src/x_ite/Components/Shaders/ComposedShader.js +35 -75
- package/src/x_ite/Components/Shaders/FloatVertexAttribute.js +8 -11
- package/src/x_ite/Components/Shaders/Matrix3VertexAttribute.js +10 -14
- package/src/x_ite/Components/Shaders/Matrix4VertexAttribute.js +10 -14
- package/src/x_ite/Components/Shaders/ShaderPart.js +1 -10
- package/src/x_ite/Components/Shaders/X3DProgrammableShaderObject.js +220 -210
- package/src/x_ite/Components/Shaders/X3DShaderNode.js +28 -10
- package/src/x_ite/Components/Shaders/X3DVertexAttributeNode.js +15 -1
- package/src/x_ite/Components/Shape/Appearance.js +37 -4
- package/src/x_ite/Components/Shape/FillProperties.js +12 -1
- package/src/x_ite/Components/Shape/LineProperties.js +33 -1
- package/src/x_ite/Components/Shape/PointProperties.js +24 -3
- package/src/x_ite/Components/Shape/Shape.js +30 -39
- package/src/x_ite/Components/Shape/TwoSidedMaterial.js +3 -1
- package/src/x_ite/Components/Sound/Sound.js +31 -41
- package/src/x_ite/Components/Text/Text.js +6 -20
- package/src/x_ite/Components/Texturing/ImageTexture.js +1 -1
- package/src/x_ite/Components/Texturing/MovieTexture.js +1 -1
- package/src/x_ite/Components/Texturing/PixelTexture.js +2 -2
- package/src/x_ite/Components/Texturing/TextureCoordinate.js +5 -5
- package/src/x_ite/Components/Texturing/TextureProperties.js +4 -4
- package/src/x_ite/Components/Texturing/X3DSingleTextureNode.js +5 -4
- package/src/x_ite/Components/Texturing/X3DTexture2DNode.js +24 -33
- package/src/x_ite/Components/Texturing3D/TextureCoordinate3D.js +5 -5
- package/src/x_ite/Components/Texturing3D/TextureCoordinate4D.js +5 -5
- package/src/x_ite/Components/Texturing3D/X3DTexture3DNode.js +12 -19
- package/src/x_ite/Components/VolumeRendering/X3DVolumeDataNode.js +8 -8
- package/src/x_ite/Components.js +2 -2
- package/src/x_ite/Fallback.js +9 -3
- package/src/x_ite/Fields/SFColor.js +4 -0
- package/src/x_ite/Fields/SFColorRGBA.js +4 -0
- package/src/x_ite/Fields/SFImage.js +2 -11
- package/src/x_ite/Fields/SFMatrixPrototypeTemplate.js +4 -0
- package/src/x_ite/Fields/SFRotation.js +4 -0
- package/src/x_ite/Fields/SFString.js +4 -0
- package/src/x_ite/Fields/SFVecPrototypeTemplate.js +22 -2
- package/src/x_ite/Parser/XMLParser.js +1 -1
- package/src/x_ite/Rendering/TextureBuffer.js +43 -36
- package/src/x_ite/Rendering/VertexArray.js +103 -0
- package/src/x_ite/Rendering/X3DRenderObject.js +127 -148
- package/src/x_ite/X3D.js +32 -26
- package/src/x_ite.config.js +0 -5
- package/src/x_ite.css +216 -175
- package/src/x_ite.html +15 -10
- package/src/x_ite.js +49 -1
- package/x_ite.min.html +15 -10
- package/dist/assets/hatching/0.png +0 -0
- package/dist/assets/linetype/0.png +0 -0
- package/src/assets/hatching/0.png +0 -0
- package/src/assets/linetype/0.png +0 -0
- package/src/spinner.css +0 -67
- package/src/x_ite/Browser/Shape/LineStipples.xcf +0 -0
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
precision highp float;
|
|
3
3
|
precision highp int;
|
|
4
4
|
|
|
5
|
-
uniform bool x3d_ColorMaterial; // true if a X3DColorNode is attached, otherwise false
|
|
6
5
|
uniform x3d_UnlitMaterialParameters x3d_Material;
|
|
6
|
+
uniform bool x3d_ColorMaterial; // true if a X3DColorNode is attached, otherwise false
|
|
7
7
|
|
|
8
8
|
uniform mat4 x3d_ProjectionMatrix;
|
|
9
9
|
uniform mat4 x3d_ModelViewMatrix;
|
|
@@ -12,15 +12,9 @@ attribute float x3d_FogDepth;
|
|
|
12
12
|
attribute vec4 x3d_Color;
|
|
13
13
|
attribute vec4 x3d_Vertex;
|
|
14
14
|
|
|
15
|
-
varying float fogDepth;
|
|
16
|
-
varying vec4 color;
|
|
17
|
-
varying vec3 vertex;
|
|
18
|
-
|
|
19
|
-
#ifdef X_ITE
|
|
20
|
-
attribute vec4 x3d_TexCoord0;
|
|
21
|
-
varying vec3 startPosition; // line stipple start
|
|
22
|
-
varying vec3 vertexPosition; // current line stipple position
|
|
23
|
-
#endif
|
|
15
|
+
varying float fogDepth; // fog depth
|
|
16
|
+
varying vec4 color; // color
|
|
17
|
+
varying vec3 vertex; // point on geometry
|
|
24
18
|
|
|
25
19
|
#ifdef X3D_LOGARITHMIC_DEPTH_BUFFER
|
|
26
20
|
varying float depth;
|
|
@@ -31,19 +25,11 @@ main ()
|
|
|
31
25
|
{
|
|
32
26
|
vec4 position = x3d_ModelViewMatrix * x3d_Vertex;
|
|
33
27
|
|
|
34
|
-
fogDepth
|
|
35
|
-
vertex
|
|
28
|
+
fogDepth = x3d_FogDepth;
|
|
29
|
+
vertex = position .xyz;
|
|
36
30
|
|
|
37
31
|
gl_Position = x3d_ProjectionMatrix * position;
|
|
38
32
|
|
|
39
|
-
#ifdef X_ITE
|
|
40
|
-
// Line Stipple
|
|
41
|
-
vec4 start = x3d_ProjectionMatrix * x3d_ModelViewMatrix * x3d_TexCoord0;
|
|
42
|
-
|
|
43
|
-
startPosition = start .xyz / start .w;
|
|
44
|
-
vertexPosition = gl_Position .xyz / gl_Position .w;
|
|
45
|
-
#endif
|
|
46
|
-
|
|
47
33
|
#ifdef X3D_LOGARITHMIC_DEPTH_BUFFER
|
|
48
34
|
depth = 1.0 + gl_Position .w;
|
|
49
35
|
#endif
|
|
@@ -10,8 +10,8 @@ precision highp float;
|
|
|
10
10
|
precision highp int;
|
|
11
11
|
|
|
12
12
|
uniform int x3d_GeometryType;
|
|
13
|
-
uniform bool x3d_ColorMaterial; // true if a X3DColorNode is attached, otherwise false
|
|
14
13
|
uniform float x3d_AlphaCutoff;
|
|
14
|
+
uniform bool x3d_ColorMaterial; // true if a X3DColorNode is attached, otherwise false
|
|
15
15
|
|
|
16
16
|
uniform int x3d_NumLights;
|
|
17
17
|
uniform x3d_LightSourceParameters x3d_LightSource [x3d_MaxLights];
|
|
@@ -59,7 +59,7 @@ getBaseColor ()
|
|
|
59
59
|
// Get texture color.
|
|
60
60
|
|
|
61
61
|
#if defined(X3D_BASE_TEXTURE) && !defined(X3D_BASE_TEXTURE_3D)
|
|
62
|
-
|
|
62
|
+
vec3 texCoord = getTexCoord (x3d_BaseTexture .textureTransformMapping, x3d_BaseTexture .textureCoordinateMapping);
|
|
63
63
|
#if defined(X3D_BASE_TEXTURE_2D)
|
|
64
64
|
return baseParameter * SRGBtoLINEAR (texture2D (x3d_BaseTexture .texture2D, texCoord .st));
|
|
65
65
|
#elif defined(X3D_BASE_TEXTURE_CUBE)
|
|
@@ -80,7 +80,7 @@ getEmissiveColor ()
|
|
|
80
80
|
// Get texture color.
|
|
81
81
|
|
|
82
82
|
#if defined(X3D_EMISSIVE_TEXTURE) && !defined(X3D_EMISSIVE_TEXTURE_3D)
|
|
83
|
-
|
|
83
|
+
vec3 texCoord = getTexCoord (x3d_EmissiveTexture .textureTransformMapping, x3d_EmissiveTexture .textureCoordinateMapping);
|
|
84
84
|
|
|
85
85
|
#if defined(X3D_EMISSIVE_TEXTURE_2D)
|
|
86
86
|
return emissiveParameter * SRGBtoLINEAR (texture2D (x3d_EmissiveTexture .texture2D, texCoord .st)) .rgb;
|
|
@@ -104,7 +104,7 @@ getMetallicRoughness ()
|
|
|
104
104
|
// Get texture color.
|
|
105
105
|
|
|
106
106
|
#if defined(X3D_METALLIC_ROUGHNESS_TEXTURE) && !defined(X3D_METALLIC_ROUGHNESS_TEXTURE_3D)
|
|
107
|
-
|
|
107
|
+
vec3 texCoord = getTexCoord (x3d_MetallicRoughnessTexture .textureTransformMapping, x3d_MetallicRoughnessTexture .textureCoordinateMapping);
|
|
108
108
|
// Roughness is stored in the 'g' channel, metallic is stored in the 'b' channel.
|
|
109
109
|
// This layout intentionally reserves the 'r' channel for (optional) occlusion map data
|
|
110
110
|
#if defined(X3D_METALLIC_ROUGHNESS_TEXTURE_2D)
|
|
@@ -127,7 +127,7 @@ getOcclusionFactor ()
|
|
|
127
127
|
// Get texture color.
|
|
128
128
|
|
|
129
129
|
#if defined(X3D_OCCLUSION_TEXTURE) && !defined(X3D_OCCLUSION_TEXTURE_3D)
|
|
130
|
-
|
|
130
|
+
vec3 texCoord = getTexCoord (x3d_OcclusionTexture .textureTransformMapping, x3d_OcclusionTexture .textureCoordinateMapping);
|
|
131
131
|
|
|
132
132
|
#if defined(X3D_OCCLUSION_TEXTURE_2D)
|
|
133
133
|
return texture2D (x3d_OcclusionTexture .texture2D, texCoord .st) .r;
|
|
@@ -325,7 +325,7 @@ main ()
|
|
|
325
325
|
float G = geometricOcclusion (pbrInputs);
|
|
326
326
|
float D = microfacetDistribution (pbrInputs);
|
|
327
327
|
|
|
328
|
-
float attenuationFactor = di ? 1.0 : 1.0 / max (c
|
|
328
|
+
float attenuationFactor = di ? 1.0 : 1.0 / max (dot (c, vec3 (1.0, dL, dL * dL)), 1.0);
|
|
329
329
|
float spotFactor = light .type == x3d_SpotLight ? getSpotFactor (light .cutOffAngle, light .beamWidth, L, d) : 1.0;
|
|
330
330
|
float attenuationSpotFactor = attenuationFactor * spotFactor;
|
|
331
331
|
|
|
@@ -31,7 +31,7 @@ main ()
|
|
|
31
31
|
vec4 position = x3d_ModelViewMatrix * x3d_Vertex;
|
|
32
32
|
|
|
33
33
|
vertex = position .xyz;
|
|
34
|
-
normal =
|
|
34
|
+
normal = x3d_NormalMatrix * x3d_Normal;
|
|
35
35
|
texCoord0 = x3d_TexCoord0;
|
|
36
36
|
texCoord1 = x3d_TexCoord1;
|
|
37
37
|
color = x3d_Color;
|
|
@@ -8,8 +8,8 @@ precision highp float;
|
|
|
8
8
|
precision highp int;
|
|
9
9
|
|
|
10
10
|
uniform int x3d_GeometryType;
|
|
11
|
-
uniform bool x3d_ColorMaterial; // true if a X3DColorNode is attached, otherwise false
|
|
12
11
|
uniform float x3d_AlphaCutoff;
|
|
12
|
+
uniform bool x3d_ColorMaterial; // true if a X3DColorNode is attached, otherwise false
|
|
13
13
|
|
|
14
14
|
uniform int x3d_NumLights;
|
|
15
15
|
uniform x3d_LightSourceParameters x3d_LightSource [x3d_MaxLights];
|
|
@@ -62,7 +62,7 @@ getAmbientColor (in vec3 diffuseColor)
|
|
|
62
62
|
// Get texture color.
|
|
63
63
|
|
|
64
64
|
#if defined(X3D_AMBIENT_TEXTURE) && !defined(X3D_AMBIENT_TEXTURE_3D)
|
|
65
|
-
|
|
65
|
+
vec3 texCoord = getTexCoord (x3d_AmbientTexture .textureTransformMapping, x3d_AmbientTexture .textureCoordinateMapping);
|
|
66
66
|
|
|
67
67
|
#if defined(X3D_AMBIENT_TEXTURE_2D)
|
|
68
68
|
return ambientParameter * texture2D (x3d_AmbientTexture .texture2D, texCoord .st) .rgb;
|
|
@@ -85,12 +85,12 @@ getDiffuseColor ()
|
|
|
85
85
|
// Get texture color.
|
|
86
86
|
|
|
87
87
|
#if defined(X3D_DIFFUSE_TEXTURE) && !defined(X3D_DIFFUSE_TEXTURE_3D)
|
|
88
|
-
|
|
88
|
+
vec3 texCoord = getTexCoord (x3d_DiffuseTexture .textureTransformMapping, x3d_DiffuseTexture .textureCoordinateMapping);
|
|
89
89
|
|
|
90
90
|
#if defined(X3D_DIFFUSE_TEXTURE_2D)
|
|
91
|
-
return diffuseParameter * texture2D (x3d_DiffuseTexture .texture2D, texCoord .st)
|
|
91
|
+
return diffuseParameter * texture2D (x3d_DiffuseTexture .texture2D, texCoord .st);
|
|
92
92
|
#elif defined(X3D_DIFFUSE_TEXTURE_CUBE)
|
|
93
|
-
return diffuseParameter * textureCube (x3d_DiffuseTexture .textureCube, texCoord .stp)
|
|
93
|
+
return diffuseParameter * textureCube (x3d_DiffuseTexture .textureCube, texCoord .stp);
|
|
94
94
|
#endif
|
|
95
95
|
#else
|
|
96
96
|
return getTextureColor (diffuseParameter, vec4 (x3d_Material .specularColor, alpha));
|
|
@@ -107,7 +107,7 @@ getSpecularColor ()
|
|
|
107
107
|
// Get texture color.
|
|
108
108
|
|
|
109
109
|
#if defined(X3D_SPECULAR_TEXTURE) && !defined(X3D_SPECULAR_TEXTURE_3D)
|
|
110
|
-
|
|
110
|
+
vec3 texCoord = getTexCoord (x3d_SpecularTexture .textureTransformMapping, x3d_SpecularTexture .textureCoordinateMapping);
|
|
111
111
|
|
|
112
112
|
#if defined(X3D_SPECULAR_TEXTURE_2D)
|
|
113
113
|
return specularParameter * texture2D (x3d_SpecularTexture .texture2D, texCoord .st) .rgb;
|
|
@@ -129,7 +129,7 @@ getEmissiveColor ()
|
|
|
129
129
|
// Get texture color.
|
|
130
130
|
|
|
131
131
|
#if defined(X3D_EMISSIVE_TEXTURE) && !defined(X3D_EMISSIVE_TEXTURE_3D)
|
|
132
|
-
|
|
132
|
+
vec3 texCoord = getTexCoord (x3d_EmissiveTexture .textureTransformMapping, x3d_EmissiveTexture .textureCoordinateMapping);
|
|
133
133
|
|
|
134
134
|
#if defined(X3D_EMISSIVE_TEXTURE_2D)
|
|
135
135
|
return emissiveParameter * texture2D (x3d_EmissiveTexture .texture2D, texCoord .st) .rgb;
|
|
@@ -151,7 +151,7 @@ getShininessFactor ()
|
|
|
151
151
|
// Get texture color.
|
|
152
152
|
|
|
153
153
|
#if defined(X3D_SHININESS_TEXTURE) && !defined(X3D_SHININESS_TEXTURE_3D)
|
|
154
|
-
|
|
154
|
+
vec3 texCoord = getTexCoord (x3d_ShininessTexture .textureTransformMapping, x3d_ShininessTexture .textureCoordinateMapping);
|
|
155
155
|
|
|
156
156
|
#if defined(X3D_SHININESS_TEXTURE_2D)
|
|
157
157
|
return shininess * texture2D (x3d_ShininessTexture .texture2D, texCoord .st) .a * 128.0;
|
|
@@ -169,7 +169,7 @@ getOcclusionFactor ()
|
|
|
169
169
|
// Get texture color.
|
|
170
170
|
|
|
171
171
|
#if defined(X3D_OCCLUSION_TEXTURE) && !defined(X3D_OCCLUSION_TEXTURE_3D)
|
|
172
|
-
|
|
172
|
+
vec3 texCoord = getTexCoord (x3d_OcclusionTexture .textureTransformMapping, x3d_OcclusionTexture .textureCoordinateMapping);
|
|
173
173
|
|
|
174
174
|
#if defined(X3D_OCCLUSION_TEXTURE_2D)
|
|
175
175
|
return texture2D (x3d_OcclusionTexture .texture2D, texCoord .st) .r;
|
|
@@ -230,7 +230,7 @@ getMaterialColor ()
|
|
|
230
230
|
float specularFactor = shininessFactor > 0.0 ? pow (max (dot (N, H), 0.0), shininessFactor) : 1.0;
|
|
231
231
|
vec3 specularTerm = specularColor * specularFactor;
|
|
232
232
|
|
|
233
|
-
float attenuationFactor = di ? 1.0 : 1.0 / max (c
|
|
233
|
+
float attenuationFactor = di ? 1.0 : 1.0 / max (dot (c, vec3 (1.0, dL, dL * dL)), 1.0);
|
|
234
234
|
float spotFactor = light .type == x3d_SpotLight ? getSpotFactor (light .cutOffAngle, light .beamWidth, L, d) : 1.0;
|
|
235
235
|
float attenuationSpotFactor = attenuationFactor * spotFactor;
|
|
236
236
|
vec3 ambientTerm = light .ambientIntensity * ambientColor;
|
|
@@ -4,9 +4,9 @@ precision highp int;
|
|
|
4
4
|
|
|
5
5
|
uniform x3d_PointPropertiesParameters x3d_PointProperties;
|
|
6
6
|
|
|
7
|
-
uniform bool x3d_ColorMaterial; // true if a X3DColorNode is attached, otherwise false
|
|
8
7
|
uniform x3d_UnlitMaterialParameters x3d_Material;
|
|
9
8
|
uniform int x3d_NumTextures;
|
|
9
|
+
uniform bool x3d_ColorMaterial; // true if a X3DColorNode is attached, otherwise false
|
|
10
10
|
|
|
11
11
|
uniform mat4 x3d_ProjectionMatrix;
|
|
12
12
|
uniform mat4 x3d_ModelViewMatrix;
|
|
@@ -48,7 +48,7 @@ main ()
|
|
|
48
48
|
float dL = length (vertex);
|
|
49
49
|
|
|
50
50
|
pointSize = x3d_PointProperties .pointSizeScaleFactor;
|
|
51
|
-
pointSize
|
|
51
|
+
pointSize /= dot (pointSizeAttenuation, vec3 (1.0, dL, dL * dL));
|
|
52
52
|
pointSize = clamp (pointSize, pointSizeMinValue, pointSizeMaxValue);
|
|
53
53
|
|
|
54
54
|
gl_PointSize = pointSize > 1.0 && x3d_NumTextures == 0 ? pointSize + 1.0 : pointSize;
|
|
@@ -7,8 +7,8 @@ precision highp float;
|
|
|
7
7
|
precision highp int;
|
|
8
8
|
|
|
9
9
|
uniform int x3d_GeometryType;
|
|
10
|
-
uniform bool x3d_ColorMaterial; // true if a X3DColorNode is attached, otherwise false
|
|
11
10
|
uniform float x3d_AlphaCutoff;
|
|
11
|
+
uniform bool x3d_ColorMaterial; // true if a X3DColorNode is attached, otherwise false
|
|
12
12
|
|
|
13
13
|
uniform x3d_UnlitMaterialParameters x3d_Material;
|
|
14
14
|
|
|
@@ -52,12 +52,12 @@ getEmissiveColor ()
|
|
|
52
52
|
// Get texture color.
|
|
53
53
|
|
|
54
54
|
#if defined(X3D_EMISSIVE_TEXTURE) && !defined(X3D_EMISSIVE_TEXTURE_3D)
|
|
55
|
-
|
|
55
|
+
vec3 texCoord = getTexCoord (x3d_EmissiveTexture .textureTransformMapping, x3d_EmissiveTexture .textureCoordinateMapping);
|
|
56
56
|
|
|
57
57
|
#if defined(X3D_EMISSIVE_TEXTURE_2D)
|
|
58
|
-
return emissiveParameter * texture2D (x3d_EmissiveTexture .texture2D, texCoord .st)
|
|
58
|
+
return emissiveParameter * texture2D (x3d_EmissiveTexture .texture2D, texCoord .st);
|
|
59
59
|
#elif defined(X3D_EMISSIVE_TEXTURE_CUBE)
|
|
60
|
-
return emissiveParameter * textureCube (x3d_EmissiveTexture .textureCube, texCoord .stp)
|
|
60
|
+
return emissiveParameter * textureCube (x3d_EmissiveTexture .textureCube, texCoord .stp);
|
|
61
61
|
#endif
|
|
62
62
|
#else
|
|
63
63
|
return getTextureColor (emissiveParameter, vec4 (vec3 (1.0), alpha));
|
|
@@ -27,7 +27,7 @@ getNormalVector ()
|
|
|
27
27
|
// Get normal vector.
|
|
28
28
|
|
|
29
29
|
#if defined(X3D_NORMAL_TEXTURE) && !defined(X3D_NORMAL_TEXTURE_3D)
|
|
30
|
-
|
|
30
|
+
vec3 texCoord = getTexCoord (x3d_NormalTexture .textureTransformMapping, x3d_NormalTexture .textureCoordinateMapping);
|
|
31
31
|
vec3 normalScale = vec3 (vec2 (x3d_Material .normalScale), 1.0);
|
|
32
32
|
mat3 tbn = getTBNMatrix (texCoord .st);
|
|
33
33
|
|
|
@@ -134,7 +134,7 @@ getTexCoord (const in x3d_TextureCoordinateGeneratorParameters textureCoordinate
|
|
|
134
134
|
return getTextureMatrix (textureTransformMapping) * getTexCoord (textureCoordinateMapping);
|
|
135
135
|
}
|
|
136
136
|
|
|
137
|
-
|
|
137
|
+
vec3
|
|
138
138
|
getTexCoord (const in int textureTransformMapping, const in int textureCoordinateMapping)
|
|
139
139
|
{
|
|
140
140
|
vec4 texCoord;
|
|
@@ -154,7 +154,7 @@ getTexCoord (const in int textureTransformMapping, const in int textureCoordinat
|
|
|
154
154
|
if ((x3d_GeometryType == x3d_Geometry2D) && (gl_FrontFacing == false))
|
|
155
155
|
texCoord .s = 1.0 - texCoord .s;
|
|
156
156
|
|
|
157
|
-
return texCoord;
|
|
157
|
+
return texCoord .stp;
|
|
158
158
|
}
|
|
159
159
|
|
|
160
160
|
vec4
|
|
@@ -205,14 +205,9 @@ getTextureColor (const in vec4 diffuseColor, const in vec4 specularColor)
|
|
|
205
205
|
|
|
206
206
|
// Get texture color.
|
|
207
207
|
|
|
208
|
-
|
|
208
|
+
vec3 texCoord = getTexCoord (i, i);
|
|
209
209
|
vec4 textureColor = vec4 (1.0);
|
|
210
210
|
|
|
211
|
-
texCoord .stp /= texCoord .q;
|
|
212
|
-
|
|
213
|
-
if ((x3d_GeometryType == x3d_Geometry2D) && (gl_FrontFacing == false))
|
|
214
|
-
texCoord .s = 1.0 - texCoord .s;
|
|
215
|
-
|
|
216
211
|
if (x3d_TextureType [i] == x3d_TextureType2D)
|
|
217
212
|
{
|
|
218
213
|
textureColor = getTexture2D (i, texCoord .st);
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
precision highp float;
|
|
4
4
|
precision highp int;
|
|
5
|
+
precision highp sampler2D;
|
|
5
6
|
|
|
6
7
|
uniform mat4 x3d_ProjectionMatrix;
|
|
7
8
|
uniform mat4 x3d_ModelViewMatrix;
|
|
@@ -10,10 +11,12 @@ in vec4 x3d_Vertex;
|
|
|
10
11
|
|
|
11
12
|
out vec3 vertex; // point on geometry
|
|
12
13
|
|
|
14
|
+
#pragma X3D include "include/Particle.glsl"
|
|
15
|
+
|
|
13
16
|
void
|
|
14
17
|
main ()
|
|
15
18
|
{
|
|
16
|
-
vec4 position = x3d_ModelViewMatrix * x3d_Vertex;
|
|
19
|
+
vec4 position = x3d_ModelViewMatrix * getVertex (x3d_Vertex);
|
|
17
20
|
|
|
18
21
|
vertex = position .xyz;
|
|
19
22
|
|
|
@@ -4,8 +4,8 @@ precision highp float;
|
|
|
4
4
|
precision highp int;
|
|
5
5
|
|
|
6
6
|
uniform int x3d_GeometryType; // true if a X3DMaterialNode is attached, otherwise false
|
|
7
|
-
uniform bool x3d_ColorMaterial; // true if a X3DColorNode is attached, otherwise false
|
|
8
7
|
uniform float x3d_AlphaCutoff;
|
|
8
|
+
uniform bool x3d_ColorMaterial; // true if a X3DColorNode is attached, otherwise false
|
|
9
9
|
|
|
10
10
|
in float fogDepth; // fog depth
|
|
11
11
|
in vec4 frontColor; // color
|
|
@@ -2,17 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
precision highp float;
|
|
4
4
|
precision highp int;
|
|
5
|
+
precision highp sampler2D;
|
|
5
6
|
|
|
6
7
|
uniform mat3 x3d_NormalMatrix;
|
|
7
8
|
uniform mat4 x3d_ProjectionMatrix;
|
|
8
9
|
uniform mat4 x3d_ModelViewMatrix;
|
|
9
10
|
|
|
10
|
-
uniform bool x3d_ColorMaterial; // true if a X3DColorNode is attached, otherwise false
|
|
11
|
-
|
|
12
11
|
uniform int x3d_NumLights;
|
|
13
12
|
uniform x3d_LightSourceParameters x3d_LightSource [x3d_MaxLights];
|
|
14
13
|
uniform x3d_MaterialParameters x3d_Material;
|
|
15
14
|
|
|
15
|
+
uniform bool x3d_ColorMaterial; // true if a X3DColorNode is attached, otherwise false
|
|
16
|
+
|
|
16
17
|
in float x3d_FogDepth;
|
|
17
18
|
in vec4 x3d_Color;
|
|
18
19
|
in vec3 x3d_Normal;
|
|
@@ -46,6 +47,7 @@ out vec4 texCoord1; // texCoord1
|
|
|
46
47
|
out float depth;
|
|
47
48
|
#endif
|
|
48
49
|
|
|
50
|
+
#pragma X3D include "include/Particle.glsl"
|
|
49
51
|
#pragma X3D include "include/SpotFactor.glsl"
|
|
50
52
|
|
|
51
53
|
vec4
|
|
@@ -88,7 +90,7 @@ getMaterialColor (const in vec3 N,
|
|
|
88
90
|
float specularFactor = material .shininess > 0.0 ? pow (max (dot (N, H), 0.0), material .shininess * 128.0) : 1.0;
|
|
89
91
|
vec3 specularTerm = material .specularColor * specularFactor;
|
|
90
92
|
|
|
91
|
-
float attenuationFactor = di ? 1.0 : 1.0 / max (c
|
|
93
|
+
float attenuationFactor = di ? 1.0 : 1.0 / max (dot (c, vec3 (1.0, dL, dL * dL)), 1.0);
|
|
92
94
|
float spotFactor = light .type == x3d_SpotLight ? getSpotFactor (light .cutOffAngle, light .beamWidth, L, d) : 1.0;
|
|
93
95
|
float attenuationSpotFactor = attenuationFactor * spotFactor;
|
|
94
96
|
vec3 ambientTerm = light .ambientIntensity * ambientColor;
|
|
@@ -106,7 +108,7 @@ getMaterialColor (const in vec3 N,
|
|
|
106
108
|
void
|
|
107
109
|
main ()
|
|
108
110
|
{
|
|
109
|
-
vec4 position = x3d_ModelViewMatrix * x3d_Vertex;
|
|
111
|
+
vec4 position = x3d_ModelViewMatrix * getVertex (x3d_Vertex);
|
|
110
112
|
|
|
111
113
|
fogDepth = x3d_FogDepth;
|
|
112
114
|
vertex = position .xyz;
|
|
@@ -115,11 +117,11 @@ main ()
|
|
|
115
117
|
localVertex = x3d_Vertex .xyz;
|
|
116
118
|
|
|
117
119
|
#if x3d_MaxTextures > 0
|
|
118
|
-
texCoord0 = x3d_TexCoord0;
|
|
120
|
+
texCoord0 = getTexCoord (x3d_TexCoord0);
|
|
119
121
|
#endif
|
|
120
122
|
|
|
121
123
|
#if x3d_MaxTextures > 1
|
|
122
|
-
texCoord1 = x3d_TexCoord1;
|
|
124
|
+
texCoord1 = getTexCoord (x3d_TexCoord1);
|
|
123
125
|
#endif
|
|
124
126
|
|
|
125
127
|
gl_Position = x3d_ProjectionMatrix * position;
|
|
@@ -7,14 +7,12 @@ uniform float x3d_AlphaCutoff;
|
|
|
7
7
|
uniform x3d_LinePropertiesParameters x3d_LineProperties;
|
|
8
8
|
uniform ivec4 x3d_Viewport;
|
|
9
9
|
|
|
10
|
-
in float
|
|
11
|
-
in
|
|
12
|
-
in
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
in vec3
|
|
16
|
-
in vec3 vertexPosition; // current line stipple position
|
|
17
|
-
#endif
|
|
10
|
+
flat in float lengthSoFar; // in px, stipple support
|
|
11
|
+
flat in vec2 startPoint; // in px, stipple support
|
|
12
|
+
in vec2 midPoint; // in px, stipple support
|
|
13
|
+
in float fogDepth; // fog depth
|
|
14
|
+
in vec4 color; // color
|
|
15
|
+
in vec3 vertex; // point on geometry
|
|
18
16
|
|
|
19
17
|
#ifdef X3D_LOGARITHMIC_DEPTH_BUFFER
|
|
20
18
|
uniform float x3d_LogarithmicFarFactor1_2;
|
|
@@ -25,31 +23,27 @@ out vec4 x3d_FragColor;
|
|
|
25
23
|
|
|
26
24
|
#pragma X3D include "include/Fog.glsl"
|
|
27
25
|
#pragma X3D include "include/ClipPlanes.glsl"
|
|
26
|
+
#pragma X3D include "include/Line2.glsl"
|
|
28
27
|
|
|
29
|
-
#ifdef X_ITE
|
|
30
28
|
void
|
|
31
29
|
stipple ()
|
|
32
30
|
{
|
|
33
31
|
if (x3d_LineProperties .applied)
|
|
34
32
|
{
|
|
35
|
-
vec2
|
|
36
|
-
float
|
|
37
|
-
float
|
|
33
|
+
vec2 point = closest_point (line2 (startPoint, midPoint), gl_FragCoord .xy);
|
|
34
|
+
float s = (lengthSoFar + length (point - startPoint)) * x3d_LineProperties .lineStippleScale;
|
|
35
|
+
float alpha = texture (x3d_LineProperties .linetype, vec2 (s, 0.5)) .a;
|
|
38
36
|
|
|
39
|
-
if (
|
|
37
|
+
if (alpha != 1.0)
|
|
40
38
|
discard;
|
|
41
39
|
}
|
|
42
40
|
}
|
|
43
|
-
#endif
|
|
44
41
|
|
|
45
42
|
void
|
|
46
43
|
main ()
|
|
47
44
|
{
|
|
48
45
|
clip ();
|
|
49
|
-
|
|
50
|
-
#ifdef X_ITE
|
|
51
46
|
stipple ();
|
|
52
|
-
#endif
|
|
53
47
|
|
|
54
48
|
vec4 finalColor = vec4 (0.0);
|
|
55
49
|
|
|
@@ -2,49 +2,45 @@
|
|
|
2
2
|
|
|
3
3
|
precision highp float;
|
|
4
4
|
precision highp int;
|
|
5
|
+
precision highp sampler2D;
|
|
5
6
|
|
|
6
|
-
uniform bool x3d_ColorMaterial; // true if a X3DColorNode is attached, otherwise false
|
|
7
7
|
uniform x3d_UnlitMaterialParameters x3d_Material;
|
|
8
|
+
uniform bool x3d_ColorMaterial; // true if a X3DColorNode is attached, otherwise false
|
|
8
9
|
|
|
9
10
|
uniform mat4 x3d_ProjectionMatrix;
|
|
10
11
|
uniform mat4 x3d_ModelViewMatrix;
|
|
11
12
|
|
|
12
13
|
in float x3d_FogDepth;
|
|
14
|
+
in vec4 x3d_TexCoord0;
|
|
13
15
|
in vec4 x3d_Color;
|
|
14
16
|
in vec4 x3d_Vertex;
|
|
15
17
|
|
|
16
|
-
out float
|
|
17
|
-
out
|
|
18
|
-
out
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
out vec3 startPosition; // line stipple start
|
|
23
|
-
out vec3 vertexPosition; // current line stipple position
|
|
24
|
-
#endif
|
|
18
|
+
flat out float lengthSoFar; // in px, stipple support
|
|
19
|
+
flat out vec2 startPoint; // in px, stipple support
|
|
20
|
+
out vec2 midPoint; // in px, stipple support
|
|
21
|
+
out float fogDepth; // fog depth
|
|
22
|
+
out vec4 color; // color
|
|
23
|
+
out vec3 vertex; // point on geometry
|
|
25
24
|
|
|
26
25
|
#ifdef X3D_LOGARITHMIC_DEPTH_BUFFER
|
|
27
26
|
out float depth;
|
|
28
27
|
#endif
|
|
29
28
|
|
|
29
|
+
#pragma X3D include "include/Particle.glsl"
|
|
30
|
+
|
|
30
31
|
void
|
|
31
32
|
main ()
|
|
32
33
|
{
|
|
33
|
-
vec4 position = x3d_ModelViewMatrix * x3d_Vertex;
|
|
34
|
+
vec4 position = x3d_ModelViewMatrix * getVertex (x3d_Vertex);
|
|
34
35
|
|
|
35
|
-
|
|
36
|
-
|
|
36
|
+
lengthSoFar = x3d_TexCoord0 .z;
|
|
37
|
+
startPoint = x3d_TexCoord0 .xy;
|
|
38
|
+
midPoint = x3d_TexCoord0 .xy;
|
|
39
|
+
fogDepth = x3d_FogDepth;
|
|
40
|
+
vertex = position .xyz;
|
|
37
41
|
|
|
38
42
|
gl_Position = x3d_ProjectionMatrix * position;
|
|
39
43
|
|
|
40
|
-
#ifdef X_ITE
|
|
41
|
-
// Line Stipple
|
|
42
|
-
vec4 start = x3d_ProjectionMatrix * x3d_ModelViewMatrix * x3d_TexCoord0;
|
|
43
|
-
|
|
44
|
-
startPosition = start .xyz / start .w;
|
|
45
|
-
vertexPosition = gl_Position .xyz / gl_Position .w;
|
|
46
|
-
#endif
|
|
47
|
-
|
|
48
44
|
#ifdef X3D_LOGARITHMIC_DEPTH_BUFFER
|
|
49
45
|
depth = 1.0 + gl_Position .w;
|
|
50
46
|
#endif
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
#version 300 es
|
|
2
|
+
|
|
3
|
+
precision highp float;
|
|
4
|
+
|
|
5
|
+
uniform vec4 viewport;
|
|
6
|
+
uniform mat4 modelViewProjectionMatrix;
|
|
7
|
+
uniform mat4 invModelViewProjectionMatrix;
|
|
8
|
+
uniform float scale;
|
|
9
|
+
|
|
10
|
+
in float x3d_FogDepth0; in vec4 x3d_Color0; in vec4 x3d_TexCoord0; in vec4 x3d_Vertex0;
|
|
11
|
+
in float x3d_FogDepth1; in vec4 x3d_Color1; in vec4 x3d_TexCoord1; in vec4 x3d_Vertex1;
|
|
12
|
+
|
|
13
|
+
out float fogDepth0; out vec4 color0; out vec4 texCoord0; out vec4 vertex0;
|
|
14
|
+
out float fogDepth1; out vec4 color1; out vec4 texCoord1; out vec4 vertex1;
|
|
15
|
+
out float fogDepth2; out vec4 color2; out vec4 texCoord2; out vec4 vertex2;
|
|
16
|
+
|
|
17
|
+
vec3
|
|
18
|
+
projectPoint (const in vec4 point, const in mat4 modelViewProjectionMatrix, const in vec4 viewport)
|
|
19
|
+
{
|
|
20
|
+
vec4 vin = modelViewProjectionMatrix * point;
|
|
21
|
+
|
|
22
|
+
vin .xyz = vin .xyz / (2.0 * vin .w) + 0.5;
|
|
23
|
+
|
|
24
|
+
return vec3 (vin .xy * viewport .zw + viewport .xy, vin .z);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
vec4
|
|
28
|
+
unProjectPoint (const in vec3 win, const in mat4 invModelViewProjection, const in vec4 viewport)
|
|
29
|
+
{
|
|
30
|
+
vec4 vin = vec4 ((win .xy - viewport .xy) / viewport .zw * 2.0 - 1.0, 2.0 * win .z - 1.0, 1.0);
|
|
31
|
+
|
|
32
|
+
vin = invModelViewProjection * vin;
|
|
33
|
+
|
|
34
|
+
return vec4 (vin .xyz / vin .w, 1.0);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
void
|
|
38
|
+
main ()
|
|
39
|
+
{
|
|
40
|
+
vec3 projected0 = projectPoint (x3d_Vertex0, modelViewProjectionMatrix, viewport);
|
|
41
|
+
vec3 projected1 = projectPoint (x3d_Vertex1, modelViewProjectionMatrix, viewport);
|
|
42
|
+
vec2 direction = normalize (projected1 .xy - projected0 .xy);
|
|
43
|
+
vec2 offset = vec2 (-direction .y, direction .x) * scale;
|
|
44
|
+
|
|
45
|
+
// 0 - 3
|
|
46
|
+
// | \ |
|
|
47
|
+
// 1 - 2
|
|
48
|
+
|
|
49
|
+
if (gl_InstanceID == 0)
|
|
50
|
+
{
|
|
51
|
+
vec2 pq0 = projected0 .xy + offset;
|
|
52
|
+
vec2 pq1 = projected0 .xy - offset;
|
|
53
|
+
vec2 pq2 = projected1 .xy - offset;
|
|
54
|
+
|
|
55
|
+
vec4 p0 = unProjectPoint (vec3 (pq0 .xy, projected0 .z), invModelViewProjectionMatrix, viewport);
|
|
56
|
+
vec4 p1 = unProjectPoint (vec3 (pq1 .xy, projected0 .z), invModelViewProjectionMatrix, viewport);
|
|
57
|
+
vec4 p2 = unProjectPoint (vec3 (pq2 .xy, projected1 .z), invModelViewProjectionMatrix, viewport);
|
|
58
|
+
|
|
59
|
+
fogDepth0 = x3d_FogDepth0; color0 = x3d_Color0; texCoord0 = x3d_TexCoord0; vertex0 = p0;
|
|
60
|
+
fogDepth1 = x3d_FogDepth0; color1 = x3d_Color0; texCoord1 = x3d_TexCoord0; vertex1 = p1;
|
|
61
|
+
fogDepth2 = x3d_FogDepth1; color2 = x3d_Color1; texCoord2 = x3d_TexCoord1; vertex2 = p2;
|
|
62
|
+
}
|
|
63
|
+
else
|
|
64
|
+
{
|
|
65
|
+
vec2 pq0 = projected0 .xy + offset;
|
|
66
|
+
vec2 pq2 = projected1 .xy - offset;
|
|
67
|
+
vec2 pq3 = projected1 .xy + offset;
|
|
68
|
+
|
|
69
|
+
vec4 p0 = unProjectPoint (vec3 (pq0 .xy, projected0 .z), invModelViewProjectionMatrix, viewport);
|
|
70
|
+
vec4 p2 = unProjectPoint (vec3 (pq2 .xy, projected1 .z), invModelViewProjectionMatrix, viewport);
|
|
71
|
+
vec4 p3 = unProjectPoint (vec3 (pq3 .xy, projected1 .z), invModelViewProjectionMatrix, viewport);
|
|
72
|
+
|
|
73
|
+
fogDepth0 = x3d_FogDepth0; color0 = x3d_Color0; texCoord0 = x3d_TexCoord0; vertex0 = p0;
|
|
74
|
+
fogDepth1 = x3d_FogDepth1; color1 = x3d_Color1; texCoord1 = x3d_TexCoord1; vertex1 = p2;
|
|
75
|
+
fogDepth2 = x3d_FogDepth1; color2 = x3d_Color1; texCoord2 = x3d_TexCoord1; vertex2 = p3;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
@@ -8,8 +8,8 @@ precision highp int;
|
|
|
8
8
|
out vec4 x3d_FragColor;
|
|
9
9
|
|
|
10
10
|
uniform int x3d_GeometryType;
|
|
11
|
-
uniform bool x3d_ColorMaterial; // true if a X3DColorNode is attached, otherwise false
|
|
12
11
|
uniform float x3d_AlphaCutoff;
|
|
12
|
+
uniform bool x3d_ColorMaterial; // true if a X3DColorNode is attached, otherwise false
|
|
13
13
|
|
|
14
14
|
uniform int x3d_NumLights;
|
|
15
15
|
uniform x3d_LightSourceParameters x3d_LightSource [x3d_MaxLights];
|
|
@@ -57,7 +57,7 @@ getBaseColor ()
|
|
|
57
57
|
// Get texture color.
|
|
58
58
|
|
|
59
59
|
#if defined(X3D_BASE_TEXTURE)
|
|
60
|
-
|
|
60
|
+
vec3 texCoord = getTexCoord (x3d_BaseTexture .textureTransformMapping, x3d_BaseTexture .textureCoordinateMapping);
|
|
61
61
|
#if defined(X3D_BASE_TEXTURE_2D)
|
|
62
62
|
return baseParameter * SRGBtoLINEAR (texture (x3d_BaseTexture .texture2D, texCoord .st));
|
|
63
63
|
#elif defined(X3D_BASE_TEXTURE_3D)
|
|
@@ -80,7 +80,7 @@ getEmissiveColor ()
|
|
|
80
80
|
// Get texture color.
|
|
81
81
|
|
|
82
82
|
#if defined(X3D_EMISSIVE_TEXTURE)
|
|
83
|
-
|
|
83
|
+
vec3 texCoord = getTexCoord (x3d_EmissiveTexture .textureTransformMapping, x3d_EmissiveTexture .textureCoordinateMapping);
|
|
84
84
|
|
|
85
85
|
#if defined(X3D_EMISSIVE_TEXTURE_2D)
|
|
86
86
|
return emissiveParameter * SRGBtoLINEAR (texture (x3d_EmissiveTexture .texture2D, texCoord .st)) .rgb;
|
|
@@ -106,7 +106,7 @@ getMetallicRoughness ()
|
|
|
106
106
|
// Get texture color.
|
|
107
107
|
|
|
108
108
|
#if defined(X3D_METALLIC_ROUGHNESS_TEXTURE)
|
|
109
|
-
|
|
109
|
+
vec3 texCoord = getTexCoord (x3d_MetallicRoughnessTexture .textureTransformMapping, x3d_MetallicRoughnessTexture .textureCoordinateMapping);
|
|
110
110
|
// Roughness is stored in the 'g' channel, metallic is stored in the 'b' channel.
|
|
111
111
|
// This layout intentionally reserves the 'r' channel for (optional) occlusion map data
|
|
112
112
|
#if defined(X3D_METALLIC_ROUGHNESS_TEXTURE_2D)
|
|
@@ -131,7 +131,7 @@ getOcclusionFactor ()
|
|
|
131
131
|
// Get texture color.
|
|
132
132
|
|
|
133
133
|
#if defined(X3D_OCCLUSION_TEXTURE)
|
|
134
|
-
|
|
134
|
+
vec3 texCoord = getTexCoord (x3d_OcclusionTexture .textureTransformMapping, x3d_OcclusionTexture .textureCoordinateMapping);
|
|
135
135
|
|
|
136
136
|
#if defined(X3D_OCCLUSION_TEXTURE_2D)
|
|
137
137
|
return texture (x3d_OcclusionTexture .texture2D, texCoord .st) .r;
|
|
@@ -331,7 +331,7 @@ main ()
|
|
|
331
331
|
float G = geometricOcclusion (pbrInputs);
|
|
332
332
|
float D = microfacetDistribution (pbrInputs);
|
|
333
333
|
|
|
334
|
-
float attenuationFactor = di ? 1.0 : 1.0 / max (c
|
|
334
|
+
float attenuationFactor = di ? 1.0 : 1.0 / max (dot (c, vec3 (1.0, dL, dL * dL)), 1.0);
|
|
335
335
|
float spotFactor = light .type == x3d_SpotLight ? getSpotFactor (light .cutOffAngle, light .beamWidth, L, d) : 1.0;
|
|
336
336
|
float attenuationSpotFactor = attenuationFactor * spotFactor;
|
|
337
337
|
|