clipping plan on 3dtileset problem

531 views
Skip to first unread message

Cherry

unread,
Feb 14, 2019, 10:16:18 PM2/14/19
to cesium-dev
When you click two point on viewer, the globe will be dug a hole. In my case, I want to dig a hole on 3dtileset, too. But in the follow code, 3dtileset didn't work, how should I do?

Omar Shehata

unread,
Feb 17, 2019, 9:07:08 PM2/17/19
to cesium-dev
This is because clipping planes are relative to the root tile's transform. This is described on the documentation page:


So for example, if you set the the clipping plane at (0,0,0), with a normal facing in the positive X axis, it would clip half the tileset (wheras the same plane would clip half the globe). The easiest way to get a plane to clip a tileset and the globe in the same location is to add a modelMatrix to the ClippingPlaneCollection on the tileset to reverse this transformation to make its coordinate relative to the center of the earth:

tileset.clippingPlanes = new Cesium.ClippingPlaneCollection({
        planes
: clippingPlanes,
        edgeColor
: Cesium.Color.WHITE,
        modelMatrix
: Cesium.Matrix4.inverse(tileset.root.computedTransform, new Cesium.Matrix4())
   
});

You might also want to use viewer.camera.pickEllipsoid instead of pickPosition to get more accurate results when not using terrain. 

clara...@gmail.com

unread,
Jun 5, 2019, 8:42:43 AM6/5/19
to cesium-dev
Hello,

I have been trying to adapt this sandcastle so that the user can draw the hole as a polygon and therefore cut the 3Dtileset in any shape he wants, but I can't get it to work. I've only changed the "hole" function.

Is this because clipping planes are not supported (except for rectangles and triangles) ?

Many thanks for your response, I'm really stucked on this one!

https://cesiumjs.org/Cesium/Build/Apps/Sandcastle/index.html#c=pVZ/b9s2EP0qQoCh8iLQCdoOReIG82wvMZp1gW1sGOIiYKSLRJQiBZJy4gb+7jtSPyzJdpp1/sci+e7du+MdyRVV3orBIyjvoyfg0RuBZnlK/nJz/pvQDUdSGMoEqDe986VYoY1hHDSYtlHx93a8KBb956VYmlzxswowlWIGWuYqBPKgZDrUCJtG/of3v7zrBRatE/l45hmVgxtGa0FTFs5DBSDmGQ1hopRUXg3x8Nfvp/SJpXnahZ15p0uxcZJdOESHIIBkiqXMsBVoQqPIL0NpwL5JmS5kc8G6QT0u9ISKiHfz1XS9AmGuCpBfMoYUTXWVvEwyYTQSvCSrQX5j8TfV8khyDqFhUvg9y7gUD7lwYy+RHPye91wItq4iFt85d+jt9otD26UyBmLTL7LcDAu+isgHG0NNVJEBVSa5kZo5Z7X8kKagKMlY+HXCOcu0ZFHBQLIS7HSapbEsXIqYmTyCuVFMxMhTlQ/Sy1jRLGGhKw87gUsU9TQ990hN8XNp+gc1CRlPLmeTyfzuZjK7mw3H0+Hnpldq/q/TkuH7PqucNb+sjmLf3e4+FzN2rkznWTu9QQUIJXcFX+m1Q3I5G/5TADa9elPtr95vkuU6aRZRHddbF+YYYqxY7Xd2I+gkqrel3wSHin2xzoBcT35f3I2up6NP24b5sVILsYYyTgWqq8OpOL8jYja9vOqoKJRsWn2y10OjazLXnfVSnYJt816DiE2CIIQS7gYtlPOA+btxXqrms6sPuJu+hTCcPTnHv0GL89w7PmY7rSfgCdMXwRMa+cw79k573k9tu7ZByqKq73cLwFYgCr9lXwIbwG3NjuO9JVOcNBX/i9xpzg3L+Pq39TyknCq/QgfeCXkf1Ma9juA820snpEopZ9+gwfMKiZZRsTjZr1Hn90bR0Pjd4P+Tj8P8W9EOExTQrr4CtZcgVFLryjjPXiXnBbqtnuIrKMFdRRI9MjHCbgIFkavd9jXnpmqSE3LSZYiYNlSEsJXhTEgMxt1i43Ld3+Nqf220O2n3WGsu18oqGXWCNmVrNi/cmMt7IBFkJlmANsMYnzjaLEAp/MAA7BPj/KDdTocfEtW4rxtNXRw/eK63eYItAqIY3GnfOfv/vpouJiWuOP1N+VL5UU3uHjqox66+Ros7GWQEHC9GxZ5qZDF8R5hYgdJQPauIkhIVyxTvBIgWigqNR2PaKvXSFOvcynDBbuonjHvr4MxRcDTQZs3holj4laWZVMbDh6dPSN9AirFhJ/Tv8/CrTZJ2D7FBvzIaRGzlsejj8qjz2l0eYTao1rjykHM+xwZaHl0M+ohvmXFJI8zYnxgfp2sLSU4vrotJQsigj8NdKyMlv6eqwfgv
Hello World.html

Omar Shehata

