CesiumGS / CesiumGS/cesium

pointcloud data in pnts good, but gltf with EXT_structural_metadata failed to render the same

Open
#11,345 7 comments 0 reactions 0 assignees View on GitHub
category - 3d tiles category - model/gltf type - bug
Dominant language
JavaScript
Stars
15.7k
Forks
3.9k
Avg merge
4d 6h
Merged PRs (30d)
34

Description

hi,
we have C++ tools that process point cloud to 3dtiles pnts format, it works fine. Do some special effects with the attributes of the point cloud, eg, display different color , KHR_materials_unlit and so on .
![微信图片_20230608092951(1)](https://github.com/CesiumGS/cesium/assets/4468602/fb659867-141c-42bf-91dc-b493b7abaeb2)

as the new 3dtiles specification comes, 3dtiles next or 3dtiles 1.1 ,whatever we call it , we modified our tool to process point cloud data to glb with extension, but when we load the glbs with the latest cesium, we found some problem in rendering and style setting,
after studying the CesiumJs code(1.105), we are confused with what we found,
1, model.js line from 3003 to 3010
constloader = new GltfLoader(loaderOptions):
is3DTiles = defined(options .content);constconsttype = is3DTiles ? ModelType.TILE GLTF: ModelType.GLTF;
const resource = loaderOptions.gltfResource;
const modelOptions = makeModelOptions(loader, type, options);

the code above : we load glb with pointcloud data inside , there are two types: ModelType.TILE GLTF: ModelType.GLTF;

2 model.js line: 3091
constmodel0ptions = makeModel0ptions(loader, ModelType.TILE PNTS, options);

the code above: load pnts format, we can the special typ for point cloud, ModelType.TILE PNTS.

3 model.js line 3170
const isPnts = this,type === ModelType.TILE PNTS;

we believe the problem is : the new glb format with point clould data, this new format, no where to set ModelType.TILE PNTS. and when CesiumJS renders point cloud data, it still needs this ModelType.TILE PNTS,

Contributor guide

Open the contributing guide

Research direction

Start in model.js around lines 3003-3010, 3091, and 3170, comparing the GLTF and TILE PNTS model types used for point-cloud rendering. Reproduce the reported GLB rendering and styling behavior with the provided point-cloud GLB or equivalent test data, then determine whether the issue remains after current CesiumJS behavior is checked.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
computer-graphics
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.