Search Unity

Surforge 1.3.2 - 3D rendered PBR texturing in Unity

Discussion in 'Assets and Asset Store' started by Sergeyv_3d, Jan 27, 2017.

  1. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    309




    Asset Store Page | Videos | Features | User Guide

    Surforge 1.3.2
    Moss AddDetail Tool prefabs.
    Add Detail tool performance improvements.
    ChangeLog

    Surforge is an editor extension that enables you to easily make quality 3d rendered PBR textures from scratch directly in Unity, with an extremely productive and intuitive workflow. The exported maps are fully compatible with Unity Standard Shader, looking exactly the same as while you working on them.

    It's a modeling toolset, kitbash library, map render, and material composer. All in one, everything you need to create great textures.

    Installation:
    - Import Surforge into a clean new project.
    - Press “Go Ahead” button to update scripts for your Unity version.
    - If something went wrong, you may need to press "Window - Layouts - Revert Factory Settings". Although this should not be necessary in this version.

    Thank you for interest in Surforge!
    If you have issues, please mail me before leaving a negative review and I'll be happy to help you out.
    Good luck in creating magnificent works. Faster, easier, more effective than ever before.
     
    Last edited: Dec 1, 2019
  2. pixelsteam

    pixelsteam

    Joined:
    May 1, 2009
    Posts:
    924
    Really Really impressive! Congrats.
    Will buy this ASAP!
     
    JuanJSAR likes this.
  3. nxrighthere

    nxrighthere

    Joined:
    Mar 2, 2014
    Posts:
    548
    Bookmarked. It looks very promising!
     
    Last edited: Dec 2, 2017
  4. theANMATOR2b

    theANMATOR2b

    Joined:
    Jul 12, 2014
    Posts:
    7,781
    This looks great for inorganic models. Could it also be use for organic models, characters, monsters etc. Painting directly on the model to apply the textures with pressure sensitive settings would be a great addition to this tool.
     
    TeagansDad likes this.
  5. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    309
    Thank you very much for your comments.

    You're right, Surforge is designed primarily for effective texturing of inorganic models, such as equipment and level elements.

    As you know, character design is a complex task, with individual approach techniques like sculpting, high-poly modeling with retopology and hand painting.
    These techniques are time consuming and require professional skills.

    Surfoge is based on kitbash approach - fast and simple using of prefabricated elements and patterns.
    For the common tasks, it could be very effective. When you need to create a large amount of simple things, Surforge saves you a lot of time.
    It's also designed to be easy to use - it is not necessarily be a professional in texturing and 3d to achieve quality results after little practice.
    It is particularly beneficial for indie projects, where people often share multiple tasks.

    Painting directly on the model is planned in future versions.
     
    Mark_01, antoripa, radimoto and 3 others like this.
  6. Enoch

    Enoch

    Joined:
    Mar 19, 2013
    Posts:
    193
    Fantastic asset. This is another of those, how the hell did they do that in unity, assets.

    As for inorganic materials, I think your right. But don't limit your thinking necessarily to sci-fi ships, corridors and containers. I could imagine this could be hugely useful for clothing, shields, rings, armor, etc (your crown design video says to me that you get this). Fast retexturing of an outfit for a character would be incredibly useful to a great deal of people I imagine.

    Kitbash is low-hanging fruit for this type of editing but having a huge library of clothing patterns, fantasy decals, component bumpmap outlines, etc, would make this a product of a lot of developers dreams. More stuff like your celtic knots over sci-fi knobs and decals and I really think you could impress a lot of people. Not that we couldn't add this to the library ourselves I would imagine.
     
    Mark_01, Frpmta, TeagansDad and 4 others like this.
  7. pixelsteam

    pixelsteam

    Joined:
    May 1, 2009
    Posts:
    924
    patun likes this.
  8. Wietrzyk

    Wietrzyk

    Joined:
    Jan 20, 2013
    Posts:
    3
    Nice tools, simply, fast and powerfull.
    I miss add your own detail models, decals, the best free substance smart materials and visual show. In the future may want to consider a simple painting the object 3d.

    I can create additional graphics, Form as 3D textures and masks as a free add-ons to increase the potential tools.
     
  9. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    309
    You could add your own detail models, labels and other assets.

    Surforge is based on Unity prefabs, and you could create your own if needed, import models, setup custom Poly Lasso profiles. Its described in the user guide (only in general terms at this moment).
     
    radimoto likes this.
  10. ForceVFX

    ForceVFX

    Joined:
    Jan 21, 2011
    Posts:
    576
    This is a game changer! great work, any chance I can export the color ID map? I already have quixel suite, and it would be nice to have that option, I've spent a lot of time creating a custom material library, and in the video it looks like that is being created. Just curious.

    Thanks,
    Patrick
     
  11. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    309
    You can export Color ID map, but this feature still work in progress, added it just before 1.0 release.
    Not yet tested with Quixel for possible antialiasing issues on mask borders, no settings for colors yet.
    surforgeMaterialID.png
    There is also option for export separate black and white masks for each id.
     
    ForceVFX likes this.
  12. Enoch

    Enoch

    Joined:
    Mar 19, 2013
    Posts:
    193
    Great work still playing with this.

    First question of many I imagine.

    I want to import my own material but there doesn't seem to be a way to import anything but an albedo. The documentation goes on to mention specular and glossiness extraction but doesn't go into specifics. There doesn't seem to be gloss or specular data buried in the alpha so I am little confused as to how your extracting this data. Straight from albedo based on luminance or something? Looks like you have sliders for Detail Intensity, Contrast and shift, allowing us to tweak toward something good looking I guess, but I probably would have prefered some way to specify a map.

    Also does the Material tools panel pick up new materials as they are added to the proper directory, or is the some other place we need to assign them?
     
  13. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    309
    Sorry for the wall of text, trying to answer in detail.

    Feature extraction

    Surforge uses albedo for specular and glossiness extraction. Along with customizable noises, worn edges, two paint masks, two dirt layers, two separate emission masks, global material adjustments, and other settings it represents a powerful and flexible material system.

    I know that its uncommon and may be somewhat confusing, comparing to just drag and drop separate bitmaps for albedo and specular/glossiness, or albedo with separate map on alpha. There are several reasons for that.
    The main reason is Surforge material is actually a shader. This has its pros and cons, and the main advantage is true real-time tweaking.

    But as you know, maximum number of texture samplers is 16 in Shader Model 3. Each texture sampler is 4 grayscale channels.
    It is not so much, and all used for features like worn edges, noises, emission, paint, dirt tweaking and so on. Although Surforge use every channel of every sampler optimized/packed/reused as much as possible, no extra space left.
    All that is connected together in shader, for example worn edges interact with paint layer, imitating grind through it. So it cannot be implemented as layered separate shaders, with separate extra samplers. (Material Set in Surforge is layered set of such shaders + some shared things).
    Also it adds flexibility - with features extraction, you could use less bitmaps, reuse same bitmaps with different settings to get different unique materials.

    About features extraction itself, it works like in programs such as Crazy Bump, that turn your single bitmap into a set of textures, or manual features extraction in Photoshop.
    Its based on picking out the desired range of texture, tweaking it with contrast and other math like pow, outside (0,1) range and then picking desired range and clamping it.
    Similar like if you use Levels in Photoshop and for manual turning albedo into specular/glossiness maps, emphasizing the details of desired range.
    Also, as with Photoshop approach (or tweaking different frequency sliders in Crazy Bump) you have to find desired settings for your custom material manually (fortunately, Surforge updates all that in realtime).
    surforgeFeaturesExtraction.png

    Material presets

    You could add custom materials to the material list with saving it with arrow button.
    Unfortunately, now there is no comfort way in 1.0 version to add it to the list (will be improved as soon as possible).
    You could add it manually, dragging into the appropriate field of "surforgeSettings" prefab in "Assets/Surforge/Editor/" after saving, as any of your custom assets you create: mesh details, labels etc.

    But actually, there is much more convenient and powerful way of working with materials, that Surforge main focused on: to create and use not single materials, but Material Sets.
    This concept needs a little getting used to, but it offers very powerful features. Its like operate complete texture color designs instead of single materials, as set switching is realtime.
    There are buttons for create, copy, save, select, shuffle material sets, and dropdown menu with prebuild sets.
    materialSetsControls.png
    Material Set stores materials itself, not link to materials. Just 8 materials instead of one ( + shared settings for the whole set), in desired order matching corresponding IDs. It could be shuffled, realtime changed for other set, saved with Unity scene along with all other sets.
    Custom sets could also be saved in the "Assets/Surforge/CustomPresets/MaterialSets/" folder for future use (will appear in that dropdown menu when new texture/scene created).

    I'm sorry that it is somewhat confusing. But please treat with understanding, that Surforge is in the early stage of development. Confusing things will be improved in the next versions, as well as documentation.
    Detailed video about the materials will be as soon as possible.
     
    Last edited: Feb 1, 2017
  14. Enoch

    Enoch

    Joined:
    Mar 19, 2013
    Posts:
    193
    Wow. I wasn't expecting that. I have to admit I am apprehensive about this method of material creation but I will give it go. I will say it will definitely require some convenience methods for interacting with a material set.

    -There needs to be a way for you to copy the data from your material list to one of the slots in the material set. I can imagine reusing a particular material over and over again in lots of material sets.

    -I would suggest even a way to copy just particular parts of a material (from the set or list) to other materials in the set. Every thing might be exactly the same but albedo, and feature or two and it will be cumbersome to re-enter the common data. Perhaps a way to copy from a one index in the material set to another index, etc.

    -I would also love to see the tool window, the model view and material window all be true unity editor, docking capable windows of their own so we can move resize, etc.

    -I had trouble initially with starting a new texture because the model I was using was modified by probuilder (to rapidly adjust the UVs) and saved as an asset. It allowed me to drag the model to the appropriate place but it simply wouldn't load the model. Once I re-exported it as a .obj it was fine however. Perhaps don't let users drag assets that aren't objs to the model selection.

    -As I said I was using probuilder and I personally think probuilder is almost impossible to use without progrids. However, Surforge won't show its uv grid with progrids installed for whatever reason. Those users that want to use probuilder, progrids and use surforge for an all in one unity model creation tool will have an issue.

    As a brainstorming exercise is there a way to translate a spec, gloss, bump, etc from an existing PBR material into the feature extraction parameters that Surforge will need? Having to redo the entire PBR material library from scratch will be a non started for some developers I imagine. You might also consider some more PBR material creation videos (ones that show how easy it is to create seamless pbr textures right in Surforge). I know you have one but a few more of these would probably help sell the concept more.

    I see tons of potential here so don't get discouraged. I hope my feedback was helpful.
     
  15. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    309
    Thank you very much for detailed feedback.
    Had taken note about issues with ProBuilder, I will try to make compatible.

    By the way, you could easily copy your material from the list to one of the slots in the material set, just drag-and-drop it with desired set active to the texture area with desired ID.


    Edit: I found no problems with ProGrids and working with exported ProBuilder object. Everything seems fine.
    Surforge react on .obj resaving and update its preview and UVs.
     
    Last edited: Feb 1, 2017
  16. Distant_Temples

    Distant_Temples

    Joined:
    Apr 14, 2012
    Posts:
    127
    I googled the word awesome and all the links pointed to Surforge in the asset store.

    I look forward to future versions, sounds like even more great stuff.

    I like the videos a lot. Great demos. I think they would be extremely more helpful if they were narrated. It's obvious that Surforge is doing a ton of stuff under the hood to make the process of making awesome textures a lot easier. I think it would be helpful to hear about some of it in the videos along with some tips on creating a work flow and such.

    I did find a show stopper with a work around.

    After selecting "New Texture" three items are created in the hierarchy.

    >settings
    >root
    >texturePreview

    Deleting any one of these will bring up the beginning menus so you can start a New Texture. There may be a better way to do this but I have just begun to mess with stuff. If so please let me know. I may have miss that in the Docs. Surforge is just so cool I just want to plunk around it all day and not do anything else like eat, bathe the plants or water the children. o_O


    The problem occurs if you select all three of those items and delete them at the same time. Unity goes Bub-bye on the spot.

    Again selecting any one of them and deleting it works fine.

    Even with this I still find not only is surforge an AWESOME tool, you did a great job on the first public release. Other than that one issue, I found Surforge to be very stable. Thanks for taking the time it took to make surforge such a great tool.
     
    megmaltese likes this.
  17. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    309
    Thank you very much for your feedback.

    About this three items: they are necessary for the package to work. As you can't forbid the objects to be deleted from the scene by user, there are two variants: hide them, or react on its delete.
    I'm not a fan of things hidden from user, and the remove of these items interrupts the packege work, return to the starting point was the most suitable solution.

    Since all the information, used by package is stored in a scene for possibility to save/load, it can't exist in the state, with partially erased critical components.
    Also, the implementation of undo after deleting its core items (what leads to re-initialization), have the undo data of two complete different setups to be combined together, thats really to complex to support in stable way.

    The best solution here, is to intercept the delete of this objects with a warning window. But I could not find the way to implement this functionality.
    All code you call on delete, is actually run after the delete. If at all possible, it will be done.

    I'm sorry that there are not too much videos, i am working on more detailed and tutorial style videos.
    Please write what kind of videos would you like to see first. I will try to make it narrated, but it is a bit difficult because English is not my native language.
    I added the highlight of all used functions and shortcut keys to partly compensate it.
     
  18. Distant_Temples

    Distant_Temples

    Joined:
    Apr 14, 2012
    Posts:
    127
    I think i may have come across as harsh with my critique and that was not my intent. Sorry about that. Surforge is just plain awesome. I only wish more assets were as complete as yours when they have been released.

    You asked "Please let me know, what else could i do to earn your higher rate."

    Nothing, I changed it. Just continue with what your doing because you are doing a great job. Really.:)
     
  19. Frpmta

    Frpmta

    Joined:
    Nov 30, 2013
    Posts:
    461
    Sorry, but I just had to log in to say that YOU ARE AWESOME.

    EDIT: Also, don't be afraid of making this tool good for organics texturing too, not just hard surface.
     
    Last edited: Feb 3, 2017
    megmaltese, Mark_01 and pixelsteam like this.
  20. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    309
    Thank you very much!
    Very happy that you like it. I will try to do my best to meet your expectations.
     
    Mark_01 and pixelsteam like this.
  21. Enoch

    Enoch

    Joined:
    Mar 19, 2013
    Posts:
    193
    That material dragging and replacing a material set slot pretty much solves my issue with the material sets and useage. Though it can be pretty easy to overwrite your slot changes that way.

    Progrids still can't be active at the same time for me. But as long as I fully close it, I can open up Surforge and it will work so switching back and forth should be fine.

    I have yet another feature request: There needs to be some way to adjust the scale of poly lasso profiles on a global scale. The use case I have is that I am modifying a section of an existing atlas. So basically a small section of the whole uv map. When you work with a small section the profiles seem too large so bevel details take up the entire lasso'd area.

    Here is screenshot of my test effort. I've needed to retexture the Multistory Dungeon Asset for awhile as its texture style doesn't really fit my game. Surforge seems to be what I needed:



    http://imgur.com/a/JfeaI

    It's a start. I am not artist (programming is my thing) but even for me this was very easy to do once I understood the controls and got the model setup.

    In full disclosure I had scale and move the uvs on those models with probuilder before I could edit the texture in Surforge. I just couldn't get Surforge to work right on the base atlas.
     
    Last edited: Feb 3, 2017
  22. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    309
    Nice textures, i like it.

    Closing ProGrids window fix all issues, no need to restart Surforge. If then you activate ProGrids again, after Surforge init, you can have Surforge working and ProGrids active the same time.
    I'm afraid you can't use Surforge PolyLasso with ProGrids snapping, because it is a separate tool from other developer. But there are handy grids and snapping modes in Surforge itself.
    I tested and managed to use ProGrids for ProBuilder modeling while Surforge window open, and move scene objects, including created with Surforge, with ProGrids snapping.
    You may need to check "Gizmos - Show Grid" in Unity Editor, as ProGrids turn its back while you activate/deactivate it, and Surforge need native grid to be turned off, not to be confused with Surforge's grids.

    The option to scale Surforge profiles is planned. The code for this is already in use, if you scale PolyLasso object with unity Scale tool, and then split it, the profiles of result objects will respect its scale. It remains only to make interface for this, most likely it will be a hotkey to step profile scale, similar to shrink/expand, and a global value for future created objects.
    There is also root scale in Surforge. You can set scale of the Surforge "root" object in the Unity Editor with Unity Scale tool. For example set it to (2, 2, 2) you get all future detail, including bevels, smaller relative to the texture, as well as shrink/expand step.

    About UV's and atlases in Surforge and in general. As you know, UV's on the model not necessarily are in the 0,1 square. This is especially true for level geometry, created for use with multiple square textures, created with ProBuilder for example. Also UV's on such models could be stacked, offsetted, scaled arbitrary. It turns out quite a mess, but it works well, as UV's created for your textures, not textures for your UV's.
    Surforge, in regular UV mode handles that pretty well, show your UV's outside its 0,1 working field. You could also use PolyLasso and AddDetail tools outside texture square. But for UV Grid mode, UV related tools like island fill and uv symmetry you need neat UV's inside 0,1 texture space. With messy UV's Surforge not always recognizes UV island border.
    You also need your geometry to be in 0,1 square to render it with Surforge.
    When you are working in other programs for texturing or baking, you usually want carefully done, accurate UV layout. Surforge is the same. It still works with tricky UV's but 0,1 square layout is preferred.
     
    Last edited: Feb 4, 2017
  23. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    309
    I would like to show you some stuff from upcoming 1.01 update.

    Fantasy ornaments kitbash items for AddDetail tool.
    surforge101ornaments.jpg
    These guys are mesh based, have volume and could be handy for fantasy and medieval textures.

    Other types of kitbash items are also planned. Now I'm experimenting with parts of character equipment, and fallout/borderlands style texture details. Stay tuned.
     
    Mark_01, antoripa, radimoto and 3 others like this.
  24. Enoch

    Enoch

    Joined:
    Mar 19, 2013
    Posts:
    193
    Those look awesome and it sounds like your heading in a good direction for this product.

    Thanks for the trick about scaling the root game object that worked for me when working with an atlas.

    I am having a couple of issues.

    I am getting out of memory errors occasionally that slows things down so much I must restart Unity.

    I am also getting a issue where loading up a scene I am working on results in some constant internal resource loading (basically the cursor switches between and arrow and a loading icon every second). Whatever happens it is causing the unity to slow down so much it unusable. I am using 5.4.1p3.

    I would debug this myself but you haven't provided source code (any chance for this)?
     
  25. lundon

    lundon

    Joined:
    Nov 6, 2009
    Posts:
    59
    I got this same error Yesterday. It happened right when I open Unity. I had been working on the scene the night before.

    Unity 5.5.0f3
     
  26. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    309
    Couldn't you please describe memory issue more detailed?
    Was it related to rendering, or using modeling tools?

    "Slowdown" - your workflow slow down because of error pop-ups, or tools (raycast) and code in general begin to run slower?
    Was problems related to loading of saved scene, or not related to save/load? How complex was the scene, what tools used, was Greebles tool used?
    Could you please provide a way to reproduce the problem? Could i see the problem scene?

    It would help alot if you could provide more information, the area at what to search.

    I'm afraid sources publication is not planned.
    Thank you very much for your offer of help in debugging, im shure you really do not need to waste your time on it.
    Don't worry i will do my best and fix all issues.
     
  27. laurentlavigne

    laurentlavigne

    Joined:
    Aug 16, 2012
    Posts:
    2,136
    It looks impressive and fast, I didn't know of bitbash so thanks for making a tool around that. Does it also unfold UV? I'm allergic to those ;)

    In the video, I see poly edges being drawn as you make selections, are they modifications to the mesh or a way you create the texture?
    Is it an AO map that's already made in another software you drop on the RTS model or do you bake AO in-tool?
    Also you mention the wear and tear is done in the shader and uses 16 4x lookups, it sounds harsh on a mobile, also how can it be customized to blend in some NPR goodness?
     
  28. Enoch

    Enoch

    Joined:
    Mar 19, 2013
    Posts:
    193
    I am not positive but I get the feeling it's because I switch lasso profiles on existing items a lot (ie I make the lasso loop and then select the lasso object and change profiles a bunch till I find the one I want). After doing this a few times (6-7) for different lasso sections (as I fill out the texture) I start getting an out of memory error. I have no insight into your code but you might check that you fully clean up an old lasso profile and model when it is replaced with a new one. I then save and close unity. When I reload unity (it loads the scene), everything reloads just fine but for whatever reason the cursor switches between an arrow and loading cursor every second or so like it's trying to load something but can't find it, so it tries again a second later.

    I never used the greebles tool, I did create a custom material and load some of my own bitmaps. I didn't use decals, shatter, deformation or any of the detail brushes. Basically a new scene with just the lasso tool.

    I will try and send an export of my scene to you privately. I will try and do a test tonight and watch memory usage as I do different things and see when it increases, this might give you so insight into a memory leak if there is one.

    update: I sent you a message with my scene file in it. You should see the problem when you load the scene. I also did some more testing, it does look like changing a lasso profile and re-rendering (space) will cause an allocation that will continue to increase the memory consumption but it does eventually get GC'd just not right away.

    There for certain is a problem with the lasso profile in row 13, col 3, it cause a spike of nearly 4Gb all by itself and throws the out of memory error.
     
    Last edited: Feb 7, 2017
  29. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    309
    Thank you very much.
    Downloaded, issue reproduced. Started to investigate it.

    I'm afraid there are no UV editing tools, only tools related to existing UV's, such as UV island quick fill, UV snapping and UV island based symmetry.
    To code a good UV editor is a complex task itself. I agree that this functionality would be very useful, and it is possible to be added some day.

    You could see poly edges in the video, because Surforge workflow based on meshes. You create 3d geometry with Surforge tools, and render it as a texture.
    Surforge doesn't edit the model you texturing, only creates texture details in 3d.

    The AO map you could see in videos dragged in that slot is created in xNormal (free tool). It could be easily done by baking AO of lowpoly model on itself. All you need for that is your lowpoly model with UV's, no additional detail or high-poly model used. Surforge can't do that at this stage.
    This map is optional and used as a base for AO of texture details created with Surforge. Surforge bakes AO map for it's texture details every time you render (press Space) and mix it with your base AO texture.
    You could also add optional Normal map, to be used as the base for normal map details, rendered with Surforge.

    The Surforge shader is used only for the texture preview while you working on the texture. Exported results (which are standard sets of textures) can be used in a wide range, including mobile, depending on the shaders with which they will be used.
     
    Mark_01 and laurentlavigne like this.
  30. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    309
    I found the reason of the issue with blinking cursor.

    When you save the scene with UV Grid turned off and then load it, Surforge goes in a loop, trying to get UV islands from mesh.
    For now, it could be easily fixed with clicking on UV Grid button after problem scene load (could be turned off then).
    surforgeUVGridButton.png
    I'm very sorry for the inconvenience, and already working on the hotfix.
     
    Mark_01 and Enoch like this.
  31. Enoch

    Enoch

    Joined:
    Mar 19, 2013
    Posts:
    193
    This worked for me thanks for the information on how to quick fix it.

    When you put out a patch don't forget about row 13 col 3 in the lasso profiles, this profile goes and tries to allocate 4Gb of memory all by itself when you select it.

    YAR (yet another request):
    I would love to see a way to submit a black and white mask that does essentially what shatter does (ie white areas are block while black areas are the cut line). So that I can create a reusable shatter mask and apply it to multiple texture projects. This would give me an infinite variety of brick wall types, cracks, etc to apply to any given texture project. If you do this I will try and create a set of substances that will make a huge variety of masks for the community and post them here.
     
    Mark_01 likes this.
  32. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    309
    I am happy it works.
    Issue fixed, it will be a part of 1.01 update, which will be ready soon.

    I am investigating memory issues now.
    I found possible minor issue with material icons rendering on skybox change.

    Could you please check once more and confirm that memory issue connected with that 13/3 PolyLasso profile, and reproducing each time? Any issues with other profiles?
    I checked all PolyLasso profiles and found no memory problems.
    Scene geometry uses a small amount of memory, really not notable amount or amount that could lead to problems. Even complex meshes are not heavy enough for that. There is also nothing special with that profile, in comparison with others.

    The render is the memory consuming thing. Surforge creates lot of masks during the render. Although this process is optimized as possible (reuse of all possible texture channels and render textures) and double checked for memory leakage, it just need lots of RAM.
    I'm afraid that 4 GB is just not enough for Surforge. 8 GB is a minimum to render high-res maps, and 16 GB is recommended.

    When you render for a first time, Surforge allocates its render textures. They are then reused again for render, and if you increase render resolution, memory usage also increases. Some extra memory needed for export textures (to combine masks and store some temporary stuff).
    That is the cost for its speed and realtime features. I'm afraid there really not much can be done with it. Fortunately, memory not a big problem for modern systems.

    Great idea and definitely a nice feature to have. It could be tricky to implement, as you need to create point shapes based on bitmap for that. This functionality also opens some interesting possibilities, such as stencil-based shapes creation. I will explore it.

    Couple of words about upcoming 1.01 update.
    I fixed some issues, added material creation on export with maps link, and now working on PolyLasso profile scale functionality.
    My friend Alexey now working on retopology of ornament kitbash items, that i created with nurbs, to make optimal meshes for using in Unity with Surforge.
    This is how it looks in Surforge:
    fantasyOrnamentInSurforge.jpg
    Also forgot to say, that you could use any of your meshes with Surforge as texture detail, without creating AddDetail tool prefab. Just drag it as a child of "root" object, and assign a material ID with 1-8 hotkeys. When the ID (Surforge material) assigned to geometry, Surforge will render it.
    You could use Unity move/rotate/scale tools to place it on the texture. You could also use native transform tools for PolyLasso objects and kitbash items.
     
    Last edited: Feb 8, 2017
  33. laurentlavigne

    laurentlavigne

    Joined:
    Aug 16, 2012
    Posts:
    2,136
    Too bad there isn't an OMG button!
    Is it suitable to create textures for UI elements?
    Here are two examples, How can Surforge help me make it look good without me having to build 3D models of everything?
    Screen Shot 2017-02-07 at 11.56.36 PM.png Screen Shot 2017-02-07 at 11.16.52 PM.png
     
  34. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    309
    surforgeGuiButtonsTest.png
    A quick test, took about 10 minutes to create it with Surforge, with PolyLasso and AddDetail tool.
    I think it suites well for random sci-fi menus and art elements.
    Its just a screenshot of texture preview, as Surforge now has no "Unlit" (baked light) image export, only material maps can be exported now. This functionality will be added in the future updates.
    If it suits your project, you could also make your menu items as textured 3d planes with Standard shader. You could assign exported textures to it, and get effects, such bump mapping and specular with moving light.
     
    Last edited: Feb 8, 2017
    an4xu and radimoto like this.
  35. laurentlavigne

    laurentlavigne

    Joined:
    Aug 16, 2012
    Posts:
    2,136
    You brought "a picture is worth a thousand word" to a whole new level!
    It looks very nice but it looks so detailed that I'd have to redo all the textures for the 3d objects :D Can it be look less visually detailed, more cartoony?
    By the way, these are pure textures, usable straight inside UI? I mean the bg is opaque so I was wondering if it can be transparent instead and preserve the shadows.
     
  36. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    309
    Surforge can export masks, that could be used when editing textures to make desired parts transparent. But i'm afraid, as now the only way to get rendered/unlit image (not set of material maps) is take a screenshot of texture view, you have to match that masks to your screenshot manualy in image editor.
    You could also try to use some kind of material-to-texture baking tool for it.
    As for cartoon style, i'm afraid there is no simple way to achieve it. Cartoon stuff is more related to hand painting, and its hard to obtain such results with polygon objects. You could try simpler materials and experiment with deformed shapes, but Surforge really was not designed for that.
     
    laurentlavigne likes this.
  37. Enoch

    Enoch

    Joined:
    Mar 19, 2013
    Posts:
    193
    This might help.I think it was originally written c++ but this is a c# wrapper I believe. The article describes pulling contours from the image which I think is probably the trickiest part.
    https://lasithapetthawadu.wordpress...ur-extraction-of-an-image-using-c-and-emgucv/
     
  38. lundon

    lundon

    Joined:
    Nov 6, 2009
    Posts:
    59
    Has the 1.01 update been submitted to the Asset Store yet?
     
  39. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    309
    I am afraid not yet. I'm still working on the update.
    I really hope to submit it to the Asset Store at the end of this week, but the next week looks more realistic.

    Still working on some issues, based on email and forum feedback. I get a large amount of email, very happy about it, but it takes a lot of time to reply to all.

    I also finished PolyLasso profile scale change feature. I would like to show you how it works.
    profileScale.gif

    Thank you very much, it looks very promising. So far, unfortunately, did not have time to try it. I encountered with a huge amount of different tasks.
     
    Last edited: Feb 14, 2017
  40. Distant_Temples

    Distant_Temples

    Joined:
    Apr 14, 2012
    Posts:
    127
    Look cool! That is going to be a very handy feature.
     
  41. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    @Sergeyv_3d
    Does it have alpha brushes to manually tweak and paint directly on textures diffuse,normal, roughness or metal layers ? or paint all at same time ?
    It is easy to import our own materials or kitbash elements ?
    Is there some noise generators ?

    It is usable and not too slow with 4096 maps ?

    And some important question , this plugin is a general purpose tool. It is not tied to Unity, we could use it to make textures for a game using CryEngine for example.
    Does Unity licensing applies in this example ? Or is Unty licensing only applying for apps and games made with Unity.
     
    Last edited: Feb 15, 2017
  42. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    309
    I'm afraid there is no paining with a brush yet.
    Surforge is primarily mesh based. Brush painting turns you into an artist. Surforge was actually designed for creating textures without need to be an artist.
    Brush painting has been requested, i will try to add drawing in future versions at certain stage. It is useful to have such feature.

    It is definitely possible, but not very convenient at this stage. There is no special tools for it in the current version, but if you are familiar with Unity prefabs, you could do it.
    Surforge materials have its own format. You cant just import your existing materials, but its not hard to recreate your materials in Surforge, based on your textures or substance masks.

    There is a basic but flexible noise, used in the Surforge materials for worn edges, paint layers and dirts. You could tweak it with realtime feedback.

    The 4096 maps render is definitely usable. It could be somewhat slow to render (depends on your GPU and render settings).
    The best thing, there is no need to render it every time while working on the texture. You could use lightning fast 1024 preview, then render your final 4096 maps when the work done.
    Also, material tweaking not require re-render. You could render your 4096 map, than tweak materials in realtime.
    Please note, that working with high-res maps require a minimum 8 GB of ram, 16 GB is recommended. Powerfull GPU is also recommended.
    Surforge videos was recorded using system with Nvidia GeForce GTX 660 Ti and 16 GB ram.

    Exported results (sets of textures) are common for specular based PBR pipeline.
    I tried to use exported maps with Marmoset Toolbag and it worked well. Of course, you not get one-to-one result outside Unity, and it may require some maps correction, same as for standalone tools.

    I am pretty sure there should be no problems with it.
    Surforge is a tool. Things, that you created with Surforge is your intellectual property.
    As for the package contents (greeble models, etc) there is Asset Store terms of use. Quick search through Unity forums and docs says you could use it outside Unity too, if I'm not mistaken.
     
    pixelsteam likes this.
  43. Flurgle

    Flurgle

    Joined:
    May 16, 2016
    Posts:
    368
    This is mind blowing awesome. @Sergeyv_3d will painting be in by early 2018? And if so, would it support normal, height maps, etc?
     
    pixelsteam likes this.
  44. pixelsteam

    pixelsteam

    Joined:
    May 1, 2009
    Posts:
    924
    Bought your great product. Have not tried it yet. @Sergeyv_3d could it be used to texture a skyscraper with windows.
     
    antoripa likes this.
  45. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    309
    I will try to do my best. But please note, that painting was not initially planned, i need to code it from scratch.
    And although the actual painting on the model is simple thing, it require a lot of hard work to connect in to the current render and material system.
    Please treat with understanding, that a lot of efforts are directed to the first wave of fixes.

    Thank you very much.
    I think Surforge is well suited for architectural models. Assets like this skyscrapers require a carefully planned UVs.
    The key is to optimize your UVs as possible, make it well aligned and stacked where is possible, to carry all that windows details.
    Then you could use Surforge grids, UV snapping, Split tool, your custom materials, based on masks you created, and so on.
    And of course, Surforge is designed for optimized game models, not for super high-poly complex models for architectural renders.

    I was asked to share models from the videos, here is the link: SurforgeTestModels
    Just had not enough time to prepare it for submission. I made it somewhat in a hurry, just for videos, but if you need it, feel free to use it as you like.
     
    Last edited: Feb 16, 2017
  46. anzerkree

    anzerkree

    Joined:
    Feb 16, 2017
    Posts:
    12
    Thank you very much for your help, and for the support.
    With your tips, I created a sci-fi bed in few hours.

    Texturing my mesh become more fun ;)



     
    Last edited: Feb 16, 2017
    Rodolfo-Rubens, TS42, Mark_01 and 6 others like this.
  47. laurentlavigne

    laurentlavigne

    Joined:
    Aug 16, 2012
    Posts:
    2,136
    I understand you don't want to go the route of feature creep but consider how badass surforge would be as a tool to make GUI graphics!

    And wow @anzerkree!
     
    Flurgle likes this.
  48. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    Perhaps he could make a specific version of Surforge for making GUI ?
    If you know a painting programs it's so easy to make GUI elements, i don't see the interest for Surforge to become such tool, it's like asking Substance Designer to be able to make GUI elements.
     
    laurentlavigne likes this.
  49. Enoch

    Enoch

    Joined:
    Mar 19, 2013
    Posts:
    193
    I think the difference here is that it seems like Surforge could do this rather easily (we assume) by simply having a setting that allows for a transparent background (we know render texture can do this) and perhaps 256 and 512 pixel settings.
    Ironically enough I have a huge hulking substance that I put together in substance designer that is specifically designed to spit out GUI icons. It is still amazingly useful as it allows me to tweak look and feel right in unity without extra clicks of opening photoshop and doing it there.
     
    Mark_01 and laurentlavigne like this.
  50. PaulMakesThings

    PaulMakesThings

    Joined:
    Aug 17, 2012
    Posts:
    8
    I'm playing around with this, I just bought it. I'm wondering if it will be good for things other than machines and armor? For example if I wanted to make an animal or a person would this be of much use? If I have a texture for the persons face and I want to add it to a model (maybe one wearing space marine armor which this is well suited for) is there a good way to do that?

    Also will I be able to import my own meshes for decals?

    Looks like a great tool in any case! I'm sure even if it doesn't help me texture non-machine stuff it will be worth the price for industrial and machine textures.