I am trying to do AR Scene in CloudXR with Unreal Engine 4.27. But whenever my object is being is placed on to my scene it appears to be transparent. Is there any way how to fix this?? Is it something to due with the ARCore or the materials? I hope someone can comment on this.
Hmm. That sounds like the alpha channel of your transmitted frame isn’t correct. Can you try dumping frames with the -dump-images
(-d
) flag? You can set this in both client and server, and the files will appear in the log files directory.
https://docs.nvidia.com/cloudxr-sdk/usr_guide/cmd_line_options.html
https://docs.nvidia.com/cloudxr-sdk/support/support.html#log-files
How would i do this on the client of IOS.
Assuming you’re building your own iOS client, then in CXRViewController.swift
, change this line (563, I think):
desc.debugFlags = 0;
to this:
desc.debugFlags = cxrDebugFlags_DumpImages;
On the server side, follow the general directions for how to set command line options for the SteamVR server driver:
https://docs.nvidia.com/cloudxr-sdk/usr_guide/cmd_line_options.html#windows-options
Hey, @jnwmb, sorry about this,
I’m not sure image dumping is implemented in the iOS version of the library. I’m checking now.
Gotcha!
So I’ve confirmed that the iOS client library doesn’t support the dump-frames feature.
However, you can use the the “capture-bitstream” flags on both client and server, and the dump-frames flag on the server. That will get you raw hevc stream saves in the client and server log folders.
@AndreusNvidius And I assume the -capture-client-bitstream will on go on to file called CXRViewController.swift in line 563?
Which will look this in 563
desc.debugFlags = cxrDebugFlags_CaptureClientBitstream;
I think we defined Swift-y versions of these constants and did not keep them updated:
public enum CXRDebugFlags {
case none, logVerbose, logQuiet, logPrivacyDisabled, traceLocalEvents, traceStreamEvents, traceQosStats, dumpImages
}
, and didn’t really maintain them, which collides with the cxrDebugFlags of our library in CloudXRCommon.h
, which is a C enum (and therefore an int), and they are what you must provide to this struct/
For reasons related to upstream library dependencies, you’ll have to declare both client and server debug flags on the client. I think this is approximately right:
let captureServerBitstreamFlag = 0x00010000
let captureClientBitstreamFlag = 0x00020000
desc.debugFlags = captureServerBitstreamFlag | captureServerBitstreamFlag