Tips & Tricks

From Neos Wiki
Revision as of 22:10, 30 January 2021 by Alex from alaska (talk | contribs) (add assets header)
Jump to navigation Jump to search
Other languages:
English • ‎čeština • ‎日本語 • ‎한국어

Component Tricks

Open Inspector for Referenced Component

When the inspector is displayed click on the small vertical arrow symbol on the left of a reference. This will open up an inspector for the referenced component. The same action can also be triggered by grabbing a reference (shown in blue) and pressing the secondary action on the controller.

Example: Open the inspector for a referenced material.

Performance Profiling your World

Q: Any more tips on performance profiling techniques? I'm seeing Hex glitch every 5 seconds currently so hoping I can whittle that down more, or if I need to just remove some of the more intensive animations?

A: There is a FPS counter visible when the dash menu is open. There is also a component that shows the network traffic. However next to this there aren't any tools in Neos for that right now. Your best bet is to have a checklist:

1. How many separate objects are in your scene? Is it excessive? (2,000+?)

2. How dense is geometry? (GPU handles a lot, but it can impact FPS)

3. Check # of point lights, shadows are expensive to render, lights with a large range are expensive to render

4. Reflections?

5. High overhead materials? (IE: displacement on a heavy mesh)

6. Do you use procedural meshes? You can bake them into static meshes to increase performance.

7. Reusing the same a mesh and material increases performance as this enables GPU instancing.

Assets

Neos and Caching

Neos loves to cache files. meshes, textures, images, anything loaded by sources other than the HTTP GET and HTTP POST nodes are cached very well.

cache breaking: the practice of making neos not cache a file. one way to do so is to add a small amount of data to the URL in the form of a URI Fragment.

an example of this is adding a simple `?v=2` to a link to force a newer version of a file on an external server, or adding `?dt=<UNIX TIME STAMP>` where the unix time stamp of the current time is used.