unitycoder / UnityPointCloudViewer

Point Cloud Viewer and Tools for Unity
https://assetstore.unity.com/packages/tools/utilities/point-cloud-viewer-and-tools-16019?aid=1101lGti
131 stars 15 forks source link

Using TextMeshPro causes point cloud to duplicate #137

Open Tymiec opened 1 year ago

Tymiec commented 1 year ago

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

unitycoder commented 1 year ago

are you using BiRP/URP/HDRP?

Tymiec commented 1 year ago

are you using BiRP/URP/HDRP?

We are using URP

unitycoder commented 1 year ago

ok ill test / check

unitycoder commented 1 year ago

in the meanwhile,

possibly one workaround:

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/com.unity.render-pipelines.universal@7.4/manual/using-begincamerarendering.html

Tymiec commented 1 year ago

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

unitycoder commented 1 year ago

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

Tymiec commented 1 year ago

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