UnityPointCloudViewer icon indicating copy to clipboard operation
UnityPointCloudViewer copied to clipboard

Using TextMeshPro causes point cloud to duplicate

Open Tymiec opened this issue 3 years ago • 7 comments

For unknown reasons when using TextMeshPro in the scene it causes the point cloud to render two times, presumably once from the main camera as intended and second time from the camera assigned to TextMeshPro even though it is set to be rendered only by MainCamera

also render only main camera in PointCloudViewerTilesDX11 gives an error NullReferenceException: Object reference not set to an instance of an object unitycodercom_PointCloudBinaryViewer.PointCloudViewerTilesDX11.OnRenderObject () (at Assets/PointCloudTools/PointCloudViewerDX11/Scripts/PointCloudViewerTilesDX11.cs:1022) UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr, Boolean&)

Even if you try to workaround the error by coding to use only one camera it still renders using all cameras.

Any suggestions on how to fix that?

Unity 2021.3.1f1

issue

Tymiec avatar Oct 17 '22 12:10 Tymiec

are you using BiRP/URP/HDRP?

unitycoder avatar Oct 17 '22 15:10 unitycoder

are you using BiRP/URP/HDRP?

We are using URP

Tymiec avatar Oct 17 '22 15:10 Tymiec

ok ill test / check

unitycoder avatar Oct 17 '22 16:10 unitycoder

in the meanwhile,

possibly one workaround:

  • Use this custompass feature https://github.com/unitycoder/UnityPointCloudViewer/issues/126
  • add this line there if (renderingData.cameraData.camera.CompareTag("MainCamera") == false) return;
  • image

info about Camera.current being null in URP https://forum.unity.com/threads/camera-current-returns-null-when-calling-it-in-onwillrenderobject-with-universalrp.929880/ so apparently would have to create helper script to detect, what is current camera, and then could feed that into viewer, and exit OnRenderObject early, if not main camera.. https://docs.unity3d.com/Packages/[email protected]/manual/using-begincamerarendering.html

unitycoder avatar Oct 17 '22 17:10 unitycoder

Workaround worked but the second camera that is being used for the interface still renders unless you place it outside of render distance.

Tymiec avatar Oct 17 '22 20:10 Tymiec

does that happen, even if added that on extra line of code? (i didnt see in camera preview at least)

unitycoder avatar Oct 18 '22 12:10 unitycoder

does that happen, even if added that on extra line of code? (i didnt see in camera preview at least)

We focused on URP support and forgot to add the line of code you suggested, now workaround works as intended

Tymiec avatar Oct 18 '22 17:10 Tymiec