hotspot invisible take memory ?!!

  • Hello there, i've an issue with a strange things...

    I've all my hotspot writted in a single file...
    i've an action who set my hotspot [visible/invisible] if theses attribute are in the scene or not, but i've finished my Vtour with more than 100 hotspots, and it take memory...

    in my first scene i have only 2 hotspots visible (98 other are visible = false), but my fps down to (20-24), if i remove all of other hotspot and keep only 2 hotspot in the file my fps go to 60...

    Can i put a specific state to my unvisible hotspot to not take memory ? *cursing*

    regards

    2 Mal editiert, zuletzt von ChukA (23. Mai 2020 um 18:35)

  • invisible hotspots take memory for sure,
    but 100 "normal" hotspots should not hog down your FPS from 60 to 20.

    what kind of hotspots are these? very large images?
    if you use a single image file with crop,
    each hotspot probably consumes the full memory needed for that large image.

    you could try:
    - single images for each hotspot
    - inline images (use data uri with base64 in the url)
    - dynamically only add the needed hotspots (addhotspot, removehotspot)

  • Yes it's my option, add and remove dynamicly them but maybe it will be better to use other method.


    i've tested keep="" true/false, but doesn't work...

    they are animated hotspot...


    i'll try to add and remove them...

  • Hi,

    how did you measure the memory need and are you sure the memory need is your problem?

    Visible=false causes no rendering and no hit-testing, but the referenced image gets loaded of course.
    If you don't want an image to get loaded, just don't load it (no hotspot or an empty url).

    But when several hotspot images are using the same 'source' image, that image only gets loaded once and also only one GPU texture is used. That means there would be no additional memory need in this case.

    Best regards,
    Klaus

  • Especially on iPad many hotspots reduce the performance a lot. Well my iPad is the first generation air from 2015
    and maybe they got better since then,

    I have up to 48 infospots using same info.png and most of the popups are just html.

    The panning becomes quite jumpy on scenes with more than 20 especially now after I also got a narrator on each pano.

  • Hello allz,

    My Vtour contains, maybe 60 scenes, each scene have 2-3 hotspots for the navigation and 1-2 hotspots sound...

    All my sounds/hotspots are in a file with attributes, and action will show/play if attributes are valid !

    On my iphone6/ipad2 he can't load the scene... error and reload again and again...

    i've check the FPS and it's drop down ... it's animated hotspot (circle ani_black)

    Other things, when i create dynamicly hotspots they seems to fly/slide a little bit... ?

    If i put them to the tour.xml on the scene it will not fly/slide.

    Einmal editiert, zuletzt von ChukA (25. Mai 2020 um 16:11)

  • i've write a small Average FPS added to the fps.xml,
    it will take the average FPS on the tour... nothing special but it will help me to know when i add some "effect" what does they influence my FPS (on phone etc...)


    <action name="fps_install" autorun="preinit" scope="local">
    delayedcall(0.5,
    addlayer(fps_display);
    set(layer[fps_display],
    type=text,
    keep=true,
    align='lefttop',
    css=calc('font-size:'+(device.mobile AND stagescale LT 1.0 ? 24 : 12)+'px; color:#FFFFFF;'),
    txtshadow='0 0 1 0x000000 1.0',
    bg=false,
    parent=STAGE,
    vr=true,
    enabled=false
    );

    addlayer(bench_display);
    set(layer[bench_display],
    type=text,
    keep=true,
    align='lefttop',
    y='15',
    css=calc('font-size:'+(device.mobile AND stagescale LT 1.0 ? 24 : 12)+'px; color:#FFFFFF;'),
    txtshadow='0 0 1 0x000000 1.0',
    bg=false,
    parent=STAGE,
    vr=true,
    enabled=false
    );

    set(bench_cnt, 1);
    set(average, calc((display.currentfps+0.5) BOR 0));

    setinterval(fps_plugin, 0.25,
    inc(bench_cnt);
    calc(layer[fps_display].html, 'FPS: ' + ((display.currentfps+0.5) BOR 0));

    add(average,calc((display.currentfps+0.5) BOR 0));
    calc(layer[bench_display].html, 'MOY: ' + ((average/bench_cnt) BOR 0));
    );
    );
    </action>

    regards

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!