Skip to content

Picking issues with tilesets representing "small" models (and massive logging) #1659

Open
@Julot94

Description

@Julot94

What happened?

Hello,
Since a recent version (we experienced it with 2.14.1, but are unsure when the change was integrated exactly), we encounter some picking issues and massive warnings in logs with tilesets representing a "small" geometry (a building, typically).

The warning that we get in UE looks like this:

LogPhysics: Warning: Initialising Body : Scale3D is (nearly) zero: Actor: 'xxx' Component: 'xxxx'

And when this happens, it is no longer possible to pick the corresponding primitives (using UE generic trace methods such as UWorld::LineTraceMultiByObjectType).

After comparing with a previous working version, we found out that it was caused by the scaling by CesiumPrimitiveData::positionScaleFactor (currently defined as 1024.0), which scales up the internal coordinates but (logically ;-)) scales down the primitive's transformation, which then becomes "too small" for UE, which then discards the collision mesh (or at least makes the tracing miss some impacts).

Here is a link to a commit dealing with this scaling factor:
22769c2

One possible workaround could consist in making this scaling factor depend on the tileset's dimensions, but I guess @kring would have more context about the issue that made you introduce this factor (it would be bad to get a regression on the cases this factor was fixing...)

Environment

Cesium for Unreal version: 2.14.1
Unreal Engine Version: 5.3
Operating System: Windows 11 Enterprise

Reproduction steps

  1. As explained, it depends on the dimensions of the model (I have a few examples coming from iTwin)

...

Supporting evidence

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingneeds triageNew issues in need of triage to determine reproducibility, scope, and urgency

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions