I’ve been testing my project to figure out why the performance of my project is significantly worse on desktop chrome than other browsers. I made a timer and a button to hide the Needle Engine component on my website to ensure it is actually Needle Engine that is causing the lag. By eyeballing the timer it seems to be 20+ times slower while the Needle Engine is visible. I also stripped the scene of all scripts and GameObjects except for 4 static objects by disabling them in the inspector in Unity. If I disable the remaining GameObjects it does in fact fix the lag.
I’ve tested desktop chrome against other browsers on 4 machines. On one machine the project runs without lag on Chrome, but the other three do lag. On these machines, even the official sample projects on the Needle Tools website lag. I’ve also tested my project on Chrome on a mobile phone and it did not lag. I believe I have the latest version of Needle Tools installed and I have installed Toktx. There are some warnings to the console for my project which I will attach a screen shot for.
Hello there – we have an experimental AI bot that might be able to help you with your question. Would you like to try this out?
How it works:
Reply to the messages of the bot that end with a thread_id to interact with it and ask follow-up questions. You can also mention the bot directly in this channel to get help.
Performance issues like the one you’re experiencing can be caused by different factors including hardware acceleration settings, browser versions, browser extensions, or specific content within the Needle Engine component that may not be optimized for Chrome on desktop.
Follow these steps to troubleshoot the performance problem:
Update Chrome: Make sure Chrome is on the latest version as updates often include performance improvements.
Browser Extensions: Disable all browser extensions to rule out interference, as some extensions can significantly affect performance.
Hardware Acceleration: Check if hardware acceleration is enabled in Chrome settings (chrome://settings/?search=hardware+acceleration). If it’s enabled, try turning it off to see if there’s any improvement, as some GPU drivers may have issues with certain web content.
Chrome Flags: Reset all Chrome flags to default (chrome://flags/) as some experimental features might cause performance degradation.
Performance Profiling: Use Chrome’s built-in Developer Tools to profile the performance. Press F12 to open Developer Tools, go to the Performance tab, and record a profile while the project is running to see where the bottleneck might be.
Console Warnings: Solve the warnings you mentioned. Sometimes seemingly harmless warnings can hint at deeper issues affecting performance.
Needle Engine Stats: Append ?stats to your website’s URL to display performance statistics provided by Needle Engine. This might give clues on whether the bottleneck is in the rendering, scripting, or something else.
Optimization: Optimize the scene itself. Large textures, complex shaders, and high-poly models can all reduce performance. Try simplifying materials and reducing texture sizes.
Feedback Loop: Share your findings with the team or community. Sometimes others may have encountered similar issues and can provide solutions.
Additionally, since you mentioned you have some console warnings, please fix them first, as they could be related to the performance issues. If after trying these steps the problem persists, and you can confirm it’s not just related to browser or machine-specific issues but tied to Needle Engine, you might want to reach out to Needle Tools support directly or check their FAQ for performance-related tips: Questions and Answers (FAQ) 💡 | Needle Engine Documentation.
Please provide any profiling data, console warnings screenshots, and information about the specific Chrome version and computer hardware you have tested on, as they could help pinpoint the issue further.
The repository only contains the built scene right? - can you share some more info about your project in unity which meshes/materials/components are used?
I believe the repository contains the built scene coming from the deploy to github script as well as the react application for my portfolio. The only objects visible in the scene are the 4 visible floating islands. I’ll take some screen shots in Unity and find the package I got the islands from.
The larger of the two island meshes has 845 vertices while the smaller has around 300. Disabling the colliders may have had a marginal performance increase, but it is still taking several seconds for the timer to increment by 1 second.
That doesnt sound right and is not normal. Which timer do you refer to?
Looking at the scene again: can you complete disable the objects from being included in the export by setting their Tag to EditorOnly (the “Items” GameObject etc - disabling it does just not activate them at runtime but they’re still included in the three.js scene)
The timer is a react component on my site positioned above the Needle Engine. I created it as a debug tool after noticing the lag in the mechanics of my scene. I’ll test it with the EditorOnly tag now
Ok I’ve tested with all the disabled GameObjects tagged as EditorOnly, and I’m clocking about 20 fps with the timer running at a fraction of its normal rate