3drepo / 3drepobouncer

A C++ library providing 3D Repo Scene Graph definition, repository management logic and manipulation logic. It is is essentially the refactored 3DRepoCore and (parts of) 3DRepoGUI
GNU Affero General Public License v3.0
29 stars 13 forks source link

Discrepancy between UV channel size value and the actual values in the buffer #675

Closed carmenfan closed 7 months ago

carmenfan commented 7 months ago

Description

This is completely my fault, with a commit in the last release; https://github.com/3drepo/3drepobouncer/commit/29edc9ee0a3eaa928fcc992ea9d2018a516dc696

If the byte count of the UV channels is 0, we stopped writing a buffer entry for the non existent buffer.

What I overlooked was the UV channel count value slightly above this: https://github.com/3drepo/3drepobouncer/commit/29edc9ee0a3eaa928fcc992ea9d2018a516dc696#diff-8362648406f916c57c5c876e6cda36445ce2de179cc288169c17b503d9f17fbfL457

So we ended up with inconsistent values, where the channel size could be 1 when there is no buffer, causing meshes that has no texture to be grouped together with a textured group in the mesh batching process.

Steps to replicate

Upload these files: https://asitesol.sharepoint.com/:f:/s/3DRepoTeamFolder/EqCt1Y2KtTRFogU39zy0RkcBSTp61pASYLI9HELV_ZxDPA?e=1NYyse

Current Behaviour

in 5.8.1 - this fails during unity when we are reorganising the mesh for bundle generation

Expected Behaviour

should upload successfully (as per 5.6.0)