10 Frequently asked questions

Q1: Why do the virtual buttons of the Android system occur after the project is packaged?

A: Check: Project setup → Platform → Android → APKPackaging →Enable FullScreent Immersive on KitKat and above devices:


Figure 10.1 Enable Fullscreen Immersive on KitKat and above devices checking

Q2: How to improve the frame rate of the game?

A: To improve the game frame rate, you can start from the following two aspects:

1 ) Turn off the ambient light obscuration. At this phase, the requirements of VR project for global illumination are not too high, the ambient light obscuration can be turned off by opening the project setup, entering the Engine/Rendering/Default Setting, and unchecking Ambient Occlusion and Ambient Occlusion Static Fraction:


Figure 10.2 Ambient light obscuration use cancellation

2 ) Turn off Mobile HDR. The practice is as follows: open the project setup, go to Engine/Rendering/Mobile, and uncheck Mobile HDR:


Figure 10.3 Mobile HDR unchecking

Q3: How to reduce the size of the game pack?

A: The size of the game pack can be decreased from three aspects:

a ) Check Create compressed cooked packages in the project setup / project / package and compress the baked contents;

b ) Uncheck the unused Plugins;

c ) Delete resources that are not used in the Content Browser.


Figure 10.4 Compression of baked contents

Q4: How to optimize the display results?

A: The saw tooth can be effectively reduced and the display effects can be improved after opening the project setup, entering the engine/Rendering/Mobile and adjusting the Mobile MSAA. The higher the multiple, the better the optimization, but it may increase the performance consumption and affect the frame rate.


Figure 10.5 Mobile MSAA modification

Q5: Project naming or path: When using Chinese, why does package failure occur with the PicoVRSDK plugin?

A: UE4 does not support Chinese, please don’t use Chinese and Chinese directories.

Q6: The project is named as test, why does package failure occur with the PicoVRSDK plugin?

A: Test is the command keyword in the UE, as shown in the following figure. It is recommended that the project name should avoid the UE command keyword.


Figure 10.6 UE command keyword

Q7: Why does the G2/ G2 4K controller flash in game from time to time?

A: Because the UE4 game logic is not in the same thread as the rendering, Epic is the motion of the smooth motion controller, it will be defaulted that the position and orientation of the motion controller will be updated before rendering, but this practice will also create a bug in which the model flashes from time to time. To circumvent this flashing, it is only necessary to select the Motion Controller component and check Disable Low Latency Update in its details panel:


Figure 10.7 Disable Low Latency Update

Q8: Why is the demo frame rate for creating a default scene not high?

A: It is not recommended to use the default grid terrain provided by UE4. The terrain is complex and contains noise, normal vector, etc., and is not suitable for use in VR.

Q9: How to use SRGB encoding?

A: In Project Settings -> Plugins -> PicoMobile, check Use SRGB Encoding


Figure 10.8 Use SRGB Encoding

Q10: How to change the application refreshing rate?

A: In Project Settings -> Plugins -> PicoMobile, set “Display Refresh Rates” option to expected value.


Figure 10.9 Display Refresh Rates

Q11:How to set MSAA? Why does it turn back to MSAA 4x even set to 2x or 8x?

A: If there’s no preferred MSAA level, please enable “Use Recommended MSAA Level” from Project Settings -> Plugins -> PicoMobile. When enabled, the device will use the recommended MSAA specified by SDK.Note that enabling “Use Recommended MSAA Level” will block the setup in Project Settings -> Engine -> Rendering -> Mobile. To customize MSAA value, please disable this option.


Figure 10.10 Use Recommended MSAA Level

Q12:How to achieve adequate performance for Neo 3? What is required for optimizing frame rate and scene.


Frame rate:

Neo 3 needs to be stable at 72 frames.


The triangular patch of the model being rendered in the camera view is controlled within 1,000,000

The amount of model vertices being rendered in the camera view is controlled within 1,000,000

Examples of optimization methods:

Reduce the number of fixed points on model faces when guaranteed to be displayed

Share the material and animation

Use a compressed texture format

Use as few lighting effects as possible

Use static batch processing

Optimize scripts to reduce complexity. Limit memory usage, CPU usage and other resources consumption.