Search Unity

Mobile AR: Qualcomm vs String

Discussion in 'iOS and tvOS' started by Aron, Jun 27, 2011.

  1. siberman

    siberman

    Joined:
    Oct 12, 2011
    Posts:
    31
    They emailed it to me as an update... maybe email them?
     
  2. knopperchopper

    knopperchopper

    Joined:
    Oct 19, 2011
    Posts:
    2
    Yeah, I did email them, but I'm sure it was after hours. Just curious how they were distributing it as it wasn't very clear in this thread. Hopefully I'll hear back tomorrow. Thanks.
     
  3. siberman

    siberman

    Joined:
    Oct 12, 2011
    Posts:
    31
    Hey - o,

    Is anyone else having a bit of trouble with object orientation?

    I'm exporting FBX from Maya, and everything looks fine, but when i preview in the viewport the model is upside down. Do i have to flip it in MAya and animate upside-down? That sounds pretty crap.
     
  4. iguana_02

    iguana_02

    Joined:
    Apr 22, 2011
    Posts:
    211
    If you are using String it is normal, you have to rotate the object in Unity (180 degrees).
    If you want a better solution just go here:

    http://pixelplacement.com/2011/07/14/introducing-string-manager/

    Its really cool and you will have more options for String (Camera on the top, noise, Live light sampling etc.).
     
  5. siberman

    siberman

    Joined:
    Oct 12, 2011
    Posts:
    31
    That looks amazing, i've been wondering about the lighting, awesome.

    It may not be relevant now, but I just flipped the markers in streaming assets and no more problem. I found flipping in unity could mess with animation.

    Thanks again bro.
     
  6. iguana_02

    iguana_02

    Joined:
    Apr 22, 2011
    Posts:
    211
    You're welcome :)

    PS: The light sampling its amazing i did some experiments with almost dark and the using a torch...it is really cool to see the specular moving according to the real light.
     
  7. siberman

    siberman

    Joined:
    Oct 12, 2011
    Posts:
    31
    Hey,

    Has anyone tried to implement something like the live light sampling in String with Qcar?
     
  8. marjan

    marjan

    Joined:
    Jun 6, 2009
    Posts:
    563
    Hello,
    there is an update for QCAR to 1.5.3 Beta (ios) now, which allows using the camera image as a texture.
    So far i did not get the desired results with this. Seems like the texture is given in an odd way. on iPad 2 i get this information for the textur:

    VideoTextureInfo texInfo.textureSize.x = 1024, texInfo.textureSize.y = 512, texInfo.imageSize.x = 640, texInfo.imageSize.y = 480

    So why is this 1024 x 512?
    Seems like the texturecontainer is 1024 x 512 but the actual image inside is only 640x480 and the right hand side and bottom area is just black.


    Anyways, my main problem is, that about 1/3 of a standard unity plane recieving the texture is black and the image is distorted on one axis.

    in there 1.5.3 Example dealing with video they change the UVs of the plane object. Well this might work on a plane but not with complex models.

    So, anybody knows how to recieve the freakin image blown up to the actual texture dimension without any black?
     
  9. Elecman

    Elecman

    Joined:
    May 5, 2011
    Posts:
    1,371
    Marjan, I had the same problem. I fixed it by offsetting the UV coordinates. You can find the details and the code here:
    https://ar.qualcomm.at/arforums/showthread.php?t=1421

    Even if you don't use a plane but a complex model, it should still work. Just take each UV coordinate which is already mapped correctly and shift it left/right, up/down accordingly. Also, no need to use a separate UV channel. Just sample the existing UV coordinates per vertex and offset it like this:

    Code (csharp):
    1.  
    2.     v2f vert(appdata_base v){
    3.        
    4.         v2f o;
    5.         float2 screenSpacePos;
    6.        
    7.         //convert position from world space to clip space
    8.         o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
    9.        
    10.         //Convert position from clip space to screen space.
    11.         //Screen space has range x=-1 to x=1
    12.         screenSpacePos.x = o.pos.x/o.pos.w;
    13.         screenSpacePos.y = o.pos.y/o.pos.w;
    14.        
    15.         //If the video texture would not be flipped and mirrored,
    16.         //the screeen space range (-1 to 1) has to be converted to
    17.         //the UV range 0 to 1 using this formula:
    18.         //o.uv.x = (0.5f*screenSpacePos.x) + 0.5f;
    19.         //o.uv.y = (0.5f*screenSpacePos.y) + 0.5f;
    20.         //However, due to the fact that the video texture is mirrored
    21.         //and flipped, we have to take this into account:
    22.         o.uv.x = (_ScaleFacX*screenSpacePos.x) + _ScaleFacX;
    23.         o.uv.y = -(_ScaleFacY*screenSpacePos.y) + _ScaleFacY;
    24.        
    25.         return o;
    26.     }
    27.  
     
    Last edited: Jan 18, 2012
  10. marjan

    marjan

    Joined:
    Jun 6, 2009
    Posts:
    563
    Heay elecman,

    thanks a lot, that snippet might be helpfull in the future as i don´t know to much about fragment shaders.
    Unfortunatly i set QCAR up in an older project. All shaders are gl 1.1 shaderlab syntax. So i cannot do this. And i used already 2 UV Sets on models. If i scale those outside the shader, my textures are out of place.

    Its gl es 1 because the project needs to run even on iPhone 3 and its just a lot faster on iPad1.

    On the other hand, since QCar requires gl 2 and a camera, that would mean its anyways rather for newer devices, and i could change shaders to fragment.

    Well its just... with string i could achieve this quite easy with no UV scaling.
     
  11. Elecman

    Elecman

    Joined:
    May 5, 2011
    Posts:
    1,371
    Doing this without a shader would be problematic I think. I guess the only thing left is to nag QCAR to remove the black region from the texture. I already added it to the wish list.

    But just out of curiosity, for what are the two UV channels used for? One for the model texture and one for the environment map (video texture) would be enough it seems...
     
  12. marjan

    marjan

    Joined:
    Jun 6, 2009
    Posts:
    563
    Hi,
    this was a test on a car configurator. First UV is used on the main texture (grayscale, lets say its a diffuse bake, can be color tinted.). Second UV is for decals (Chrome-, plasticparts). Third one is then reflection.
     
  13. tuupola

    tuupola

    Joined:
    Jan 17, 2012
    Posts:
    4
    Does someone have an working email address for String? I am trying to locate String iOS SDK 1.1 to evaluate it for a forthcoming project. However I am using Unity 3.4 which apparently has problems with 1.0. Tried to contact via website but no answer.
     
  14. Elecman

    Elecman

    Joined:
    May 5, 2011
    Posts:
    1,371
    They always write you back if you contact them via the website. As long as the email address you provided is valid of course. But it always takes a long time, sometimes even more then two weeks, so be patient.
     
    Last edited: Jan 19, 2012
  15. tuupola

    tuupola

    Joined:
    Jan 17, 2012
    Posts:
    4
    Got mail from String. Super :)
     
    Last edited: Jan 19, 2012
  16. tuupola

    tuupola

    Joined:
    Jan 17, 2012
    Posts:
    4
    I am able to compile the String Unity Tutorial. Works fine on iPhone. However when running the app in iPad it just gets stuck to Powered By Unity splash screen. While compiling there was two warnings:

    Semantic Issue: Enumeration values 'kScreenOrientationUnknown', 'autorotation', and 'kScreenOrientationCount' not handled in switch

    Semantic Issue: Incompatible pointer types passing 'UIView *' to parameter of type 'EAGLView *'


    XCode 4.2.1 on OSX 10.7.2. Unity 3.4.2f3. String 1.1.1a. iPad 2 with iOS 5.0.1.

    Is this a hopeless combination or should it work?
     
    Last edited: Jan 20, 2012
  17. tuupola

    tuupola

    Joined:
    Jan 17, 2012
    Posts:
    4
    Problem gone. I compiled once for iPhone and then again for iPad and it miraculously started to work. No changes to code in between.
     
  18. benjax

    benjax

    Joined:
    Feb 3, 2012
    Posts:
    1
    Hi, would like to post a question to all, what would be my work flow if i want to make a animated ar, like those in the examples given (the dragon).

    Sorry new to this!
     
  19. ozRocker

    ozRocker

    Joined:
    Feb 7, 2012
    Posts:
    11
    There is no way in a million years I would pay for an AR license that charges per app when I can get a license that requires ONE payment, definitely not one that is per app AND per year!! Also limited to 1 trackable. What String is charging is practically criminal. $499 per app, per year with 1 trackable!! I can't see how their framework is so awesome that it justifies such charges and I doubt you would be able to convince customers to pay that much either. I love AR but I'm realistic and I think the majority of AR services are way overpriced. At the moment its primary use is another form of branding. Like posters, flyers, business cards, websites, but its more interactive and fun. However it does require downloading of apps and a camera device which is a greater deterrent than most people think. The concept is still new to most people so they consider it an experiment to add it to their business. Not many people will pay min $499 per year for a card where a robot pops out and breakdances. With these fees you are really limiting your services to the big companies with a lot of money to throw at advertising.

    I would rather pay someone a one-off fee to create a multiple-view geometry engine than pay $7,000 per app per year. Anyhow, the market will decide. If its a rip-off then no one will be paying for it, simple as that.
     
  20. ludos

    ludos

    Joined:
    Nov 14, 2011
    Posts:
    55
    hi, i wondered how you hid the backside of the model when it's "subversed" in the ground? is this made using a custom shader or is this available somewhere? i assume it writes the depth buffer in a first-pass-rendering with transparency?

    thanks
     
  21. ludos

    ludos

    Joined:
    Nov 14, 2011
    Posts:
    55
    ah found it: for reference it's in qualcoms virtualbuttons package as depthmask.shader material
     
  22. Mickman

    Mickman

    Joined:
    May 9, 2012
    Posts:
    153
    The Little Brown Bear speaks out..

    STRING is CRAP ... can't believe they would charge so much for a less than perfect product.

    Vuforia all the way. Hats off to Vuforia ( great product its FREE ! )

    Forget STRING till they reduce prices. No one in their right mind is going to pay such stupid prices. Unless you are a big mutha of a company with loads of cash to throw around... even then String is still restricted. Who wants a target card with borders... Why bother with a company that really does not give a damn is thinking only about $$$ tried contacting them on numerous occasions but support is really bad... so CYA later

    I reckon they will go bust real quick... QCAR (VUFORIA ) will be the winner here ... easy to predict.

    "STRING" em up .....

    Vuforia iOS is great smooth as... did they mention its Free ! Wow

    FORGET STRING ... GO VUFORIA all the way...
     
    Last edited: Oct 6, 2012
  23. petey

    petey

    Joined:
    May 20, 2009
    Posts:
    1,823
    I've used Vuforia a little and it works great for me, I'm just a little reluctant to add it to an app because of this stuff -

    What does that mean for the end user? Would you have to include this disclaimer in your app?
     
  24. Bluearms

    Bluearms

    Joined:
    Oct 15, 2012
    Posts:
    1
    What worries me about String is that nothing on their website, nor their SDK has been updated since April. I remember talk of a developers forum being launched but there has been nothing. So not only is the cost of String an issue but I have doubts about their future based on their lack of activity. AR is all String so they should be shouting and making lots of noise but even their Facebook page is light on content. I have used Sring and Vuforia and they both have strengths and weaknesses but adding company activity into the mix for me it rules String out and it is a great shame considering their impressive start. Oh and I did drop String an email re my concerns but in a week I've heard nothing back.
     
  25. Elecman

    Elecman

    Joined:
    May 5, 2011
    Posts:
    1,371
    String AR support is indeed terrible as I sometimes have to wait more then 2 weeks to get a reply on an email.

    However, String AR is still being developed. I am on a private Android beta program and it is going to be released in Q3/Q4 2013
     
  26. cecarlsen

    cecarlsen

    Joined:
    Jun 30, 2006
    Posts:
    862
    This thread is a bit old. Does anybody have an updated view of QCAR vs. String? The String licensing sure does suck. Did QCAR improve their tracking algorithm? Is it more snappy now, or the same?

    ~ce
     
  27. dingosmoov

    dingosmoov

    Joined:
    Jul 12, 2005
    Posts:
    559
    Yes is there any further info on this. Any String guys around. When I go to the site these days Google has marked it as a dangerous site. (makes it look like String is out of business).
     
  28. cecarlsen

    cecarlsen

    Joined:
    Jun 30, 2006
    Posts:
    862
    I tried the String demo license because i wanted to compare it to Vuforia, but I encountered linker errors when I ran the exported Xcode project. Vuforia produced linker errors too, but it was easy to find a solution (https://developer.vuforia.com/forum...ion/unity-43-ios-compatibility-and-workaround). So far Vuforia wins.

    Any ideas what to do about Strings linker errors?

    ~ce

    Code (csharp):
    1. Undefined symbols for architecture armv7:
    2.   "_String_SetVideoTextureNames", referenced from:
    3.       RegisterMonoModules() in RegisterMonoModules.o
    4.   "_String_LoadImageMarker", referenced from:
    5.       RegisterMonoModules() in RegisterMonoModules.o
    6.   "_String_UnloadImageMarkers", referenced from:
    7.       RegisterMonoModules() in RegisterMonoModules.o
    8.   "_String_InvokeGUIFunction", referenced from:
    9.       RegisterMonoModules() in RegisterMonoModules.o
    10.   "_String_Mobile_Library_Interface_Version_5", referenced from:
    11.       RegisterMonoModules() in RegisterMonoModules.o
    12.   "_String_GetDeviceVerticalFOV", referenced from:
    13.       RegisterMonoModules() in RegisterMonoModules.o
    14.   "_String_GetCurrentVideoTexture", referenced from:
    15.       RegisterMonoModules() in RegisterMonoModules.o
    16.   "_String_SetProjectionAndViewport", referenced from:
    17.       RegisterMonoModules() in RegisterMonoModules.o
    18.   "_String_GetData", referenced from:
    19.       RegisterMonoModules() in RegisterMonoModules.o
    20.   "_String_EnableAR", referenced from:
    21.       RegisterMonoModules() in RegisterMonoModules.o
    22. ld: symbol(s) not found for architecture armv7
    23. clang: error: linker command failed with exit code 1 (use -v to see invocation)
     
  29. Elecman

    Elecman

    Joined:
    May 5, 2011
    Posts:
    1,371
    Unfortunately the development of the new String beta seems to have stopped. It has been 9 months since the last update and no word of any status.

    The original team which developed String has left and formed another company: http://thisistmrw.com