unread,
Jun 5, 2019, 5:11:36 PM6/5/19
to cesium-dev
I think it just might be that that original example was computing the planes based on the assumption that it will always describe a rectangle. You can certainly have a combination of many clipping planes to describe more arbitrary shapes. Here's a Sandcastle example showing this:


You might also find this thread useful which was doing a similar thing, clipping planes made out of arbitrary polygons:


Although the tileset in the examples seems to no longer be accessible. 

clara...@gmail.com

unread,
Jun 7, 2019, 8:46:02 AM6/7/19
to cesium-dev
Hi Omar and thank you for your response, with both examples I managed to make it work!

If anyone is interested, here is the updated Sandcastle that lets the user cut the tileset in any (convex) shape he wants:

https://cesiumjs.org/Cesium/Build/Apps/Sandcastle/index.html#c=pVdtb9s2EP4rWobB8qrQfUmHwkmLpYnXBkvbIM62D3UR0NJFJkKRAkm5cYv89x1J0aZs56WbgSAS+dzdc288aiIGgzEVRU614XD5FkomJmJOVTJn8BVU8joR8DU5As2aivzt1tJe7l6PpDCUCVC9/r6XMYyDBtMV8v9eHF/4zfT7RExMo/gwAE6kOActG5UDuVKyOtQIOynSVy9/2+tnFq1n8uswMaoB91osBK1YPs4VgBjXNIeRUlIlS8itI+TIEp2DAFIrVjHD5qAJLYq0JRrBvklZXch4YzBIOAORVCCaVUg+yAI4OoheJPgrIJdNvbJs14ySDa5cUa4BuYTYSMmn1Aa0kHmDSg0pwYw42Me3C/S310JcONvYXAuZX8vGEKNofp0uGWyD0Lrmi7dMFEyUegXNgmkr47kUrLysJRM2U5+/tARnEgugNjpecyC7cl8wo1yfWfxZ2D6SnENumBRpf2V8huXG1ysrzuUcA/Leg9LWbk5RVFsdrTSxJSLqxhx6/VeN8A9gpfs2PbZSJsZaBKrM7ExqZhErZ3JagaKkZvn1iHNWa8kKL0/qFuxYt1q4FCUzTQFjozDCqCcUOKqXpaL1jOWugO0CblFkE1vuk6WKX1vRD9TMyPHo3floNL48G51fnh8enxx+jK1S83+Nthoetpm0P//kc+8y/D3shbhgeXesZAGQS+4aMbC0r+Sf9ycXI49wnbk00fZQqEZSN3oWl9PSpxfOxWMosUp0upaJrBujfmsCtd9md9XXxaIGcjr64+Ly6PTk6E9fnY+vrRCpqGcOlaILRzNdOtSPgppjhdWcCuQfL2+0Ythow6+gknM45Dz1HB9w6fzk3fuOT4F8x37rwarDT0GUZoYUgkOEu5X9FdDJY3jPnI6Y7RVmPLUQhqtP9/HfQUftfvLkCeuEzYIF3GCUC7hBoZQlT5Jn/eSXrlxXoGJFCNRmedgqDdw/sy/Z0pHPSzu4uLW00n6cj3utVA03zB6yi3FOOVVpQGfJU/IyWwr316jjhNimTkhVUc6+QaTnERStRsXK2XaOupnaWWHSrRH4IUN3G1kxd5jMQ9dJetRWBbmSWgfhpn4UnXvUrfj4p6wFx+LsKkl/Wk5FYqd0//s9OjeSHVTvPkuyoP6267FrsO5kc/3izgU3HD86wTjhG0Q3um3tPhVvecX2KXW2N06cZcf6w7WzFsCtE50ZX3I5BbLR9HfxiEZ91Of+vMFx0NWTrRBQlOCGxLaRkUUzY2Laq9l/5WQH6t187O5juNhfI1BlsHSON2Yp9DDpVlbsoqBTDkWM8LfGCFPZZRzMit0sjfvXPcLEHJSGcDUlSkoMgqxwQEFxoajQeABXnQ5qRbF9rGcufrd2GKzfGPEC+mmqQc0tw/jG2PMMe317nOhcsSmsxuCc8gaW5/mDVUPaANiLl5Vsi257OreAffp/gLuN/2OYr01kZ2cn2znQZsHhjcf8zqpaKpPg90pKyMBAhRJ4QgymTX5t2WsduujncMOPGmCKl/YS6QhMvyqnNN17niXh7yl5FbdrjTMM4zBM9uqbaHkqVQFqV9GCNTrevF0zy+yVpTNlQRmGR9cunoylGNqzH683mxZ3jayHyfOO1bA1lcbIKt5FsweDEKKDgs0TVrye7Kx9Ek52MLxUa9y5ajgf49E82XlzMEB8R4xLau18Qq6cLixk9uzNqV8khBwM8HVTqnUZ4Z7Tgffd4A3IUplBfj2VN8jBJdwK4NcZvhbU0N0pfiEFlG3Lthk99q8aMTBMek5jDy0keWMesLJVrTsF7lSa2E9aTJlmBdiAWg//BQ
Reply all
Reply to author
Forward
0 new messages