Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Substance answers !

Discussion in 'General Discussion' started by Jerc, Apr 20, 2011.

Thread Status:
Not open for further replies.
  1. Jerc

    Jerc

    Joined:
    Sep 24, 2010
    Posts:
    300
    Substance Designer 2.5.1 is now priced at $590 (instead of $990) for everyone !
    Head over HERE for the details.
     
  2. Ippokratis

    Ippokratis

    Joined:
    Oct 13, 2008
    Posts:
    1,521
    Hi,
    For the last 2 hours, allegorithmic site is down. If someone has the freeware substance player and can provide it for download ( .exe or/and .dmg ) it would be most appreciated.
    [EDIT] Solved, site is up :)
    Thanks,
    -Ippokratis
     
    Last edited: Jun 5, 2012
  3. fffMalzbier

    fffMalzbier

    Joined:
    Jun 14, 2011
    Posts:
    3,276
    Is there any sign of better support for iOS ?( like runtime texture generation);
     
  4. byocode

    byocode

    Joined:
    Jun 7, 2012
    Posts:
    7
    Hi,

    I am using the latest Unity Build, 3.5.2f2. I am loading and manipulating the Bitmap2Material ProceduralMaterial at runtime. Everything works fine when run in the Unity Editor – but when I run a Flash target build, for some reason the compiler no longer knows what a ‘ProceduralMaterial' is:

    Flash Build Error:
    The type or namespace name `ProceduralMaterial' could not be found. Are you missing a using directive or an assembly reference?

    and when I use "UnityEngine.ProceduralMaterial"

    The type or namespace name `ProceduralMaterial' does not exist in the namespace `UnityEngine'. Are you missing an assembly reference?



    Has anyone else been able to define the ProceduralMaterial class in their C# script and been able to compile when targeting Flash?

    I should mention that Unity compiler has no problem locating ProceduralMaterial when I run the scene the Unity editor, but it can’t link to ProceduralMaterial when running a flash build. I should also mention that when I manually assign Bitmap2Material substance to my meshes in the Unity Editor, as done in the videos, and then deploy to Flash, it works. But I need to work with ProceduralMaterials at runtime.

    Thanks.
     
  5. niosop2

    niosop2

    Joined:
    Jul 23, 2009
    Posts:
    1,059
    Likely runtime access to substances isn't available in flash. It will do the same thing if you try an iOS or Android build. When the build target doesn't support runtime access then it will bake out the textures and include them directly, which is why basic usage will still work, but nothing at runtime.
     
  6. byocode

    byocode

    Joined:
    Jun 7, 2012
    Posts:
    7
    Niosop, Thanks for the feedback. Hopefully support for runtime access for Flash builds (and iOS and Android builds) will be implemented in the near future, since one of the powerful features of the substances is the ability to alter the substance materials at runtime.
     
  7. Desert Raven

    Desert Raven

    Joined:
    Mar 25, 2012
    Posts:
    8
    Ok, I have put it into the search and don't want to read through this entire thread, so here is my question: "how do I apply a substance material to my terrain?"
    Please, in the asset store it is made to look like it can be used for ground textures, so in my book that is on a terrain right?

    Is there maybe a future feature in Unity that one can apply a substance to a terrain or is there already a way to do this?

    hope to here back soon,

    Raven.
     
  8. Jerc

    Jerc

    Joined:
    Sep 24, 2010
    Posts:
    300
  9. Ostwind

    Ostwind

    Joined:
    Mar 22, 2011
    Posts:
    2,804
    Will Unity 4 support Substances properly on mobile platforms?
     
  10. RyuMaster

    RyuMaster

    Joined:
    Sep 13, 2010
    Posts:
    468
    Is there a way to change generated texture size at runtime? SOmetimes I need smaller resolutions for smaller screens.
    targetWidth is Editor only
    input.GetProceduralVector("OutputSize") gives me 0,0,0,0 all the time
     
  11. Deleted User

    Deleted User

    Guest

    Hi,

    I posted this on the allegorithmic forums a few days ago, but I've received no replies

    In the webplayer, when I go to or from fullscreen the Smart Tile textures turn white. I am using AssetBundles. I am not baking the textures. The textures work fine until I switch to/from fullscreen. Has anyone else experienced this? Is there a solution or workaround?

    Thanks,
    Shawn
     
  12. Jerc

    Jerc

    Joined:
    Sep 24, 2010
    Posts:
    300
    Hi Shawn, we are unable to reproduce your behavior. Could you send me a link to a repro case by PM ?
     
  13. RyuMaster

    RyuMaster

    Joined:
    Sep 13, 2010
    Posts:
    468
    For those who are in the same boat, as me, I figured out a solution.
    We can create many substance archives from the sbsar file. each of them can hold own targetWidth and height. So it is matter of creating Editor script, which will batch process all existing substances and populate 1024,512,256 and e.t.c alternative archives to use in the game when needed. Too bad API lacks any functions to do so right now.
     
    Last edited: Jul 1, 2012
  14. Jerc

    Jerc

    Joined:
    Sep 24, 2010
    Posts:
    300
    You can modify the resolution at runtime using "MySubstance.SetProceduralVector("$outputsize",new Vector4(9,9,9,9));"

    9 being actually 2^9 = 512, so 10 will be 1024, etc.

    It's not documented but it's there :)
     
  15. RyuMaster

    RyuMaster

    Joined:
    Sep 13, 2010
    Posts:
    468
    Thanks a lot! I used values like 512 so that's why it never worked for me
     
  16. RyuMaster

    RyuMaster

    Joined:
    Sep 13, 2010
    Posts:
    468
    Jerc, I've been fighting memory problems for a long time now, and I see that my bottleneck are input nodes. Can you please explaing, what is going on behind the scene of input nodes? Because no matter how I try thinking, I can not picture what is going on and optimize my code.

    Test scene:

    Input Color Node ->Output Diffuse
    Both are empty
    Usage set to: RGBA
    When loaded inside unity attached to any script, memory jumps:
    81mb -> 163 mb

    Test scene 2:
    4x Input Color Nodes blended together -> Output Diffuse
    Usage set to: RGB
    When loaded inside unity attached to any script, memory jumps:
    98mb -> 354mb

    Summary:

    Empty Input Color node reserves memory space. OK, but why it takes around 60 mb for 2048x2048 texture? Why it keeps on taking memory, even if object and script is deleted? And even after hitting play/stop/play this substance still eats memory until I restart editor.

    Why usage RGBA->RGB has no effect on Input Color Node? Shouldn't it reserve less space when it is set to RGB or G channel only?

    I hope you can share some light, as I'm out of ideas how to workaround it for my needs :)
     
  17. josszp

    josszp

    Joined:
    Jul 15, 2010
    Posts:
    13
    Same question here!
    You know, access on mobile at runtime is so important for the smaller size resource.
     
  18. Crazy Robot

    Crazy Robot

    Joined:
    Apr 18, 2009
    Posts:
    921
    They've been promising a fix for mobile since day 1, that was a very long time ago! I've given up all hope for Allegorithmic's support for mobile devices.
     
  19. ANTROPO

    ANTROPO

    Joined:
    May 26, 2010
    Posts:
    51
    I guess in SD 3.0. I think I have read it somewhere, but don't know where.
     
  20. Jerc

    Jerc

    Joined:
    Sep 24, 2010
    Posts:
    300
    It's a whole new generation engine that needs to work on very low end platforms rather than just a fix, and that's why it's taking longer than we expected.
     
  21. Zomby138

    Zomby138

    Joined:
    Nov 3, 2009
    Posts:
    659
    How do you expose a BMP input so you can set it within unity ?

    I can expose color inputs and other stuff, but not BMPs.

    I know I've been able to do it in the past, but I can't remember how.
     
  22. caldrin

    caldrin

    Joined:
    Dec 4, 2011
    Posts:
    127
    I was testing out the bitmap2material program but i started having issues with Unity crashing if i had more than 4 materials created with it... Unitys memory usage would just go through the roof and then crash..
     
  23. elias_t

    elias_t

    Joined:
    Sep 17, 2010
    Posts:
    1,367
    I can confirm that too.
     
  24. RyuMaster

    RyuMaster

    Joined:
    Sep 13, 2010
    Posts:
    468
    Color Input Node in substance dsigner == Texture Input inside unity
     
  25. Zomby138

    Zomby138

    Joined:
    Nov 3, 2009
    Posts:
    659
    Thanks Ryu :)

    really though, couldn't that have been more clear somehow?
     
  26. stimarco

    stimarco

    Joined:
    Oct 17, 2007
    Posts:
    721
    It is... but only if you're familiar with creating Substances using Allegorithmic's Substance Designer.

    I write and maintain the docs for Substance Designer and I do make it clear that a "color input" represents any arbitrary image. (Otherwise, all Substances would be limited to flat colours or shades of grey!)

    Unity's docs are another matter. I remember writing some text for them to use a while back, but the audience was assumed to be familiar with the technology and would know what they were and how they worked. The current docs are very much a brief overview, not a detailed breakdown of the technology.

    With the release of Bitmap2Material and all those ready-made Substances, the audience has changed and will likely include many who've never even seen Substance Designer, so maybe a "What are Substances?" primer would be useful.

    I'll look into it. If anyone at UT wants to get in touch, please PM or email me and I'll contact Allegorithmic to see what can be done. (Allegorithmic might prefer to maintain such primers themselves for inclusion with their SDK, so the first question is, who should write such documents? The second is, of course, who gets to pay for it?)
     
    Last edited: Jul 26, 2012
  27. Jake Fox

    Jake Fox

    Joined:
    Jul 17, 2012
    Posts:
    4
    I seem to have found an import problem in substance designer. If you look at the following attachment you will see that a simple cube with a substance and a relief shader produces strange results. I found that this could be remedied by setting the import settings to calculate and setting the smoothing angle to <90. Is there any way to get rid of these artifacts in substance designer or change the way it handles meshes? $uhohcube.jpg
     
  28. mindlube

    mindlube

    Joined:
    Oct 3, 2008
    Posts:
    993
    Congrats to Allegorithmic for publishing their tech demo for Substance on Mobile. (with Unity)
    https://play.google.com/store/apps/details?id=com.allego.windmill
    However, I can't even try it because I don't have a tegra3 device :(
    Please publish for other devices!
    Also please say what the hardware specs will be for Substance on Mobile?
    Why not publish a demo on the iTunes App Store?
    Thanks
     
  29. ronan-thibaudau

    ronan-thibaudau

    Joined:
    Jun 29, 2012
    Posts:
    1,722
    Hello,
    I'm an owner of unity pro / substance designer / the whole substance collection.
    I'm happy with everything so far but i'm having one issue, i can't seem to generate >2048*2048 textures, i would like to be able to have arbitrarily large textures (and i understand the performance costs this implies) is this possible? The only options i see are 512 / 1024 and 2048 within unity (and i want to be able to change settings at runtime, so generating outside unity is a no-no)
     
  30. Jake Fox

    Jake Fox

    Joined:
    Jul 17, 2012
    Posts:
    4
    You could try:
     
  31. ronan-thibaudau

    ronan-thibaudau

    Joined:
    Jun 29, 2012
    Posts:
    1,722
    Is there any way to do this at design time too?
     
  32. Jake Fox

    Jake Fox

    Joined:
    Jul 17, 2012
    Posts:
    4
    Personally, I have only needed to do this during runtime. I'm sure if you email the good folks at Allegorithmic they would be happy to help you (although they seem to be quite busy with sd3 as of late, so it may take a few days to get back to you).
     
  33. ronan-thibaudau

    ronan-thibaudau

    Joined:
    Jun 29, 2012
    Posts:
    1,722
    Will do, thanks for the runtime workaround!
     
  34. caldrin

    caldrin

    Joined:
    Dec 4, 2011
    Posts:
    127
    ah thanks for that link.. also didnt realise i could install to my mobile from the google website from my PC.. nice :)
    Demo is pretty cool and runs pretty well on my HTC One X well it beats all the benchmark scores on ther LOL
     
  35. WillBellJr

    WillBellJr

    Joined:
    Apr 10, 2009
    Posts:
    394
    I see V3 was released - do Unity users still get a percentage off?

    I believe you had to provide them your serial number or some such?

    Is there an order page (link) perhaps?

    -Will
     
  36. Jerc

    Jerc

    Joined:
    Sep 24, 2010
    Posts:
    300
    Yes they still do.
    You got a PM :)
     
    Last edited: Aug 23, 2012
  37. pkid

    pkid

    Joined:
    Jul 10, 2009
    Posts:
    201
    @Jerc - Can you tell me if the ability to use a custom terrain shader in Uinity 4 means that substances can be use with the unity terrain engine now?
     
  38. SevenBits

    SevenBits

    Joined:
    Dec 26, 2011
    Posts:
    1,953
    I don't know, you can check on the new features list though.
     
  39. pkid

    pkid

    Joined:
    Jul 10, 2009
    Posts:
    201
    The new features just say you can have a custom terrain shader, it doesn't specifically mention substances. However I thought that in unity 3 one of the reasons substances couldn't work with the unity terrain system was that they couldn't swap out the built in unity terrain shader with their own. Now they should be able to. If anyone from allegorithmic can shed some light on this I would appreciate it.
     
  40. testingunity

    testingunity

    Joined:
    Aug 27, 2012
    Posts:
    1
    Just wondering. Is there a way to derive a World Space Normal map from a Height or Tangent Space Normal within Substance?
     
  41. Jerc

    Jerc

    Joined:
    Sep 24, 2010
    Posts:
    300
    You can do it in Substance Designer, but not directly from Unity.
     
  42. pkid

    pkid

    Joined:
    Jul 10, 2009
    Posts:
    201
    Can anyone from allegorithmic or Unity answer this? Thanks.
     
  43. Jerc

    Jerc

    Joined:
    Sep 24, 2010
    Posts:
    300
    Unfortunately, the terrain inspector still asks for the "Texture2D" class when importing textures in it, and substance uses the "Texture" class, so still no native support of substances on the terrain, but I will update my Terrain script which adds substance support so it works with Unity 4 at release.
     
  44. pkid

    pkid

    Joined:
    Jul 10, 2009
    Posts:
    201
    Thanks for answering Jerc. I wonder if anyone form Unity could comment on how much effort it would take to get the terrain engine to take in "Texture" class because it just seems like a big disappointment that all of that effort went into integrating substances with Unity but we still can't use substances on the terrain.
     
  45. Toad

    Toad

    Joined:
    Aug 14, 2010
    Posts:
    298
    Have you got any idea when real-time Substances will be supported on mobile devices?
     
  46. stimarco

    stimarco

    Joined:
    Oct 17, 2007
    Posts:
    721
    Allegorithmic only make the middleware and Substance creation tools. They're not responsible for how long it takes their licensees to implement their mobile Substance engine, so your question cannot be answered by anyone from Allegorithmic. (They're likely to be subject to NDAs in any case.)

    No mention has been made of mobile Substance support in 4.0, so I'd expect it to appear in a later 4.x release.
     
  47. mindlube

    mindlube

    Joined:
    Oct 3, 2008
    Posts:
    993
    Sorry but I dont believe that is the case. See previous statement from Jerc of Allegorithmic, in this thread:
    "It's a whole new generation engine that needs to work on very low end platforms rather than just a fix, and that's why it's taking longer than we expected."

    Also see https://play.google.com/store/apps/details?id=com.allego.windmill
    which apparently is a tech demo using Unity. But only for tegra3, so I am guessing this maybe isn't the optimized-for-mobile version of Substance?
     
  48. Jerc

    Jerc

    Joined:
    Sep 24, 2010
    Posts:
    300
    The mobile version has been made available for Unity beta testers for a few weeks already and some of these people are already using it for their game. It won't be in 4.0 as Sean pointed out but it will be there soon :)

    The demo on the Android app store uses the mobile version indeed but it was an early engine that was only optimized to run on Tegra3 devices.
     
  49. stimarco

    stimarco

    Joined:
    Oct 17, 2007
    Posts:
    721
    I think this is a common misconception about complex tools like Unity are made: Unity Technologies don't build it all themselves. Many of the features, like the "Beast" light-mapping system, the "PhysX" physics engine, the Substance smart material support, and even the Mono scripting engine itself are all being developed independently by other teams. (Unity Technologies did buy Mecanim for their animation technology, so that's technically in-house now.)

    Beast is developed by a company now owned by Autodesk.
    PhysX is maintained by NVidia.
    Mono is an Open Source project that seeks to provide .NET support across all platforms.
    And Unity supports Allegorithmic's Substances by using Allegorithmic's Substance Air middleware library.

    ("Middleware" is a catch-all term for "software that is designed to be used as a component inside other software". PhysX, Beast Lightmapping, Mono, etc. can all be used inside other software and thus count as "middleware", although Mono is unusual in that it can be used entirely standalone as well.)

    Unity Technologies buys the rights to use the relative code libraries (known as "SDKs" in the trade) which they then use to integrate the relevant features into the Unity engine and editor.

    Unity Technologies did not write these libraries themselves. That's the whole point of such middleware: why reinvent these components when others have done all that work for you? Much as Ford don't make their own tyres or car stereos, so Unity Technologies—and many other companies—rely increasingly on buying in components from other specialist developers.

    The down-side is that all of these middleware libraries have their own development cycles, which rarely tie in with those of their licensees. Unity usually gets a major update released to tie in with the Unite events, but Allegorithmic, Autodesk, NVidia and the Mono Project all march to the beats of their own drums. Unity Technologies therefore have to wait until all the pieces are in the right place before they can announce the integration of the latest release of a major licensed component like Beast or Substance support.

    Even Mono integration takes time: you can't just swap out the scripting engine in the vain hope that nothing will break. Mono is very much a work in progress, so new releases often break older scripts.

    Unity Technologies also have to test their middleware integrations to ensure nothing goes badly wrong. This is not a trivial process, as their blog posts earlier this year will attest.

    The lead times for integrating new, complex, features in an already complex tool like Unity can be well over two years.
     
  50. IMTRIGGERHAPPY9

    IMTRIGGERHAPPY9

    Joined:
    Jul 27, 2011
    Posts:
    35
    how would you access that export button via code? i would like to save the exported bitmap locally.
     
Thread Status:
Not open for further replies.