x_ite 5.0.2 → 6.0.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 +21 -0
- package/Makefile +10 -15
- package/README.md +6 -11
- package/build/bin/dist.pl +0 -6
- package/build/bin/version.pl +1 -4
- package/dist/assets/components/annotation.js +2 -2
- package/dist/assets/components/annotation.min.js +1 -1
- package/dist/assets/components/cad-geometry.js +2 -2
- package/dist/assets/components/cad-geometry.min.js +1 -1
- package/dist/assets/components/cube-map-texturing.js +6 -19
- package/dist/assets/components/cube-map-texturing.min.js +1 -1
- package/dist/assets/components/dis.js +2 -2
- package/dist/assets/components/dis.min.js +1 -1
- package/dist/assets/components/event-utilities.js +3 -3
- package/dist/assets/components/event-utilities.min.js +1 -1
- package/dist/assets/components/geometry2d.js +4 -4
- package/dist/assets/components/geometry2d.min.js +1 -1
- package/dist/assets/components/geospatial.js +32 -1685
- package/dist/assets/components/geospatial.min.js +1 -1
- package/dist/assets/components/h-anim.js +70 -77
- package/dist/assets/components/h-anim.min.js +1 -1
- package/dist/assets/components/key-device-sensor.js +3 -3
- package/dist/assets/components/key-device-sensor.min.js +1 -1
- package/dist/assets/components/layout.js +38 -52
- package/dist/assets/components/layout.min.js +1 -1
- package/dist/assets/components/nurbs.js +277 -194
- package/dist/assets/components/nurbs.min.js +1 -1
- package/dist/assets/components/particle-systems.js +1918 -1658
- package/dist/assets/components/particle-systems.min.js +1 -1
- package/dist/assets/components/picking.js +33 -41
- package/dist/assets/components/picking.min.js +1 -1
- package/dist/assets/components/projective-texture-mapping.js +72 -86
- package/dist/assets/components/projective-texture-mapping.min.js +1 -1
- package/dist/assets/components/rigid-body-physics.js +36 -57
- package/dist/assets/components/rigid-body-physics.min.js +1 -1
- package/dist/assets/components/scripting.js +2 -2
- package/dist/assets/components/scripting.min.js +1 -1
- package/dist/assets/components/texturing-3d.js +26 -75
- package/dist/assets/components/texturing-3d.min.js +3 -3
- package/dist/assets/components/volume-rendering.js +10 -10
- package/dist/assets/components/volume-rendering.min.js +1 -1
- package/dist/assets/components/x_ite.js +2 -2
- package/dist/assets/components/x_ite.min.js +1 -1
- 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/Line.fs +0 -21
- package/dist/assets/shaders/webgl1/Line.vs +0 -10
- package/dist/assets/shaders/webgl1/PBR.vs +1 -1
- package/dist/assets/shaders/webgl2/Depth.vs +29 -1
- package/dist/assets/shaders/webgl2/Gouraud.vs +31 -3
- 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.vs +35 -7
- package/dist/assets/shaders/webgl2/Phong.vs +31 -3
- package/dist/assets/shaders/webgl2/Point.vs +29 -1
- package/dist/assets/shaders/webgl2/Unlit.vs +31 -3
- package/dist/example.html +6 -6
- package/dist/x_ite.css +180 -208
- package/dist/x_ite.js +16477 -16629
- 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 +20 -14
- package/docs/Browser-Support.md +6 -0
- package/docs/Custom-Shaders.md +17 -24
- package/docs/Features.md +7 -1
- 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 +31 -0
- package/docs/XHTML-DOM-Integration.md +6 -0
- package/docs/_config.yml +1 -1
- package/docs/assets/css/main.scss +26 -0
- package/docs/index.md +38 -46
- 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 +6 -0
- package/docs/reference/Field-Services-and-Objects.md +6 -0
- package/docs/reference/Prototype-Services.md +6 -0
- package/docs/reference/Route-Services.md +6 -0
- package/docs/reference/Scene-Services.md +8 -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 +6 -0
- 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/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/Line.fs +3 -28
- package/src/assets/shaders/webgl1/Line.vs +5 -19
- package/src/assets/shaders/webgl1/PBR.vs +1 -1
- package/src/assets/shaders/webgl1/Point.vs +2 -3
- package/src/assets/shaders/webgl2/Depth.vs +4 -1
- package/src/assets/shaders/webgl2/Gouraud.vs +5 -3
- package/src/assets/shaders/webgl2/Line.fs +11 -17
- package/src/assets/shaders/webgl2/Line.vs +16 -20
- package/src/assets/shaders/webgl2/LineTransform.fs +6 -0
- package/src/assets/shaders/webgl2/LineTransform.vs +77 -0
- package/src/assets/shaders/webgl2/PBR.vs +10 -7
- package/src/assets/shaders/webgl2/Phong.vs +6 -3
- package/src/assets/shaders/webgl2/Point.vs +6 -6
- 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/Particle.glsl +36 -0
- package/src/example.html +6 -6
- package/src/standard/Math/Algorithm.js +12 -28
- package/src/standard/Math/Geometry/Plane3.js +0 -2
- package/src/standard/Math/Geometry/ViewVolume.js +88 -83
- 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 +5 -0
- package/src/standard/Math/Numbers/Matrix2.js +20 -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 +7 -0
- package/src/standard/Math/Numbers/Rotation4.js +7 -0
- package/src/standard/Math/Numbers/Vector2.js +8 -5
- package/src/standard/Math/Numbers/Vector3.js +16 -10
- package/src/standard/Math/Numbers/Vector4.js +12 -7
- package/src/standard/Math/Utility/BVH.js +45 -17
- package/src/tests.js +6 -1
- 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 +2 -2
- package/src/x_ite/Browser/Core/BrowserTimings.js +4 -2
- package/src/x_ite/Browser/Core/Context.js +185 -0
- package/src/x_ite/Browser/Core/ContextMenu.js +299 -193
- 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/Layout/ScreenText.js +11 -4
- package/src/x_ite/Browser/Layout/X3DLayoutContext.js +4 -15
- package/src/x_ite/Browser/Navigation/ExamineViewer.js +12 -19
- package/src/x_ite/Browser/Navigation/LookAtViewer.js +0 -3
- package/src/x_ite/Browser/Navigation/PlaneViewer.js +0 -3
- package/src/x_ite/Browser/Navigation/X3DFlyViewer.js +14 -7
- 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 +37 -37
- package/src/x_ite/Browser/Rendering/X3DRenderingContext.js +19 -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/Texturing/X3DTexturingContext.js +23 -33
- package/src/x_ite/Browser/Texturing3D/DICOMParser.js +2 -2
- package/src/x_ite/Browser/Time/X3DTimeContext.js +3 -1
- 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 +35 -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 +0 -1
- 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/X3DChaserNode.js +18 -32
- package/src/x_ite/Components/Followers/X3DDamperNode.js +1 -6
- 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/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/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 +18 -23
- 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 +1 -1
- package/src/x_ite/Components/Navigation/X3DViewpointNode.js +82 -111
- package/src/x_ite/Components/Networking/Anchor.js +10 -4
- 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 +461 -876
- 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 +90 -107
- package/src/x_ite/Components/PointingDeviceSensor/PlaneSensor.js +48 -55
- package/src/x_ite/Components/PointingDeviceSensor/SphereSensor.js +53 -70
- 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 -37
- package/src/x_ite/Components/Rendering/ColorRGBA.js +13 -38
- package/src/x_ite/Components/Rendering/IndexedLineSet.js +12 -4
- package/src/x_ite/Components/Rendering/LineSet.js +21 -13
- package/src/x_ite/Components/Rendering/PointSet.js +21 -13
- package/src/x_ite/Components/Rendering/X3DColorNode.js +13 -0
- package/src/x_ite/Components/Rendering/X3DComposedGeometryNode.js +13 -5
- package/src/x_ite/Components/Rendering/X3DGeometryNode.js +248 -325
- package/src/x_ite/Components/Rendering/X3DLineGeometryNode.js +305 -134
- package/src/x_ite/Components/Rendering/X3DPointGeometryNode.js +99 -122
- 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 +5 -15
- package/src/x_ite/Components/Shaders/Matrix3VertexAttribute.js +7 -24
- package/src/x_ite/Components/Shaders/Matrix4VertexAttribute.js +7 -24
- package/src/x_ite/Components/Shaders/ShaderPart.js +1 -10
- package/src/x_ite/Components/Shaders/X3DProgrammableShaderObject.js +219 -209
- package/src/x_ite/Components/Shaders/X3DShaderNode.js +1 -1
- package/src/x_ite/Components/Shaders/X3DVertexAttributeNode.js +23 -1
- package/src/x_ite/Components/Shape/Appearance.js +12 -0
- 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 +23 -1
- package/src/x_ite/Components/Shape/Shape.js +27 -34
- package/src/x_ite/Components/Sound/Sound.js +30 -40
- package/src/x_ite/Components/Text/Text.js +6 -20
- package/src/x_ite/Components/Texturing/TextureCoordinate.js +5 -26
- package/src/x_ite/Components/Texturing/TextureProperties.js +4 -4
- package/src/x_ite/Components/Texturing/X3DSingleTextureCoordinateNode.js +21 -0
- 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 -26
- package/src/x_ite/Components/Texturing3D/TextureCoordinate4D.js +5 -26
- package/src/x_ite/Components/Texturing3D/X3DTexture3DNode.js +12 -19
- package/src/x_ite/Components/VolumeRendering/X3DVolumeDataNode.js +7 -7
- 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/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 +4 -0
- 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 +101 -0
- package/src/x_ite/Rendering/X3DRenderObject.js +123 -144
- package/src/x_ite/X3D.js +32 -26
- package/src/x_ite.config.js +0 -5
- package/src/x_ite.css +200 -162
- package/src/x_ite.html +26 -10
- package/src/x_ite.js +42 -0
- package/x_ite.min.html +26 -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
|
@@ -1,14 +1,42 @@
|
|
|
1
1
|
#version 300 es
|
|
2
2
|
precision highp float;
|
|
3
3
|
precision highp int;
|
|
4
|
+
precision highp sampler2D;
|
|
4
5
|
uniform mat4 x3d_ProjectionMatrix;
|
|
5
6
|
uniform mat4 x3d_ModelViewMatrix;
|
|
6
7
|
in vec4 x3d_Vertex;
|
|
7
8
|
out vec3 vertex;
|
|
9
|
+
in vec4 x3d_Particle;
|
|
10
|
+
in mat4 x3d_ParticleMatrix;
|
|
11
|
+
uniform sampler2D x3d_TexCoordRamp;
|
|
12
|
+
vec4
|
|
13
|
+
texelFetch (const in sampler2D sampler, const in int index, const in int lod)
|
|
14
|
+
{
|
|
15
|
+
int x = textureSize (sampler, lod) .x;
|
|
16
|
+
ivec2 p = ivec2 (index % x, index / x);
|
|
17
|
+
vec4 t = texelFetch (sampler, p, lod);
|
|
18
|
+
return t;
|
|
19
|
+
}
|
|
20
|
+
vec4
|
|
21
|
+
getVertex (const in vec4 vertex)
|
|
22
|
+
{
|
|
23
|
+
if (x3d_Particle [0] == 0.0)
|
|
24
|
+
return vertex;
|
|
25
|
+
return x3d_ParticleMatrix * vertex;
|
|
26
|
+
}
|
|
27
|
+
vec4
|
|
28
|
+
getTexCoord (const in vec4 texCoord)
|
|
29
|
+
{
|
|
30
|
+
int index0 = int (x3d_Particle [3]);
|
|
31
|
+
if (x3d_Particle [0] == 0.0 || index0 == -1)
|
|
32
|
+
return texCoord;
|
|
33
|
+
const int map [6] = int [6] (0, 1, 2, 0, 2, 3);
|
|
34
|
+
return texelFetch (x3d_TexCoordRamp, index0 + map [gl_VertexID % 6], 0);
|
|
35
|
+
}
|
|
8
36
|
void
|
|
9
37
|
main ()
|
|
10
38
|
{
|
|
11
|
-
vec4 position = x3d_ModelViewMatrix * x3d_Vertex;
|
|
39
|
+
vec4 position = x3d_ModelViewMatrix * getVertex (x3d_Vertex);
|
|
12
40
|
vertex = position .xyz;
|
|
13
41
|
gl_Position = x3d_ProjectionMatrix * position;
|
|
14
42
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
#version 300 es
|
|
2
2
|
precision highp float;
|
|
3
3
|
precision highp int;
|
|
4
|
+
precision highp sampler2D;
|
|
4
5
|
uniform mat3 x3d_NormalMatrix;
|
|
5
6
|
uniform mat4 x3d_ProjectionMatrix;
|
|
6
7
|
uniform mat4 x3d_ModelViewMatrix;
|
|
@@ -34,6 +35,33 @@ out vec4 texCoord1;
|
|
|
34
35
|
#ifdef X3D_LOGARITHMIC_DEPTH_BUFFER
|
|
35
36
|
out float depth;
|
|
36
37
|
#endif
|
|
38
|
+
in vec4 x3d_Particle;
|
|
39
|
+
in mat4 x3d_ParticleMatrix;
|
|
40
|
+
uniform sampler2D x3d_TexCoordRamp;
|
|
41
|
+
vec4
|
|
42
|
+
texelFetch (const in sampler2D sampler, const in int index, const in int lod)
|
|
43
|
+
{
|
|
44
|
+
int x = textureSize (sampler, lod) .x;
|
|
45
|
+
ivec2 p = ivec2 (index % x, index / x);
|
|
46
|
+
vec4 t = texelFetch (sampler, p, lod);
|
|
47
|
+
return t;
|
|
48
|
+
}
|
|
49
|
+
vec4
|
|
50
|
+
getVertex (const in vec4 vertex)
|
|
51
|
+
{
|
|
52
|
+
if (x3d_Particle [0] == 0.0)
|
|
53
|
+
return vertex;
|
|
54
|
+
return x3d_ParticleMatrix * vertex;
|
|
55
|
+
}
|
|
56
|
+
vec4
|
|
57
|
+
getTexCoord (const in vec4 texCoord)
|
|
58
|
+
{
|
|
59
|
+
int index0 = int (x3d_Particle [3]);
|
|
60
|
+
if (x3d_Particle [0] == 0.0 || index0 == -1)
|
|
61
|
+
return texCoord;
|
|
62
|
+
const int map [6] = int [6] (0, 1, 2, 0, 2, 3);
|
|
63
|
+
return texelFetch (x3d_TexCoordRamp, index0 + map [gl_VertexID % 6], 0);
|
|
64
|
+
}
|
|
37
65
|
float
|
|
38
66
|
getSpotFactor (const in float cutOffAngle, const in float beamWidth, const in vec3 L, const in vec3 d)
|
|
39
67
|
{
|
|
@@ -86,17 +114,17 @@ return vec4 (clamp (finalColor, 0.0, 1.0), alpha);
|
|
|
86
114
|
void
|
|
87
115
|
main ()
|
|
88
116
|
{
|
|
89
|
-
vec4 position = x3d_ModelViewMatrix * x3d_Vertex;
|
|
117
|
+
vec4 position = x3d_ModelViewMatrix * getVertex (x3d_Vertex);
|
|
90
118
|
fogDepth = x3d_FogDepth;
|
|
91
119
|
vertex = position .xyz;
|
|
92
120
|
normal = normalize (x3d_NormalMatrix * x3d_Normal);
|
|
93
121
|
localNormal = x3d_Normal;
|
|
94
122
|
localVertex = x3d_Vertex .xyz;
|
|
95
123
|
#if x3d_MaxTextures > 0
|
|
96
|
-
texCoord0 = x3d_TexCoord0;
|
|
124
|
+
texCoord0 = getTexCoord (x3d_TexCoord0);
|
|
97
125
|
#endif
|
|
98
126
|
#if x3d_MaxTextures > 1
|
|
99
|
-
texCoord1 = x3d_TexCoord1;
|
|
127
|
+
texCoord1 = getTexCoord (x3d_TexCoord1);
|
|
100
128
|
#endif
|
|
101
129
|
gl_Position = x3d_ProjectionMatrix * position;
|
|
102
130
|
#ifdef X3D_LOGARITHMIC_DEPTH_BUFFER
|
|
@@ -4,13 +4,12 @@ precision highp int;
|
|
|
4
4
|
uniform float x3d_AlphaCutoff;
|
|
5
5
|
uniform x3d_LinePropertiesParameters x3d_LineProperties;
|
|
6
6
|
uniform ivec4 x3d_Viewport;
|
|
7
|
+
flat in float lengthSoFar;
|
|
8
|
+
flat in vec2 startPoint;
|
|
9
|
+
in vec2 midPoint;
|
|
7
10
|
in float fogDepth;
|
|
8
11
|
in vec4 color;
|
|
9
12
|
in vec3 vertex;
|
|
10
|
-
#ifdef X_ITE
|
|
11
|
-
in vec3 startPosition;
|
|
12
|
-
in vec3 vertexPosition;
|
|
13
|
-
#endif
|
|
14
13
|
#ifdef X3D_LOGARITHMIC_DEPTH_BUFFER
|
|
15
14
|
uniform float x3d_LogarithmicFarFactor1_2;
|
|
16
15
|
in float depth;
|
|
@@ -64,27 +63,40 @@ if (dot (vertex, x3d_ClipPlane [i] .xyz) - x3d_ClipPlane [i] .w < 0.0)
|
|
|
64
63
|
discard;
|
|
65
64
|
}
|
|
66
65
|
}
|
|
67
|
-
|
|
66
|
+
struct Line2
|
|
67
|
+
{
|
|
68
|
+
vec2 point;
|
|
69
|
+
vec2 direction;
|
|
70
|
+
};
|
|
71
|
+
Line2
|
|
72
|
+
line2 (const in vec2 point1, const in vec2 point2)
|
|
73
|
+
{
|
|
74
|
+
return Line2 (point1, normalize (point2 - point1));
|
|
75
|
+
}
|
|
76
|
+
vec2
|
|
77
|
+
closest_point (const in Line2 line, const in vec2 point)
|
|
78
|
+
{
|
|
79
|
+
vec2 r = point - line .point;
|
|
80
|
+
float d = dot (r, line .direction);
|
|
81
|
+
return line .direction * d + line .point;
|
|
82
|
+
}
|
|
68
83
|
void
|
|
69
84
|
stipple ()
|
|
70
85
|
{
|
|
71
86
|
if (x3d_LineProperties .applied)
|
|
72
87
|
{
|
|
73
|
-
vec2
|
|
74
|
-
float
|
|
75
|
-
float
|
|
76
|
-
if (
|
|
88
|
+
vec2 point = closest_point (line2 (startPoint, midPoint), gl_FragCoord .xy);
|
|
89
|
+
float s = (lengthSoFar + length (point - startPoint)) * x3d_LineProperties .lineStippleScale;
|
|
90
|
+
float alpha = texture (x3d_LineProperties .linetype, vec2 (s, 0.5)) .a;
|
|
91
|
+
if (alpha != 1.0)
|
|
77
92
|
discard;
|
|
78
93
|
}
|
|
79
94
|
}
|
|
80
|
-
#endif
|
|
81
95
|
void
|
|
82
96
|
main ()
|
|
83
97
|
{
|
|
84
98
|
clip ();
|
|
85
|
-
#ifdef X_ITE
|
|
86
99
|
stipple ();
|
|
87
|
-
#endif
|
|
88
100
|
vec4 finalColor = vec4 (0.0);
|
|
89
101
|
finalColor .rgb = getFogColor (color .rgb);
|
|
90
102
|
finalColor .a = color .a;
|
|
@@ -1,36 +1,61 @@
|
|
|
1
1
|
#version 300 es
|
|
2
2
|
precision highp float;
|
|
3
3
|
precision highp int;
|
|
4
|
+
precision highp sampler2D;
|
|
4
5
|
uniform bool x3d_ColorMaterial;
|
|
5
6
|
uniform x3d_UnlitMaterialParameters x3d_Material;
|
|
6
7
|
uniform mat4 x3d_ProjectionMatrix;
|
|
7
8
|
uniform mat4 x3d_ModelViewMatrix;
|
|
8
9
|
in float x3d_FogDepth;
|
|
10
|
+
in vec4 x3d_TexCoord0;
|
|
9
11
|
in vec4 x3d_Color;
|
|
10
12
|
in vec4 x3d_Vertex;
|
|
13
|
+
flat out float lengthSoFar;
|
|
14
|
+
flat out vec2 startPoint;
|
|
15
|
+
out vec2 midPoint;
|
|
11
16
|
out float fogDepth;
|
|
12
17
|
out vec4 color;
|
|
13
18
|
out vec3 vertex;
|
|
14
|
-
#ifdef X_ITE
|
|
15
|
-
in vec4 x3d_TexCoord0;
|
|
16
|
-
out vec3 startPosition;
|
|
17
|
-
out vec3 vertexPosition;
|
|
18
|
-
#endif
|
|
19
19
|
#ifdef X3D_LOGARITHMIC_DEPTH_BUFFER
|
|
20
20
|
out float depth;
|
|
21
21
|
#endif
|
|
22
|
+
in vec4 x3d_Particle;
|
|
23
|
+
in mat4 x3d_ParticleMatrix;
|
|
24
|
+
uniform sampler2D x3d_TexCoordRamp;
|
|
25
|
+
vec4
|
|
26
|
+
texelFetch (const in sampler2D sampler, const in int index, const in int lod)
|
|
27
|
+
{
|
|
28
|
+
int x = textureSize (sampler, lod) .x;
|
|
29
|
+
ivec2 p = ivec2 (index % x, index / x);
|
|
30
|
+
vec4 t = texelFetch (sampler, p, lod);
|
|
31
|
+
return t;
|
|
32
|
+
}
|
|
33
|
+
vec4
|
|
34
|
+
getVertex (const in vec4 vertex)
|
|
35
|
+
{
|
|
36
|
+
if (x3d_Particle [0] == 0.0)
|
|
37
|
+
return vertex;
|
|
38
|
+
return x3d_ParticleMatrix * vertex;
|
|
39
|
+
}
|
|
40
|
+
vec4
|
|
41
|
+
getTexCoord (const in vec4 texCoord)
|
|
42
|
+
{
|
|
43
|
+
int index0 = int (x3d_Particle [3]);
|
|
44
|
+
if (x3d_Particle [0] == 0.0 || index0 == -1)
|
|
45
|
+
return texCoord;
|
|
46
|
+
const int map [6] = int [6] (0, 1, 2, 0, 2, 3);
|
|
47
|
+
return texelFetch (x3d_TexCoordRamp, index0 + map [gl_VertexID % 6], 0);
|
|
48
|
+
}
|
|
22
49
|
void
|
|
23
50
|
main ()
|
|
24
51
|
{
|
|
25
|
-
vec4 position = x3d_ModelViewMatrix * x3d_Vertex;
|
|
52
|
+
vec4 position = x3d_ModelViewMatrix * getVertex (x3d_Vertex);
|
|
53
|
+
lengthSoFar = x3d_TexCoord0 .z;
|
|
54
|
+
startPoint = x3d_TexCoord0 .xy;
|
|
55
|
+
midPoint = x3d_TexCoord0 .xy;
|
|
26
56
|
fogDepth = x3d_FogDepth;
|
|
27
57
|
vertex = position .xyz;
|
|
28
58
|
gl_Position = x3d_ProjectionMatrix * position;
|
|
29
|
-
#ifdef X_ITE
|
|
30
|
-
vec4 start = x3d_ProjectionMatrix * x3d_ModelViewMatrix * x3d_TexCoord0;
|
|
31
|
-
startPosition = start .xyz / start .w;
|
|
32
|
-
vertexPosition = gl_Position .xyz / gl_Position .w;
|
|
33
|
-
#endif
|
|
34
59
|
#ifdef X3D_LOGARITHMIC_DEPTH_BUFFER
|
|
35
60
|
depth = 1.0 + gl_Position .w;
|
|
36
61
|
#endif
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
#version 300 es
|
|
2
|
+
precision highp float;
|
|
3
|
+
uniform vec4 viewport;
|
|
4
|
+
uniform mat4 modelViewProjectionMatrix;
|
|
5
|
+
uniform mat4 invModelViewProjectionMatrix;
|
|
6
|
+
uniform float scale;
|
|
7
|
+
in float x3d_FogDepth0; in vec4 x3d_Color0; in vec4 x3d_TexCoord0; in vec4 x3d_Vertex0;
|
|
8
|
+
in float x3d_FogDepth1; in vec4 x3d_Color1; in vec4 x3d_TexCoord1; in vec4 x3d_Vertex1;
|
|
9
|
+
out float fogDepth0; out vec4 color0; out vec4 texCoord0; out vec4 vertex0;
|
|
10
|
+
out float fogDepth1; out vec4 color1; out vec4 texCoord1; out vec4 vertex1;
|
|
11
|
+
out float fogDepth2; out vec4 color2; out vec4 texCoord2; out vec4 vertex2;
|
|
12
|
+
vec3
|
|
13
|
+
projectPoint (const in vec4 point, const in mat4 modelViewProjectionMatrix, const in vec4 viewport)
|
|
14
|
+
{
|
|
15
|
+
vec4 vin = modelViewProjectionMatrix * point;
|
|
16
|
+
vin .xyz = vin .xyz / (2.0 * vin .w) + 0.5;
|
|
17
|
+
return vec3 (vin .xy * viewport .zw + viewport .xy, vin .z);
|
|
18
|
+
}
|
|
19
|
+
vec4
|
|
20
|
+
unProjectPoint (const in vec3 win, const in mat4 invModelViewProjection, const in vec4 viewport)
|
|
21
|
+
{
|
|
22
|
+
vec4 vin = vec4 ((win .xy - viewport .xy) / viewport .zw * 2.0 - 1.0, 2.0 * win .z - 1.0, 1.0);
|
|
23
|
+
vin = invModelViewProjection * vin;
|
|
24
|
+
return vec4 (vin .xyz / vin .w, 1.0);
|
|
25
|
+
}
|
|
26
|
+
void
|
|
27
|
+
main ()
|
|
28
|
+
{
|
|
29
|
+
vec3 projected0 = projectPoint (x3d_Vertex0, modelViewProjectionMatrix, viewport);
|
|
30
|
+
vec3 projected1 = projectPoint (x3d_Vertex1, modelViewProjectionMatrix, viewport);
|
|
31
|
+
vec2 normal = normalize (projected1 .xy - projected0 .xy);
|
|
32
|
+
vec2 offset = vec2 (-normal .y, normal .x) * scale;
|
|
33
|
+
if (gl_InstanceID == 0)
|
|
34
|
+
{
|
|
35
|
+
vec2 pq0 = projected0 .xy + offset;
|
|
36
|
+
vec2 pq1 = projected0 .xy - offset;
|
|
37
|
+
vec2 pq2 = projected1 .xy - offset;
|
|
38
|
+
vec4 p0 = unProjectPoint (vec3 (pq0 .xy, projected0 .z), invModelViewProjectionMatrix, viewport);
|
|
39
|
+
vec4 p1 = unProjectPoint (vec3 (pq1 .xy, projected0 .z), invModelViewProjectionMatrix, viewport);
|
|
40
|
+
vec4 p2 = unProjectPoint (vec3 (pq2 .xy, projected1 .z), invModelViewProjectionMatrix, viewport);
|
|
41
|
+
fogDepth0 = x3d_FogDepth0; color0 = x3d_Color0; texCoord0 = x3d_TexCoord0; vertex0 = p0;
|
|
42
|
+
fogDepth1 = x3d_FogDepth0; color1 = x3d_Color0; texCoord1 = x3d_TexCoord0; vertex1 = p1;
|
|
43
|
+
fogDepth2 = x3d_FogDepth1; color2 = x3d_Color1; texCoord2 = x3d_TexCoord1; vertex2 = p2;
|
|
44
|
+
}
|
|
45
|
+
else
|
|
46
|
+
{
|
|
47
|
+
vec2 pq0 = projected0 .xy + offset;
|
|
48
|
+
vec2 pq2 = projected1 .xy - offset;
|
|
49
|
+
vec2 pq3 = projected1 .xy + offset;
|
|
50
|
+
vec4 p0 = unProjectPoint (vec3 (pq0 .xy, projected0 .z), invModelViewProjectionMatrix, viewport);
|
|
51
|
+
vec4 p2 = unProjectPoint (vec3 (pq2 .xy, projected1 .z), invModelViewProjectionMatrix, viewport);
|
|
52
|
+
vec4 p3 = unProjectPoint (vec3 (pq3 .xy, projected1 .z), invModelViewProjectionMatrix, viewport);
|
|
53
|
+
fogDepth0 = x3d_FogDepth0; color0 = x3d_Color0; texCoord0 = x3d_TexCoord0; vertex0 = p0;
|
|
54
|
+
fogDepth1 = x3d_FogDepth1; color1 = x3d_Color1; texCoord1 = x3d_TexCoord1; vertex1 = p2;
|
|
55
|
+
fogDepth2 = x3d_FogDepth1; color2 = x3d_Color1; texCoord2 = x3d_TexCoord1; vertex2 = p3;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
#version 300 es
|
|
2
2
|
precision highp float;
|
|
3
3
|
precision highp int;
|
|
4
|
+
precision highp sampler2D;
|
|
4
5
|
uniform mat4 x3d_ProjectionMatrix;
|
|
5
6
|
uniform mat4 x3d_ModelViewMatrix;
|
|
6
7
|
uniform mat3 x3d_NormalMatrix;
|
|
7
|
-
in vec4
|
|
8
|
-
in vec3 x3d_Normal;
|
|
8
|
+
in vec4 x3d_Color;
|
|
9
9
|
in vec4 x3d_TexCoord0;
|
|
10
10
|
in vec4 x3d_TexCoord1;
|
|
11
|
-
in
|
|
11
|
+
in vec3 x3d_Normal;
|
|
12
|
+
in vec4 x3d_Vertex;
|
|
12
13
|
out vec3 vertex;
|
|
13
14
|
out vec3 normal;
|
|
14
15
|
out vec4 texCoord0;
|
|
@@ -19,14 +20,41 @@ out vec3 localVertex;
|
|
|
19
20
|
#ifdef X3D_LOGARITHMIC_DEPTH_BUFFER
|
|
20
21
|
out float depth;
|
|
21
22
|
#endif
|
|
23
|
+
in vec4 x3d_Particle;
|
|
24
|
+
in mat4 x3d_ParticleMatrix;
|
|
25
|
+
uniform sampler2D x3d_TexCoordRamp;
|
|
26
|
+
vec4
|
|
27
|
+
texelFetch (const in sampler2D sampler, const in int index, const in int lod)
|
|
28
|
+
{
|
|
29
|
+
int x = textureSize (sampler, lod) .x;
|
|
30
|
+
ivec2 p = ivec2 (index % x, index / x);
|
|
31
|
+
vec4 t = texelFetch (sampler, p, lod);
|
|
32
|
+
return t;
|
|
33
|
+
}
|
|
34
|
+
vec4
|
|
35
|
+
getVertex (const in vec4 vertex)
|
|
36
|
+
{
|
|
37
|
+
if (x3d_Particle [0] == 0.0)
|
|
38
|
+
return vertex;
|
|
39
|
+
return x3d_ParticleMatrix * vertex;
|
|
40
|
+
}
|
|
41
|
+
vec4
|
|
42
|
+
getTexCoord (const in vec4 texCoord)
|
|
43
|
+
{
|
|
44
|
+
int index0 = int (x3d_Particle [3]);
|
|
45
|
+
if (x3d_Particle [0] == 0.0 || index0 == -1)
|
|
46
|
+
return texCoord;
|
|
47
|
+
const int map [6] = int [6] (0, 1, 2, 0, 2, 3);
|
|
48
|
+
return texelFetch (x3d_TexCoordRamp, index0 + map [gl_VertexID % 6], 0);
|
|
49
|
+
}
|
|
22
50
|
void
|
|
23
51
|
main ()
|
|
24
52
|
{
|
|
25
|
-
vec4 position = x3d_ModelViewMatrix * x3d_Vertex;
|
|
53
|
+
vec4 position = x3d_ModelViewMatrix * getVertex (x3d_Vertex);
|
|
26
54
|
vertex = position .xyz;
|
|
27
|
-
normal =
|
|
28
|
-
texCoord0 = x3d_TexCoord0;
|
|
29
|
-
texCoord1 = x3d_TexCoord1;
|
|
55
|
+
normal = x3d_NormalMatrix * x3d_Normal;
|
|
56
|
+
texCoord0 = getTexCoord (x3d_TexCoord0);
|
|
57
|
+
texCoord1 = getTexCoord (x3d_TexCoord1);
|
|
30
58
|
color = x3d_Color;
|
|
31
59
|
localNormal = x3d_Normal;
|
|
32
60
|
localVertex = x3d_Vertex .xyz;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
#version 300 es
|
|
2
2
|
precision highp float;
|
|
3
3
|
precision highp int;
|
|
4
|
+
precision highp sampler2D;
|
|
4
5
|
uniform mat3 x3d_NormalMatrix;
|
|
5
6
|
uniform mat4 x3d_ProjectionMatrix;
|
|
6
7
|
uniform mat4 x3d_ModelViewMatrix;
|
|
@@ -29,10 +30,37 @@ out vec4 texCoord1;
|
|
|
29
30
|
#ifdef X3D_LOGARITHMIC_DEPTH_BUFFER
|
|
30
31
|
out float depth;
|
|
31
32
|
#endif
|
|
33
|
+
in vec4 x3d_Particle;
|
|
34
|
+
in mat4 x3d_ParticleMatrix;
|
|
35
|
+
uniform sampler2D x3d_TexCoordRamp;
|
|
36
|
+
vec4
|
|
37
|
+
texelFetch (const in sampler2D sampler, const in int index, const in int lod)
|
|
38
|
+
{
|
|
39
|
+
int x = textureSize (sampler, lod) .x;
|
|
40
|
+
ivec2 p = ivec2 (index % x, index / x);
|
|
41
|
+
vec4 t = texelFetch (sampler, p, lod);
|
|
42
|
+
return t;
|
|
43
|
+
}
|
|
44
|
+
vec4
|
|
45
|
+
getVertex (const in vec4 vertex)
|
|
46
|
+
{
|
|
47
|
+
if (x3d_Particle [0] == 0.0)
|
|
48
|
+
return vertex;
|
|
49
|
+
return x3d_ParticleMatrix * vertex;
|
|
50
|
+
}
|
|
51
|
+
vec4
|
|
52
|
+
getTexCoord (const in vec4 texCoord)
|
|
53
|
+
{
|
|
54
|
+
int index0 = int (x3d_Particle [3]);
|
|
55
|
+
if (x3d_Particle [0] == 0.0 || index0 == -1)
|
|
56
|
+
return texCoord;
|
|
57
|
+
const int map [6] = int [6] (0, 1, 2, 0, 2, 3);
|
|
58
|
+
return texelFetch (x3d_TexCoordRamp, index0 + map [gl_VertexID % 6], 0);
|
|
59
|
+
}
|
|
32
60
|
void
|
|
33
61
|
main ()
|
|
34
62
|
{
|
|
35
|
-
vec4 position = x3d_ModelViewMatrix * x3d_Vertex;
|
|
63
|
+
vec4 position = x3d_ModelViewMatrix * getVertex (x3d_Vertex);
|
|
36
64
|
fogDepth = x3d_FogDepth;
|
|
37
65
|
color = x3d_Color;
|
|
38
66
|
normal = x3d_NormalMatrix * x3d_Normal;
|
|
@@ -40,10 +68,10 @@ vertex = position .xyz;
|
|
|
40
68
|
localNormal = x3d_Normal;
|
|
41
69
|
localVertex = x3d_Vertex .xyz;
|
|
42
70
|
#if x3d_MaxTextures > 0
|
|
43
|
-
texCoord0 = x3d_TexCoord0;
|
|
71
|
+
texCoord0 = getTexCoord (x3d_TexCoord0);
|
|
44
72
|
#endif
|
|
45
73
|
#if x3d_MaxTextures > 1
|
|
46
|
-
texCoord1 = x3d_TexCoord1;
|
|
74
|
+
texCoord1 = getTexCoord (x3d_TexCoord1);
|
|
47
75
|
#endif
|
|
48
76
|
gl_Position = x3d_ProjectionMatrix * position;
|
|
49
77
|
#ifdef X3D_LOGARITHMIC_DEPTH_BUFFER
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
#version 300 es
|
|
2
2
|
precision highp float;
|
|
3
3
|
precision highp int;
|
|
4
|
+
precision highp sampler2D;
|
|
4
5
|
uniform x3d_PointPropertiesParameters x3d_PointProperties;
|
|
5
6
|
uniform bool x3d_ColorMaterial;
|
|
6
7
|
uniform x3d_UnlitMaterialParameters x3d_Material;
|
|
@@ -17,10 +18,37 @@ out vec3 vertex;
|
|
|
17
18
|
#ifdef X3D_LOGARITHMIC_DEPTH_BUFFER
|
|
18
19
|
out float depth;
|
|
19
20
|
#endif
|
|
21
|
+
in vec4 x3d_Particle;
|
|
22
|
+
in mat4 x3d_ParticleMatrix;
|
|
23
|
+
uniform sampler2D x3d_TexCoordRamp;
|
|
24
|
+
vec4
|
|
25
|
+
texelFetch (const in sampler2D sampler, const in int index, const in int lod)
|
|
26
|
+
{
|
|
27
|
+
int x = textureSize (sampler, lod) .x;
|
|
28
|
+
ivec2 p = ivec2 (index % x, index / x);
|
|
29
|
+
vec4 t = texelFetch (sampler, p, lod);
|
|
30
|
+
return t;
|
|
31
|
+
}
|
|
32
|
+
vec4
|
|
33
|
+
getVertex (const in vec4 vertex)
|
|
34
|
+
{
|
|
35
|
+
if (x3d_Particle [0] == 0.0)
|
|
36
|
+
return vertex;
|
|
37
|
+
return x3d_ParticleMatrix * vertex;
|
|
38
|
+
}
|
|
39
|
+
vec4
|
|
40
|
+
getTexCoord (const in vec4 texCoord)
|
|
41
|
+
{
|
|
42
|
+
int index0 = int (x3d_Particle [3]);
|
|
43
|
+
if (x3d_Particle [0] == 0.0 || index0 == -1)
|
|
44
|
+
return texCoord;
|
|
45
|
+
const int map [6] = int [6] (0, 1, 2, 0, 2, 3);
|
|
46
|
+
return texelFetch (x3d_TexCoordRamp, index0 + map [gl_VertexID % 6], 0);
|
|
47
|
+
}
|
|
20
48
|
void
|
|
21
49
|
main ()
|
|
22
50
|
{
|
|
23
|
-
vec4 position = x3d_ModelViewMatrix * x3d_Vertex;
|
|
51
|
+
vec4 position = x3d_ModelViewMatrix * getVertex (x3d_Vertex);
|
|
24
52
|
fogDepth = x3d_FogDepth;
|
|
25
53
|
vertex = position .xyz;
|
|
26
54
|
gl_Position = x3d_ProjectionMatrix * position;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
#version 300 es
|
|
2
2
|
precision highp float;
|
|
3
3
|
precision highp int;
|
|
4
|
+
precision highp sampler2D;
|
|
4
5
|
uniform mat3 x3d_NormalMatrix;
|
|
5
6
|
uniform mat4 x3d_ProjectionMatrix;
|
|
6
7
|
uniform mat4 x3d_ModelViewMatrix;
|
|
@@ -29,10 +30,37 @@ out vec4 texCoord1;
|
|
|
29
30
|
#ifdef X3D_LOGARITHMIC_DEPTH_BUFFER
|
|
30
31
|
out float depth;
|
|
31
32
|
#endif
|
|
33
|
+
in vec4 x3d_Particle;
|
|
34
|
+
in mat4 x3d_ParticleMatrix;
|
|
35
|
+
uniform sampler2D x3d_TexCoordRamp;
|
|
36
|
+
vec4
|
|
37
|
+
texelFetch (const in sampler2D sampler, const in int index, const in int lod)
|
|
38
|
+
{
|
|
39
|
+
int x = textureSize (sampler, lod) .x;
|
|
40
|
+
ivec2 p = ivec2 (index % x, index / x);
|
|
41
|
+
vec4 t = texelFetch (sampler, p, lod);
|
|
42
|
+
return t;
|
|
43
|
+
}
|
|
44
|
+
vec4
|
|
45
|
+
getVertex (const in vec4 vertex)
|
|
46
|
+
{
|
|
47
|
+
if (x3d_Particle [0] == 0.0)
|
|
48
|
+
return vertex;
|
|
49
|
+
return x3d_ParticleMatrix * vertex;
|
|
50
|
+
}
|
|
51
|
+
vec4
|
|
52
|
+
getTexCoord (const in vec4 texCoord)
|
|
53
|
+
{
|
|
54
|
+
int index0 = int (x3d_Particle [3]);
|
|
55
|
+
if (x3d_Particle [0] == 0.0 || index0 == -1)
|
|
56
|
+
return texCoord;
|
|
57
|
+
const int map [6] = int [6] (0, 1, 2, 0, 2, 3);
|
|
58
|
+
return texelFetch (x3d_TexCoordRamp, index0 + map [gl_VertexID % 6], 0);
|
|
59
|
+
}
|
|
32
60
|
void
|
|
33
61
|
main ()
|
|
34
62
|
{
|
|
35
|
-
vec4 position = x3d_ModelViewMatrix * x3d_Vertex;
|
|
63
|
+
vec4 position = x3d_ModelViewMatrix * getVertex (x3d_Vertex);
|
|
36
64
|
fogDepth = x3d_FogDepth;
|
|
37
65
|
color = x3d_Color;
|
|
38
66
|
normal = x3d_NormalMatrix * x3d_Normal;
|
|
@@ -40,10 +68,10 @@ vertex = position .xyz;
|
|
|
40
68
|
localNormal = x3d_Normal;
|
|
41
69
|
localVertex = x3d_Vertex .xyz;
|
|
42
70
|
#if x3d_MaxTextures > 0
|
|
43
|
-
texCoord0 = x3d_TexCoord0;
|
|
71
|
+
texCoord0 = getTexCoord (x3d_TexCoord0);
|
|
44
72
|
#endif
|
|
45
73
|
#if x3d_MaxTextures > 1
|
|
46
|
-
texCoord1 = x3d_TexCoord1;
|
|
74
|
+
texCoord1 = getTexCoord (x3d_TexCoord1);
|
|
47
75
|
#endif
|
|
48
76
|
gl_Position = x3d_ProjectionMatrix * position;
|
|
49
77
|
#ifdef X3D_LOGARITHMIC_DEPTH_BUFFER
|
package/dist/example.html
CHANGED
|
@@ -2,19 +2,19 @@
|
|
|
2
2
|
<html>
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="utf-8"/>
|
|
5
|
-
<
|
|
6
|
-
<script type="text/javascript" src="https://create3000.github.io/code/x_ite/
|
|
5
|
+
<script type="text/javascript" src="x_ite.min.js"></script>
|
|
6
|
+
<!-- <script type="text/javascript" src="https://create3000.github.io/code/x_ite/6.0.0/dist/x_ite.min.js"></script> -->
|
|
7
7
|
<style>
|
|
8
|
-
|
|
8
|
+
x3d-canvas {
|
|
9
9
|
width: 1000px;
|
|
10
10
|
height: 563px;
|
|
11
11
|
}
|
|
12
12
|
</style>
|
|
13
13
|
</head>
|
|
14
14
|
<body>
|
|
15
|
-
<
|
|
15
|
+
<x3d-canvas src="https://create3000.github.io/media/x_ite/info/info.x3d">
|
|
16
16
|
<p>Your browser may not support all features required by X_ITE!</p>
|
|
17
|
-
</
|
|
18
|
-
<p>If
|
|
17
|
+
</x3d-canvas>
|
|
18
|
+
<p>If local files are not loaded <a href="https://create3000.github.io/x_ite/#using-firefox-chrome-and-opera-with-local-files">consider setup a localhost server</a>.</p>
|
|
19
19
|
</body>
|
|
20
20
|
</html>
|