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
    About the Mac version of Designer, it will be available end of Q2 / begining of Q3 this year. So sometime this summer.
    I'll answer all the other questions in depth tomorrow, time to sleep :)
     
  2. ttank7

    ttank7

    Joined:
    Apr 18, 2011
    Posts:
    42
    Hello Jerc,

    I have a couple questions regarding the allegorithmic website.

    First, if we use Unity, and then buy designer, make our textures, and release our game through the webplayer and the PC, do we have to buy any additional licenses for that commercial release? I ask this because on your website there is a couple licenses that are $20,000 + for substance Air and Redux.

    http://www.allegorithmic.com/store/licensing#redux

    "This product is intended for the development of Massively Multiplayer Online Games. It covers the following purposes:

    Creating a game for release through either retail or digital distribution channels.

    Create additional downloadable content (no additional license required).

    The pricing is as follow:

    License for a single game per platform: $40,000 USD.

    Volume discount granted for additional game and platforms, please contact our sales offices.
    "

    "
    This product provides automated reduction of the downloadable client size for digitally distributed PC titles.
    Substance Redux licenses can be use at any stage of development of the game, including post release.

    The pricing is as follow:
    License for a single game on PC: $30,000 USD. "

    If this isn't the case, and I am just allowed to buy substance designer and use the new upcoming version of Unity for commercial work with Substances, then you can count on another sale of Designer.

    Thanks!
     
  3. Dreamora

    Dreamora

    Joined:
    Apr 5, 2008
    Posts:
    26,601
    To my understanding Redux isn't going to be supported, only the substance material related things.
     
  4. jashan

    jashan

    Joined:
    Mar 9, 2007
    Posts:
    3,307
    Cool - that sounds great! Thanks for the info!
     
  5. stimarco

    stimarco

    Joined:
    Oct 17, 2007
    Posts:
    721
    There seems to be some confusion about how Allegorithmic's own applications relate to Substances in Unity, so here's a very quick overview:

    • Substance Redux is a specialist texture compression tool. All it does is compress traditional textures, and it knows about things like texture atlases, so it can adapt its compression to suit. (It uses some of the technology underlying the Substance hybrid textures, which is why it has "Substance" in the name.) It really is aimed at the kind of companies that really, really, need that level of compression, hence the price. It's not coming to Unity 3.4, though it may appear at some point in the future given Unity's popularity with the MMO crowd.

    • Substance Air is the middleware / integration toolset developers license in order to get Substance support baked into their game engines. (This is what companies like Autodesk have licensed in order to get Substance support into Max and Maya. Substances are also, I think, already supported on the Unreal engine, though I forget which version. Presumably, UT also have a license for this.)

    • Substance Player (which is available for free download) is a Substance viewer and tester which lets you check rendering time and quality in real-time. The current version of Substance Designer has to allow for incomplete and invalid Substances, so its internal engine isn't as quick as the Substance render integrated into game engines and other applications. Player uses a game engine renderer, so it's a more accurate performance and analysis tool.

    • Finally, Substance Designer is to Substances what Photoshop (or possibly ZBrush) is to traditional bitmap textures: it's what you use to create new Substances from scratch. It looks and works a lot like those node graph scripting tools like uScript, and the similar visual shader editor. If you've used one of these tools, Substance Designer will be pretty easy to get the hang of.
     
  6. Jerc

    Jerc

    Joined:
    Sep 24, 2010
    Posts:
    300
    @wsworin

    The deal with Unity includes the Substance Air license fee, so if you are creating a game with Unity, you don't have to pay anything more when you ship.

    @aigam

    . Textures are generated at loading time and you can regenerate them with new settings, animate them at run time.
    . The generation time is multithreaded and depends on your CPU count and speed. It will take any CPU cycle it can, without impacting the performance of the game.
    . The technology theoretically works on every computer but I would say a Dual Core CPU with SSE2 support would be the minimum requirement if you want to generate the textures quickly enough.
    . We can't "convert" a non procedural texture into a completely procedural one, but that would be great wouldn't it ? :)
    What we can do is add procedural detail and filters on top of non procedural texture, like with the Bitmap2Material filter.
     
    Last edited: Apr 27, 2011
  7. ttank7

    ttank7

    Joined:
    Apr 18, 2011
    Posts:
    42
    Thanks for the answer Jerc, I will buy substance designer when this is released then. :)

    I have one last question, will this be fully supported in the Unity Webplayer?
     
  8. Jerc

    Jerc

    Joined:
    Sep 24, 2010
    Posts:
    300
    Yes, it will be supported by the web player on Mac and PC.
     
  9. ttank7

    ttank7

    Joined:
    Apr 18, 2011
    Posts:
    42
    Sounds great, can't wait for it to release! :cool:
     
  10. Eva Maria

    Eva Maria

    Joined:
    Dec 21, 2010
    Posts:
    85
    Great, the IOS Version should be awesome!
     
    Last edited: Apr 27, 2011
  11. duke

    duke

    Joined:
    Jan 10, 2007
    Posts:
    763
    The same way you can take a shader from most games (incl. Crysis/2) and off you go?
     
  12. artzfx

    artzfx

    Joined:
    Apr 28, 2008
    Posts:
    572

    Ditto + once iOS support is added.
     
  13. the_gnoblin

    the_gnoblin

    Joined:
    Jan 10, 2009
    Posts:
    722
    Sounds like a very nice tool, thank you!
     
  14. duke

    duke

    Joined:
    Jan 10, 2007
    Posts:
    763
    Will there be a discount for Unity users on Substance Designer? $990 is really, really steep.
     
  15. Brady

    Brady

    Joined:
    Sep 25, 2008
    Posts:
    2,474
    Have have just a couple of questions:

    1) Supposing I just want to make 2D textures, normal maps, etc, from substances (not use the substances themselves at runtime), toward that end, how much feature overlap is there between Substance Designer and the Substance features exposed in Maya and 3DS Max? In other words, if all I want to do is create textures, what do I get with Substance Designer that I don't get just using Maya itself?

    2) How much feature overlap is there between Bitmap2Material and Substance Designer? If I own a Substance Designer license, do I even need Bitmap2Material, or do they cover completely separate feature sets?

    Thanks!
     
  16. niosop2

    niosop2

    Joined:
    Jul 23, 2009
    Posts:
    1,059
    For 2) Bitmap2Material is just a Substance. You could create it in Designer if you wanted.
     
  17. Jerc

    Jerc

    Joined:
    Sep 24, 2010
    Posts:
    300
    @duke

    We plan to release a Designer "Lite" at 300 USD and Unity pro users will get a discount up to 50% on Substance Designer.

    @Brady

    1) The Substance feature in 3ds Max and Maya simply allows you to read Substances to use and tweak them in the software, you can't create Substances in Max or Maya.

    2) As niosop says, Bitmap2Material was built with Designer, so you could theoretically create your own B2M :)

    There is a basic Bitmap2Material filter bundled with Designer that you can use as a template to create your own advanced filters like the commercial B2M.
     
  18. duke

    duke

    Joined:
    Jan 10, 2007
    Posts:
    763
    Brady the flurry of Substance integration in various pieces of software has been it's rendering component - you can use the provided examples, but can't make your own without the designer, which isn't included/bundled with any of them as far as I know.
     
  19. Brady

    Brady

    Joined:
    Sep 25, 2008
    Posts:
    2,474
    Okay, thanks! I suspected as much but wanted to make sure.

    Regarding making your own B2M with Designer, in your opinion (or in the opinion of anyone experienced with these tools) is it sufficiently complicated to do so to the point that, time-saving wise, it is worth it to go ahead and just get B2M as well? In other words, is B2M so easy to use compared to Designer (or compared to making your own B2M) that it's worth it to just get both?
     
  20. Jerc

    Jerc

    Joined:
    Sep 24, 2010
    Posts:
    300
    You could build your own B2M in a few weeks in Designer. Building a very basic B2M would take maybe a couple days to an experienced user, creating all the parameters, testing and optimizing it to run fast would then take most of the remaining time.
    B2M is a click and play experience while Designer has a somewhat steep learning curve.
    So you can get the B2M if you just want a fast and optimized way of generating your textures, and then get Designer if you intend to create your own filters and textures.
     
  21. Brady

    Brady

    Joined:
    Sep 25, 2008
    Posts:
    2,474
    Thanks for the info. It sounds like it would be worth it to have both B2M and Designer then. Thanks!
     
  22. duke

    duke

    Joined:
    Jan 10, 2007
    Posts:
    763
    Will/has the Unity integration been done in a way that you can stream out your input textures and have Substance Air build them on the fly when the player has downloaded them? Or are they "pre-baked" in the editor?
     
  23. stimarco

    stimarco

    Joined:
    Oct 17, 2007
    Posts:
    721
    The Substance integration for Unity includes a fully optimised Substance renderer. You feed it SBSAR files as assets. These are basically pro-compiled scripts that are bundled with any resources required by the Substance they represent.

    The Substance Renderer takes each SBSAR asset, executes the scripts (created using a graphical programming tool named "Substance Designer") and serves up fresh, tasty textures that Unity treats just like those in any other Material. Once a Substance has been rendered, its output is cached until it needs to be re-rendered. A Substance typically represents a collection of textures—Diffuse, Normal, Heightmap, Gloss, etc.—that are intended to form an entire material. You can tell Unity to feed each texture into the material's shader as needed.

    So a single SBSAR is treated as a Material, not just a simple bitmap texture. (Substances appear as a "MaterialSBS" object as far as Unity's own scripts are concerned.) Substances are also programs in their own right, so it makes sense to think of them as "Material Shaders" that create complete sets of textures for a Material if that helps.

    In the Editor (and through the Unity scripting API), you will see the rendered materials, along with any custom Parameters defined in the SBSAR, so you can modify them on the fly. You can also access frame counters, delta-time counters and even instance counters within a Substance's program, so you might not necessarily see a visible widget or Parameter. (For example, a Substance might represent an animated clock face, including working hour, minute and second hands. These would be animated by accessing the time-related system Parameters available to every Substance program.)

    A change in any of the Substance's Parameters—including those system Parameters—will trigger a re-rendering of the affected textures, so this will require some CPU time. If your Substances rely on those system Parameters, the fact that you can't see any Parameters in the Editor or access them through scripting won't mean they're not being re-rendered regularly, so there are some performance and optimisation issues involved.

    In theory, the Substance renderer code can also make use of GPU shaders to do some of its rendering work, but Unity supports an awful lot of platforms. On PC and Mac alone, Unity can run*, on anything from a 16-core ninja Windows 7 PC with all the trimmings, right down to an Asus EeePC with integrated Intel graphics chip and an Atom CPU.

    The sheer variety of hardware configurations Unity supports means you'd need to manage a bewildering number of edge cases and unusual platforms to support GPU acceleration of Substance rendering, and it would also make profiling extremely tricky. So I suspect it'll be done entirely on the CPU on PC and Mac. Other platforms, such as consoles, may well use GPU acceleration—I've no idea what the UT and Allegorithmic guys are planning for those platforms, but it seems logical to assume Substance support on consoles is also on the drawing board somewhere.

    *

    In short: Substances are Smart Materials which are responsible for producing all the textures in that material. You can include bitmaps—even SVGs—in your Substances if you want, and use the Substance tools to apply post-processing effects. Or you can use traditional bitmap textures in ordinary Material objects, which will always be available.

    At present, on platforms other than PC / Mac, the Substance rendering code won't be present. Thus, all Substances will be "baked" during the build process for those platforms. This will doubtless change in future releases.

    * (Although running on an older netbook will probably be closer to turn-based experience rather than a real-time one.)
     
    Last edited: May 27, 2011
  24. beatkyo_

    beatkyo_

    Joined:
    Mar 10, 2011
    Posts:
    3
    Sounds horribly expensive. As an indie game develloper I'd rather pay an independant artist for an appropriate texture pack rather than a few *themed* substance. I mean, if I put procedural amazing power in balance with *things needs to be done quick and cheap coze I need to eat*, then substance does not stand a chance. Price is way over my head.
     
  25. Anthony85

    Anthony85

    Joined:
    Mar 9, 2011
    Posts:
    30
    I'm with beatkyo, being a fellow indie developer (and pretty novice user at that), even the "Substance Designer Lite" is a bit out of my price range.

    Don't get me wrong, I'd love the chance to play around with and experiment with Substance materials, but I sadly don't have access to the laterst versions of Max or Maya beyond the 30 day trials (and I absolutely dispise those, namely, because of the time lock), but I have a really horrible gut feeling that these substance materials will not be compatible with Unity Indie, and will be Pro only.

    I really hope I'm wrong here.
     
  26. stimarco

    stimarco

    Joined:
    Oct 17, 2007
    Posts:
    721
    I don't understand your problem: nobody's forcing you to use "Designer Lite", any more than anyone forces you to use "Photoshop".

    If you're willing to buy a bunch of static 'dumb' textures from an online asset store, why wouldn't you buy more flexible Substances instead? You'll be able to tweak their parameters inside Unity, not just in Designer!

    I already charge €300 / day for my translation and technical authoring services, so I use that as my benchmark: if a product will save me time (i.e. money), I'll weight that saving against its price tag. If the product proves to be value for money, I'll save up and buy it.

    Same goes for anything else, really: my car saves me walking, and it's more convenient than taking the bus or schlepping 11 km. to the nearest railway station, but there are limits to how much I can be bothered to pay for one given their maintenance and running costs, so I'm quite content with my 1998 FIAT Punto with no air-conditioning given how rarely I use it for long distance driving or for visiting clients.


    People seem to have become conditioned to expecting awesomeness for free. When it's your turn to create something amazing, be prepared for the increasing number of people with a massively inflated sense of entitlement who insist you shouldn't be demanding payment for your hard work, in order that they can afford to use it and profit from it themselves.

    Bah! Humbug! Etc.
     
    Last edited: Jun 30, 2011
  27. Jerc

    Jerc

    Joined:
    Sep 24, 2010
    Posts:
    300
    Just to make sure everything is clear in everyone's head, Substance is compatible with all versions of Unity, and individual Substances will be available on the Unity Asset store for 5$. Filters and tools using Substances (like the Bitmap2Material) will also be available on the Asset store.
     
  28. UnleadedGames

    UnleadedGames

    Joined:
    Feb 17, 2008
    Posts:
    242
    Are we going to be able to use these great new features on unity terrains?
     
  29. stimarco

    stimarco

    Joined:
    Oct 17, 2007
    Posts:
    721
    If memory serves, Unity's terrain engine works directly with texture bitmaps rather than Material objects, so Substance support on terrains is unlikely in the forthcoming 3.4 release. I'm just guessing though.
     
  30. I am da bawss

    I am da bawss

    Joined:
    Jun 2, 2011
    Posts:
    2,574
    This Substance thing reminds me of DarkTree long time ago. And DarkTree "shaders" as they call it (no different than this "Substances") are free to download from their website FOR FREE !! Where as Substance seems to charge $5 to $200 for EACH of their "materials".

    Darkling Simulations only charges for the "designer" (DarkTree) part. They even give out the plugin (Darktree Simbiont) for free for 3DS MAX, Cinema4D, LightWave3D, Blender...etc. And you get to modify the settings of shaders from the plugin menu. So basically if you don't need to create your own DarkTree shaders from scratch you get to use it for free!


    And lastly, DarkTree only cost $399 to purchase.


    Example Darktree shader tree



    My opinion is, maybe Unity Technologies made the wrong deal. Maybe they should take a look at DarkTree for licensing than this "Substance". DarkTree looks like a far better deal to me as end user than this Substance.
     
    Last edited: Jul 11, 2011
  31. Dreamora

    Dreamora

    Joined:
    Apr 5, 2008
    Posts:
    26,601
    DarkTree does not offer any way to use those graphs and generate the corresponding things on the fly at runtime, it only bakes out the final texture. so no size gain or anything

    thats where the difference to Substance comes in, as with substance, only the sbsar ends in the build (a few kb) which then generates out a one to many large textures (what you told it to do) which would otherwise use tens of mb, and that without considering the fact that you can change the properties on the fly to make a material rust on the fly (gamebryo substance integration video on youtube should give you a good idea what it can do, where traditional textures die flat out)


    as for the price of the substances: as far as I see they are all packages and things like the Architecture one at $240 are a bargain at what they offer. Don't forget, thats not 1 look per type, but one "pattern" that you can change and variate the look near indefinitely.
     
  32. Jerc

    Jerc

    Joined:
    Sep 24, 2010
    Posts:
    300

    Indeed, the Terrain system needs to be reworked to allow anything else than simple bitmaps.
     
  33. stimarco

    stimarco

    Joined:
    Oct 17, 2007
    Posts:
    721
    This has been gone over repeatedly in this thread: Substances are not your granddad's procedural textures.

    Dark Tree is an old-school procedural texture generation tool, with no real-time, runtime rendering component available for game engines. Their "Simbiont" plugins are clearly intended for 3D modelling and rendering packages like Maya and Renderman. Real-time they ain't!

    For game developers, the Dark Tree tool spits out dumb 2D bitmaps. That's it. That's all she wrote. This is basically where Allegorithmic's earlier "MapZone" tools were some years ago.

    Allegorithmic's Substances go way beyond Dark Tree's textures. Not least because they're hybrid: you can mix procedural generation with hand-drawn bitmaps. You can modify them in real time within your game—you cannot even come close to doing any of this stuff with Dark Tree.

    So it's more expensive than Designer Lite, then? :)


    (Seriously, don't people actually bother reading threads before posting any more?)
     
  34. I am da bawss

    I am da bawss

    Joined:
    Jun 2, 2011
    Posts:
    2,574

    No? I thought substance is just an over hyped GPU coded procedural texturing system. If DarkTree's code is transfer to run on GPU, its basically what this overpriced Substance.


    This is way more expensive overall - DarkTree's materials are all FREE. While Substance charge materials and packs ranging from $5 to $200.


    I for one like to see more competition than this over-hyped and overpriced non-addition to Unity.
     
  35. Dreamora

    Dreamora

    Joined:
    Apr 5, 2008
    Posts:
    26,601
    But it doesn't
    Its cpu driven and bakes textures.

    From what you right its clear that you totally lack the point and concept of substances.


    As for the materials being free: thats up to the author of the materials.
    The substance creators sell packages, thats their right. Others with the designer could hand them out for free (assuming the license allows it), thats their good right.
    Its a decision of the artist, not of you nor any competitor.

    You are drawing totally cross relationships that don't exist at all.

    The only thing overhyped here is your overdriven use of overhype ;)


    And as always: if you don't want to use substances, don't use it. I personally see no need in buying the designer. I might get a substance package at some time but for the time being, the only thing I really need is Bitmap2Material, which generates me normalmap etc right out of the diffuse, thats already a major save in build size.
     
  36. I am da bawss

    I am da bawss

    Joined:
    Jun 2, 2011
    Posts:
    2,574

    Have you use Dark Tree before? DarkTree is as procedural as it can get. "Baking" part is just the output. The underlying engine is no different from Substance.




    Ofcourse, but I found it disgusting they would charge materials off their users.
     
  37. Dreamora

    Dreamora

    Joined:
    Apr 5, 2008
    Posts:
    26,601
    You don't seem to understand: The engine in the editor is of total nil none importance.
    Even if it were exactly the same.

    The point, the relevant point, is that substance is, and that for half a decade now, the only offering that can do it on the gpu, create multiple high quality high res textures, that are realtime changeable (without lag or stutter) from a few kb large substance and alike.
    Thats why it is as powerfull as it is.

    If it were just about the editor, it wouldn't have been added at all, cause unity doesn't give a boon about where the psd, jpg, png came from
     
  38. Jerc

    Jerc

    Joined:
    Sep 24, 2010
    Posts:
    300
    Actually Substance in Unity works on the CPU, not the GPU.

    DarkTree uses implicit procedural methods while Substance uses explicit methods, it's two completely different approaches.
    DarkTree is good at creating basic procedural textures for off-line rendering, but it would be pretty much useless for Unity users since it can't render textures in real time, it can't create atlases or complex structured textures.
    It's just not meant to be used in modern games.
     
  39. Dreamora

    Dreamora

    Joined:
    Apr 5, 2008
    Posts:
    26,601
    Sure it works in CPU not GPU, completely I mean? (Part will always be cpu as with any gpu data generation process)
    On the desktop I was under the impression that it runs on the gpu, otherwise the param exposure for changing would be useless as rebaking the textures on the fly wouldn't work out at all (we know how long Texture2D.Apply takes)
    (On mobile its clear, there the substance is being baked out to textures due to the OES 2.0 version not being around yet)
     
  40. Jerc

    Jerc

    Joined:
    Sep 24, 2010
    Posts:
    300
    The generation is indeed handled by the CPU on all platform in the Unity integration, so it does not impact the rendering performances. The resulting textures are then fed to the GPU (or baked at cooking time for mobile devices (for now ;)).

    Still there is an existing GPU engine but it's not included in Unity for now.
     
    Last edited: Jul 12, 2011
  41. stimarco

    stimarco

    Joined:
    Oct 17, 2007
    Posts:
    721
    Yes it is. (And yes, I've played with the demo version of Dark Tree.)

    Substance is to Dark Tree what an iPad is to a newspaper: that newspaper is fixed, immutable. It matters not one whit how it was created. But an iPad can display anything, whenever you want it to. It's interactive, which is what Unity is fundamentally all about.

    Unity's integration of Substances will let you change materials on the fly! In your own projects. In real-time. Whenever you want.

    Dark Tree simply cannot do this. Its plugin was never designed for real-time rendering.


    Why wouldn't they? It's not as if high quality Substances are easy to create. And you get a lot more value for the money than you would from ordinary textures. Substances are parametric and can be modified in real-time, in the Unity Editor, and in the game itself. Traditional textures cannot even begin to offer this much flexibility.

    A single 2D bitmap "concrete" texture, no matter how it was originally created, can only ever be that one, single, texture.

    A single "Concrete" Substance can include thousands of different combinations and permutations, thus replacing thousands of those ordinary textures.

    $99 for a collection of static "wood" textures would be expensive, but $99 for a set of parametric textures is another thing entirely: I may never need to buy another "wood" texture again. Ever.

    All these parameters would be available for use in Unity too:

    RandomSeed, Depth, Relief_Balance, Normal, Emboss, Light Angle, Hue Shift, Saturation, Luminosity, Contrast, Battens, Peeling, Battens Amount X, Battens Amount Y, Battens Offset, Battens Random Offset, Battens Height Variation, Battens Color Variation, and Wood Color.

    Changing just one of them—either in the Editor, or in a script at runtime—generates a new set of textures for your material. Even assuming the worst possible case scenario that every single one of those 19 parameters only supports two states (they actually support far more), that's 524288 possible textures. And you get to choose which one you want at runtime, not just in Substance Designer.

    Substances aren't limited to procedural generation either: they can be used with traditional bitmaps as well. It's like having great lumps of Photoshop embedded right into your game. Want a bit more blur? Bada-bing! Bada-done! Need to change the hue of a texture? No problem! Need a bit more mould on that damp concrete wall? Easy! A bullet-hole in your window? C'est trop façile! And all in real time, right inside your game.

    Dark Tree has nothing that comes even remotely close to this. Substances was the right move for Unity. There's just no contest.
     
  42. tatoforever

    tatoforever

    Joined:
    Apr 16, 2009
    Posts:
    4,364
    Stimarco is 100% right.
    I have a Substance Designer license and let me tell you that Substances takes some time to create, but once they are done, you can generate tons and tons of variations with only one substance. Substances aren't only smart textures that can be dynamically moddified on the fly (real-time) but also they serves as custom crazy filters (B2M anybody?). Add any kind of properties to be changed in real-time. I mean, Substances are really some crazy wild stuff.
     
    Last edited: Jul 12, 2011
  43. Dreamora

    Dreamora

    Joined:
    Apr 5, 2008
    Posts:
    26,601
    B2M here yeah :D
     
  44. artzfx

    artzfx

    Joined:
    Apr 28, 2008
    Posts:
    572
    Using Substances Designer feels like the love child of Filter Forge and CrazyBump, but with the added bonus of using them in real-time. Brilliant app. Just waiting for U3.4 so I can start using Substances in Unity :). I spent far less money on purchasing Designer + B2M than I ever have on 2D Texture packs or creating my own 2D textures ;). Substances are like a living texture that can always change. Great move by Unity.
     
  45. Moonjump

    Moonjump

    Joined:
    Apr 15, 2010
    Posts:
    2,572
    Thanks Stimarco. Jerc wrote at the beginning of the thread what Substances are. I didn't get it at all. I was gradually getting it as I read through the thread. But you make it really explained it well.
     
  46. Ippokratis

    Ippokratis

    Joined:
    Oct 13, 2008
    Posts:
    1,521
    @dreamora
    I think that the Texture2D.Apply long times are due to the fact that it does not use pointers for texture manipulation. As well as other .Net image manipulation libraries with managed code. Some attempts at the flipcode to use pointers in unmanaged code for image manipulation reported big gains in speed. Perhaps Substance " magic " is nothing more than use of dll's with C++ or C fast code (for this kind of operations, pointers shine). So image manipulation could execute in the CPU. Really fast too. By "image manipulation" I mean the creation of the different maps out of the base texture.

    I am sceptical regarding the use of GPU to manipulate textures. Procedural textures cost and making them in the GPU costs a lot.
    GPU code executes each frame. So it has to calculate 4-5 (diffuse, spec, normal opacity, noise ) 512*512 or 1024 *1024 textures with 4 channels, 8-16 bit each, per material each frame. Imagine a scene with 10 materials. Seems too much. Maybe they calculate them once and after that they create parameter manipulation on the display of the created maps. Ie something similar to the specularity level of the specular map and so on.

    Of course my knowledge on these topics is fairly limited and my assumptions could be wrong. This is an interesting thread btw !
     
  47. stimarco

    stimarco

    Joined:
    Oct 17, 2007
    Posts:
    721
    Right, let's get the disclaimer out the way: I've worked for both Unity and Allegorithmic, so I know rather more than is strictly healthy about both. I was hired recently to write the docs covering this integration, so here goes...

    The Substance Engine that's integrated into Unity 3.4 is written in C++ and has been embedded right into Unity's core (which is also C++, if memory serves). There's no C# involved at this level.

    Substance "SBSAR" files are basically an optimised "bytecode + resources" package, with the bytecode representing the node graph that generates the Substance. When a Substance is first rendered, that bytecode is executed and the resulting textures are cached. The Substance only re-renders its textures if you explicitly tell it to. That is, even if you change some of the Substance's Parameters in a script, you still have to tell it to "rebuild" its textures before you'll see any changes. You'll also have the option to tell the Substance Engine to render any changed Substances synchronously, or asynchronously (i.e. "everything stop while I do this!" vs. "okay, I'll do this in the background while you all work; carry on chaps!")

    So you are in charge, not Unity. There is only a frame-rate drop if you really want one badly enough.

    The GPU is not used at present. There's little point in doing so as that GPU will already be working pretty damned hard rendering everything else. The CPU works just fine. Especially as most people today have more than one of them in their PC and Mac.

    As Unity also targets consoles and mobile devices (among others), it makes sense to avoid too much complexity and keep things as easy to maintain and update as possible. Besides, rendering Substances is an ideal candidate for farming out to another CPU core. Given the way things are going, we're likely to see the line between GPU and CPU blurring even more than it already is. (Take a look at AMD's Fusion roadmap, as well as ARM's future multi-core designs.)
     
  48. fivearchers

    fivearchers

    Joined:
    Apr 17, 2009
    Posts:
    716
    Now what if there was a substance exporter for Genetica...
     
  49. Dreamora

    Dreamora

    Joined:
    Apr 5, 2008
    Posts:
    26,601
    thanks for the information stimarco

    Very usefull insight on how it technically works, where it hooks in and could hit bottlenecks.

    Guess the reason it does not work fine on mobile etc at the time with realtime changes then is more a matter of cpu capability related optimizations then (MMX - SSE on desktop vs Neon on iOS vs XXX on consoles)


    As for the APU stuff: I've yet to see anything that makes sense ... anything AMD so far released on that end shows only why it will never work out unless any calc is moved from MMX - SSE over exclusively to OpenCL so the apu does anything at all (I favor Intels approach with moving meaningfull stuff over like movie encode to remove it from the cpu)
     
  50. boyd600

    boyd600

    Joined:
    Mar 22, 2009
    Posts:
    49
    This sounds fantastic, is the discount for the substance designer a limited time offer? im not planning on getting the unity pro licence until the end of the year.

    Thanks
     
Thread Status:
Not open for further replies.