Skip to content

Conversation

BlockCnFuture
Copy link
Contributor

@BlockCnFuture BlockCnFuture commented Aug 5, 2025

Description

I found that during the period between the completion of new material generation and the completion of the new sorting, the drawCommand used the new materials along with the old sorting results, which caused the flickering issue.

I used a simple method to improve the flickering issue of Gaussian Splat by creating a variable that references the address of the old material to ensure it is not affected by the new material, and after the material is generated, I make sure to update _vertexArray (because the length of _indexes staying the same doesn’t necessarily mean no update is needed).

At the same time, I found that !primitive._gaussianSplatTexture is always true, and I’m not sure if this is intentional. Therefore, for now, I don’t need to consider the impact caused by primitive.gaussianSplatTexture.copyFrom.

if (!primitive._gaussianSplatTexture) {

Issue number and link

Fixes #12662

Testing plan

The flickering issue in Gaussian splatting rendering should be improved.

Author checklist

  • I have submitted a Contributor License Agreement
  • I have added my name to CONTRIBUTORS.md
  • I have updated CHANGES.md with a short summary of my change
  • I have performed a self-review of my code

Copy link

github-actions bot commented Aug 5, 2025

Thank you for the pull request, @BlockCnFuture! Welcome to the Cesium community!

In order for us to review your PR, please complete the following steps:

Review Pull Request Guidelines to make sure your PR gets accepted quickly.

@BlockCnFuture
Copy link
Contributor Author

Thank you for the pull request, @BlockCnFuture! Welcome to the Cesium community!

In order for us to review your PR, please complete the following steps:

Review Pull Request Guidelines to make sure your PR gets accepted quickly.

I have signed the CLA.

@BlockCnFuture
Copy link
Contributor Author

before.mp4
after.mp4

@jjhembd
Copy link
Contributor

jjhembd commented Aug 7, 2025

Thanks @BlockCnFuture, I can confirm we have a signed CLA for you now.
@keyboardspecialist do you have any thoughts on the approach here?

@keyboardspecialist
Copy link
Contributor

It's a very simple change with visible results. That's always a bonus. The extra texture memory overhead isn't a huge deal.

I would just say it could be a short lived fix given potential changes happening. But that may not factor into this at all.

I'll do some testing, but initially it looks like a good fix.

@ggetz
Copy link
Contributor

ggetz commented Aug 25, 2025

@keyboardspecialist Were you able to test this at all? If not, what are the next steps so we can help out?

@keyboardspecialist
Copy link
Contributor

@keyboardspecialist Were you able to test this at all? If not, what are the next steps so we can help out?

Yeah, I tested this and pending the other PR checklist items it's good to go.

@ggetz
Copy link
Contributor

ggetz commented Aug 26, 2025

Thanks @keyboardspecialist!

@jjhembd Could you review this PR and ultimately merge once happy?

@ggetz ggetz assigned jjhembd and unassigned keyboardspecialist Aug 26, 2025
@BlockCnFuture
Copy link
Contributor Author

The blank lines in CHANGES.md are likely caused by markdownlint.

Copy link
Contributor

@jjhembd jjhembd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @BlockCnFuture! This looks good to me!

@jjhembd jjhembd added this pull request to the merge queue Sep 6, 2025
Merged via the queue into CesiumGS:main with commit 2723c72 Sep 6, 2025
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

demo 3D Tiles Gaussian Splatting Rendering flickering
4 participants