Commit Graph

49 Commits

Author SHA1 Message Date
AlexandruPopovici ed8d577bc5 Implemented moving streams (as a whole) in the sandbox from the UI. As in change their 3D position in real time 2022-08-03 19:03:43 +03:00
AlexandruPopovici af342b3e3e #827. Finished with multiple streams loading/unloading in the same seesion. Things seem to work correctly, and also there's almost no memory leaking at all upon loading/unloading 2022-08-03 16:58:39 +03:00
AlexandruPopovici 276aa9d578 #827 Fixed an issue where render materials would not properly get vertex colors 2022-08-02 11:44:53 +03:00
AlexandruPopovici cb5dbce73f #827 Fixed another issue related to point clouds and materials 2022-07-29 23:49:52 +03:00
AlexandruPopovici 4955e16b6e #827 Fixed some issues with line materials not correctly initialised 2022-07-29 18:29:50 +03:00
AlexandruPopovici 33fc450377 #827 Fixed an issue with block transformation and displayValues. 2022-07-29 12:27:10 +03:00
AlexandruPopovici 059af4bbc5 Enabled id spoofing. This fixed the somewhat unexplained issues I was having with objects not being picked up by filters 2022-07-28 17:15:04 +03:00
AlexandruPopovici cc8580b8da #828 Eliminated the redundant position attributes for the line geometries. Like for meshes, re-used the original position attributes as the high parts of our encoding 2022-07-27 22:54:45 +03:00
AlexandruPopovici 3ca2d08e18 #828 Implemented the SpeckleMesh which extends three's Mesh and corrects the raycasting implementation to work with the positions encoded as pairs of lows and highs 2022-07-27 21:46:03 +03:00
AlexandruPopovici 9e7c80bb4f #828. Added controlled update and render loops which propagate throught the viewer library 2022-07-27 15:09:46 +03:00
AlexandruPopovici f10dfdac43 #827 Implemented ghost material for points. 2022-07-26 23:35:30 +03:00
AlexandruPopovici 453e83e515 #827 Implemented the colored material (used when filtering by non-numeric properties) for lines as well. 2022-07-26 23:10:52 +03:00
AlexandruPopovici 2e0ddf6153 #828 Implemented the RTE improvements discussed in the blog post 2022-07-26 18:37:27 +03:00
AlexandruPopovici e05af7eafe #728 Removed all references to USE_RTE and THICK_LINES since we're always going to be using these implementaions 2022-07-26 11:01:38 +03:00
AlexandruPopovici 30e985be4a #827. Implemented non-numeric filter-by properties support. Added this functionality to the sandbox as well. 2022-07-22 15:35:34 +03:00
AlexandruPopovici 92009018fc #827. Generalizes all gradient based filtering. We can now filter by any property which is numerical from the sandbox. Implemented ramp texture generation. We will need this to generate the ramp texture for discreet colored filters like filterByType, filterByFamily ,etc 2022-07-22 01:03:01 +03:00
AlexandruPopovici c238cdaa07 #827. Added min/max values when filtering by volume. Some changes to the filtering implementation to avoid redundant tree searches 2022-07-22 00:03:35 +03:00
AlexandruPopovici fdc550a38a #827 Implemented gradient based filtering using ramp texture and per vertex ramp texture index. Implemented filtering by volume in the sandbox, using the gradient filter 2022-07-20 23:59:11 +03:00
AlexandruPopovici dbd3763a5a #827 Added the possibility to visually display the scene's batches as well as to select any object by holding the ctrl key and it will isolate it's entire batch, not just the object. These will be useful for debbuging 2022-07-18 23:43:08 +03:00
AlexandruPopovici fdd03ef821 #828[Debt] Added support for vertex colors on meshes that specify it 2022-07-18 17:00:01 +03:00
AlexandruPopovici a4fa7bb4dd #811 Implemented conveniene method for isolating objets visually, where all other objects are ghosted, like the effect should look like. Fixed an issue with Brep conversion 2022-06-28 11:41:45 +03:00
AlexandruPopovici 65d5aa6659 #811 Added a material for the gradient filter, so we have multiple filter materials to apply. However th gradient material is not fully implemented. It can only do a single solid color. We'll implement the actual gradient of colors in the future 2022-06-27 19:00:20 +03:00
AlexandruPopovici 51596d81b4 Fixed some remaining issues with the filtering API. Made transparent materials to not write to the depth buffer so we don't get false depth test fails. We will see in the future if we want to treat transparent objects differetly, however for now it's going to be fine 2022-06-27 18:51:52 +03:00
AlexandruPopovici 923e835c54 #811 Added the the unload functionality, so we can load/unload stuff in the sandbox. It's currently a bit leaky but we'll fix that. Also we currentyl don;t support multiple paralel streams to be loaded in. I first want to make sure things work properly for 1 stream before having multiple at the same time 2022-06-24 14:20:27 +03:00
AlexandruPopovici d29d2d464c #811 Started working on a debug API for filtering inside the viewer. This API will be used by the upcoming FilteringManager to do the visual work 2022-06-24 00:41:24 +03:00
AlexandruPopovici 11a429f9ca #783 Implemented Point and PointCloud speckle type support for batching and everything else. 2022-06-20 16:39:51 +03:00
AlexandruPopovici dad9acb3e9 #783 Implemented visibility ranges for line batches 2022-06-18 00:07:56 +03:00
AlexandruPopovici d508eb6d5b #783. Implemented separate materal draw ranges for the line batches. Added the Batch common interface and separate the MeshBatch from the LineBatch, both implementing the Batch interface. Selection now works properly for both meshes and lines 2022-06-16 19:40:32 +03:00
AlexandruPopovici 4d764c166c #783 Implemented line batch colouring using an additional InstancedBufferAttribute where each line segment can have it's own color. This way we can know which subset to color differently. Transparency is also supported in theory, but will get to that later on. Also started to split the mesh batch from the line batch since they will be conceptualyl different, but share a common contract 2022-06-16 17:19:41 +03:00
AlexandruPopovici 6084a4849c #783 Implemented picking for the batched meshes 2022-06-15 17:30:04 +03:00
AlexandruPopovici 1846554778 #783 Working on picking and fixing some issues which arose a few days ago regarding some types of lines when I switched to full-tree represenation 2022-06-15 11:13:25 +03:00
AlexandruPopovici 2157631def #783 Fixed an issue where some meshes were left out of batching. Added transparency to materials that require it. Seems to be working fine so far, though we might see issues in the future] 2022-06-14 13:01:04 +03:00
AlexandruPopovici ae46d0ce5e #783 Fixed an issue with batching a single mesh at the end of the batch list. Geometries can now inherit render materals/display styles from their entire hierarchy 2022-06-14 01:26:16 +03:00
AlexandruPopovici b5c6e4ac37 #783 Fixed RTE not working with batched line segments 2022-06-13 22:42:06 +03:00
AlexandruPopovici 6cf41f64c4 #783. Some changes regarding materials, default materials and material hashes 2022-06-13 22:26:41 +03:00
AlexandruPopovici bee051ff49 #783. Implemented line batching. This is actually a big change, since the prevous viewers did not have line batching and it was causing huge performance problems with having to render thousands of lines separately. As expected, batching lines did require a bit of a change to how we render the actual line geometries, but managed to get most of them in. Still need to account for high/low buffer splitting for the individual segments. 2022-06-10 17:08:58 +03:00
AlexandruPopovici 757cc7e666 783. Continued working on batching. Got first batches to render on the screen. A bit messed up, but it's something 2022-06-10 00:08:03 +03:00
AlexandruPopovici f2c11abb23 #783. Started working on the Batcher will will organize the render nodes into batches that minimize draw calls neatly 2022-06-09 18:02:13 +03:00
AlexandruPopovici 665fda37ae #783. Started working on materials and their render tree interaction 2022-06-09 00:10:10 +03:00
AlexandruPopovici 36da0e38e2 #783 Fixed an issue where the display values for non-geometry nodes was ignored 2022-06-07 14:29:49 +03:00
AlexandruPopovici abf636c946 #746. Used vector buffers in the speckle materials to avoid pointless nursery pressure. Some lint-related fixes 2022-05-26 10:20:44 +03:00
AlexandruPopovici 71ce007a08 #746. Added remaining material extensions and replaced them where required. 2022-05-24 12:08:28 +03:00
AlexandruPopovici 81a4de69b2 #746. Figured out how to clamp the world space thick lines to any pixel value when they're screen size width becomes less than 1 pixel and they start to basically dissapear. 2022-05-20 15:57:57 +03:00
AlexandruPopovici 1599970f22 #746 Made the new thick lines work with RTE 2022-05-19 13:05:34 +03:00
AlexandruPopovici 1eb44d00d9 Updated three.js version to 140. Thick lin raycasting now properly works in world space and also the threshold in world space is now accurate. 2022-05-18 11:53:50 +03:00
AlexandruPopovici e574623a43 #746 Fixed an issue with RTE and basic line geometry. Group transforms were not baked into the high and low attributes. Now they work correctly 2022-05-17 22:42:06 +03:00
AlexandruPopovici a3c7dcf408 #746 Implemented RTE for basic line materials (non thick) 2022-05-17 17:53:49 +03:00
AlexandruPopovici 832f537dc7 Added realtime switching between RTE and non-RTE rendering. The speckle materials now have conditional compiling regarding RTE implementation 2022-05-17 15:56:32 +03:00
AlexandruPopovici e3cd5ae1f0 #746 A lot of changes to Geometry. Started integrating RTE with the viewer 2022-05-17 14:52:38 +03:00