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

Surforge 1.4.5 - 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:
    414
    You could achieve this easily with Unity Editor native tool handle center switcher button "pivot/center" at the very top of Unity window.

    Select the desired PolyLasso created objects in Scene view, while PolyLasso tool not active. Press "[" and "]" hotkeys several times to chanage the profile size.
    profileScale.gif
     
    FlightFight, tcmeric and PolyMad like this.
  2. PolyMad

    PolyMad

    Joined:
    Mar 19, 2009
    Posts:
    2,350
    OK, thank you :)

    Now, I still think there's something wrong going on in the UV reading.
    Look here: an entire UV island is missing: the outer part of the right circle.
     

    Attached Files:

  3. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    414
    Surforge UV border shape points, unlike the regular 3d editors UV preview, are sorted in order. Sorted order is needed to fill your shapes with doubleclick, and also to produce grid in advanced UV Grid mode.
    Trying to achieve that order is in some rarely cases, introduce cycled graphs, which solution could be NP-complete tasks. One of such "unsolvable" cases is when hard edges intersect UV island boder, that adds loops to the sorting graph of shape points. That is because of Unity limitation, as it treats hard edges and UV borders the same for imported Mesh assets. If sorting can't be done fast, Surforge skips such shapes in "UV Grid" display mode.

    You could switch to "classic UV" mode at any time, which shows UVs right in all cases.
     
    Last edited: Oct 3, 2018
  4. PolyMad

    PolyMad

    Joined:
    Mar 19, 2009
    Posts:
    2,350
    You mean that that UV is overlapping? It's possible, the edges were really close... I'll check tomorrow.
    Thanks for explanation :)
     
  5. tcmeric

    tcmeric

    Joined:
    Dec 21, 2016
    Posts:
    190
    Hi seems like I am having some problems with rendering. Unity is set to linear color, forward rendering. I have rendered the texture to 4096, SSAO, 4x AA. Put it onto a 1x1x1 cube with the same skybox. On the left side is surforge, the right is the texture. As you can see, texture is pretty soft looking and the shadow area is especially pixelated, even at 4096. Is there anything I can do to improve this? Or am I doing something wrong? I am on unity 2017.4

    exampleCube.png
     
    Last edited: Oct 4, 2018
  6. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    414
    This could be possibly because of texture compression in Unity. In Surforge texture preview textures are uncompressed.
    Could you select your exported textures and change compression in Inspector, or disable compression to check it.
     
    hopeful likes this.
  7. tcmeric

    tcmeric

    Joined:
    Dec 21, 2016
    Posts:
    190
    Thanks, that made quite a big difference. Especially on the Albedo texture. No compression and up around 2048, and then having compression on the normal, AO, etc, was much better (and reasonable size). Love the program by the way. Makes me look like less of a noob :D
     
    hopeful likes this.
  8. lolclol

    lolclol

    Joined:
    Jan 24, 2013
    Posts:
    212
    ok, how can i add rust, grunge, puddle, moss etc to the model?
     
  9. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    414
    You could add rust easily with "dirt" feature. Set dirt colors to rusty shades of brown, tweak the dirt noise settings, amount and opacity.
    dirtSettings.png
    Check "rusty metals" and "rusty metals 2" material sets, which could be selected from dropdown menu under the texture preview.
    For grunge, worn looking materials you could use "worn edges" feature, along with "paint layers" with paint noise. And also dirts could help here.
    Check "old painted metal" materials in "painted metal" material group.
    rustyMetals.png
    For puddles and moss there are no detail prefabs yet, but you could create your own. Check "rocksRandom_01" in "Surforge\AddDetailTool\PlaceMeshes\". Duplicating it is a good point to start create your own details.
     
    lolclol, hopeful and tcmeric like this.
  10. lolclol

    lolclol

    Joined:
    Jan 24, 2013
    Posts:
    212
    wow thanks for this detailed guide, i never knew there was dirt texture and all these features already available.
     
  11. castor76

    castor76

    Joined:
    Dec 5, 2011
    Posts:
    2,517
    Ok, I really Surforge. I really do.. but I think I will pay more $ for the metalic workflow to be implemented.

    Basically, Metal texture with option to pack the texture this way :

    R. Metalness
    G. Gloss
    B. Ambient Occlusion

    The other textures such as normal and height should be fine as it is. (except Albedo see below )

    It should be relatively easy to convert existing specular maps into metalic maps after it has generated the final result.
    I think, I have seen some docs on how to automatically convert it from spec maps into metalic maps.

    Also

    We need option to be able to export albedo map into SRGB maps, when we work in the linear mode. This is just more standard Unity way. This should really be easy. ( it should have been like this from the beginning anyway )

    Again, I would pay extra $ for this update. Please contact me!
     
  12. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    414
    I am working on Metallic workflow right now, and have a good progress.
    Besides new shaders, creating the material library copy for Metallic require a lot of work.

    The packing options is interesting idea. But have to finish metallic workflow first.
     
    bzkarcade, red2blue, lolclol and 2 others like this.
  13. bzkarcade

    bzkarcade

    Joined:
    Oct 5, 2017
    Posts:
    21
    Surforge with Archimatix

    Hello, thank you very much for your work in this asset, I have been using it for a few months for the materials of my game.

    But now that I want to use it to paint some objects created in archimatix I have a problem with the UV islands.


    In his tutorial of the integration with archimatix he uses the material node directly in archimatix and the material could be applied on the mesh, but in some of my models this technique can not be applied since I need to draw the details more similar to how it is done in "Surforge - lowpoly RTS building texturing". So I make the prefab of my model I put it as a reference in Surforge, but the position of the UV mesh is always superimposed, in the images that can be seen from its basic model of archimatix (The Cathedral) that overlaps and can not be Draw correctly.

    Capture2.PNG

    Some idea to do a UV sorting procedure similar to your ProBuilder tutorial

    Thanks for your comments
     

    Attached Files:

  14. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    414
    Hello,
    Thank you very much for using Surforge.

    Surforge is designed to work with UV layout, where all UV islands fit the texture space without overlaps. The UV islands are packed in the square, and one material / one set of textures is used for entire model. The different materials of different model parts achieved through the different areas of one texture set. This is a proven approach used for objects almost everywhere, except architecture and procedural generated geometry. It makes able to use unique details for every part of the texture. It saves draw calls and texture memory, as it uses only one material for entrie model, even when the model looks like it consists of several completely different materials.

    The Archimatix approach is based on using several separate materials together, so it not bother with UV islands overlaps. The size of UV islands usually not matters too, because of using the repeat of one seamless texture for the whole material with "tiling" property of the material. This approach is usually used for architecture things for simplicity (UV packing not required), and for models with large area of surfaces, which can't be effectively packed into normalized UV square. But you can't create unique details for every part of the surface this way - it will repeats for another surface areas, covered by tiled material. You need separate material/texture set for every material used on such model.

    So, after this introduction to the theory, what can be done using Surforge + Archimatix.

    1. Use Archimatix approach of multiple materials, while materials itself created with Surforge, in advance or on the fly.
    Surforge could be very handy here, as it helps you with creating seamless materials a lot.
    You could check the example in this video:


    2. Use Archimatix as a modeling tool, and use classic approach to texturing. This require export of Archimatix model, and create the UV Layout in UV editor. After UVs done, you just import model to Surforge and work as usual.
    This is needed to fix the issue on the screenshot you provided - UV islands are too large and out of normalized UV square.
    Blender (free tool) could be effectively used for creating UVs. Also ProBuilder (free) has UV editor.
    You could check the basics of creating UVs in blender in this video:
     
    Last edited: Nov 21, 2018
  15. bzkarcade

    bzkarcade

    Joined:
    Oct 5, 2017
    Posts:
    21
    Thank you for quikly reply

    The option 1 does not go for several of my models, however I have been able to edit the uv islands in pro builder (like option 2), but manually what makes me a lot of effort. However with the qUVeditor I have been able to do it a bit easier and if it is compatible with surforge :)
     
  16. bzkarcade

    bzkarcade

    Joined:
    Oct 5, 2017
    Posts:
    21
    Hello, I am again, I have been working with several models create on archimatix, but I have some drawbacks with the models where the mesh is multiple, and that is in the preview of surforge only one piece of the mesh appears, as the image attached . I have been able to show the complete mesh by placing it manually next to the preview object "composer", and applying the culling mask of the preview camera.

    Will there be some simpler way?

    Capture3.PNG
     
  17. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    414
    Hello,
    Please treat with understanding, that Archimatix is an asset from other developer.

    To be able to see the mesh in Surforge texture preview and UV islands on Scene view, the object have to consist of single mesh with single material assigned.
    If your model consists of several mesh objects, you could check the meshes in Unity Editor Project tab, by uncover the contents of your model file. You could drag the meshes to Surforge mesh field one at a time, and change it any time, while keeping your texture work untouched.

    If you can't see the parts of single mesh, it could be because of several materials assigned to the mesh. Surforge works with single (first) material assigned to the mesh, as it creates different materials through material IDs, not separate materials.

    For such object, the best solution is to edit the object in 3d editor, attaching all the meshes together, assign single material and pack the UV islands. This will make future texture work much easier, and also make the model more optimized in terms of performance and draw calls.

    If you need help with it, please send me the model file on mail@surforge.com and i will show the easy steps how to do it on your model example.
     
    Last edited: Nov 25, 2018
  18. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    414
    Great news!
    Surforge is now on 50% OFF Cyber Week Mega Sale.
    If you do not own your copy of Surforge yet, do not miss this great opportunity. :)

    I also plan to release the Metallic Workflow update after the Sale, and rise the price a bit with the update.
    So it is a great moment to snatch your copy now.
     
    castor76 and AthrunVLokiz like this.
  19. bzkarcade

    bzkarcade

    Joined:
    Oct 5, 2017
    Posts:
    21
    Sure, sure I am already in contact with the other guys.

    the answer you give me is similar to what I expected, at some point there is some mesh [0] ...


    I need to do a little more testing, but I've focused on my single mesh models these days

    When I have something more enriching for you, I will be in touch with you.
     
  20. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    414
    In upcoming Surforge 1.2 it is possible to choose between Specular and Metallic workflow.
    Just start with the one better suits your project.

    surforgeMetallicWorkflow.png
     
  21. ShockWave2048

    ShockWave2048

    Joined:
    Mar 15, 2015
    Posts:
    30
    Good news! Can't wait! What a time about release 1.2.0?
     
  22. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    414
    I plan to release the update soon after the Sale.
    Still need to finish several things and test everything carefully.
     
    Last edited: Nov 30, 2018
    red2blue likes this.
  23. ShockWave2048

    ShockWave2048

    Joined:
    Mar 15, 2015
    Posts:
    30
    Need some beta testers ? )))
     
  24. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    414
    Thank you very much for your help offer.
    We are testing this update by our team. The things for testing are also quite specific.
     
    Last edited: Dec 4, 2018
  25. GLagolick

    GLagolick

    Joined:
    Jun 27, 2017
    Posts:
    7
    upload_2018-12-18_23-12-24.png
    What can fix this? Help please :c Thank you
     
  26. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    414
    This issue will be fixed in upcoming update.
    For now, you could use this simple solution for 2018.3
    In "Surforge\SMAA\Scripts\Editor\MinDrawer.cs" add "Smaa." before "MinAttribute" in 3 places like this: reference_fix.png
    Save the file and wait for scripts to recompile. It should work fine after this.

    I am sorry for the inconvenience. Please treat with understanding, something changes in new Unity versions often.
     
  27. Davood_Kharmanzar

    Davood_Kharmanzar

    Joined:
    Sep 20, 2017
    Posts:
    411
    hello,
    does a chance to support HDRP?
     
  28. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    414
    Export to HDRP texture format is in future plans.
     
    Gekigengar likes this.
  29. castor76

    castor76

    Joined:
    Dec 5, 2011
    Posts:
    2,517
    How is next update with metal work flow coming along? I am very eagerly waiting for this! Please consider putting in option to pack texture.

    Packing should be optional and we should be able to config this for our custom usage :

    Metal
    Smoothness
    Height
    AO

    We should be able to choose which channel of the texture (RGBA) we would like each feature to be packed with.
    The implementation don't have to be complicated with blotted UI. we can just have a text file config, or some simple scriptable object with enum choice for RGBA.

    Also a reminder that albedo maps should be SRGB maps. They should not be a linear map. (even for a linear space setup) This is how Unity expects in their standard shaders and we should keep it like that for consistency.
     
    Last edited: Dec 31, 2018
  30. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    414
    Hope to release the Metallic update in the early January. I'm doing my best to finish it as soon as possible.

    Texture channel packing will be immediately after it.
    Please treat with understanding, the update with latest Unity version support is urgent thing. GPU channel gluing and files stuff should not be done in the last moment.
    Thank you very much for the positive feedback and high rate :)
     
    AthrunVLokiz likes this.
  31. castor76

    castor76

    Joined:
    Dec 5, 2011
    Posts:
    2,517
    I thought that i left rating before. But i guess i was too busy using the tool! Haha.. it is the least i can do... once Remilore is released i will also do some talk about how we made the game using surforge. It will draw more user to surforge.
     
  32. castor76

    castor76

    Joined:
    Dec 5, 2011
    Posts:
    2,517
    I was wondering how I can create something of more round bevel edges?

    upload_2019-1-2_14-37-7.png

    Poly lasso object has bevel parameters but changing them does nothing...
    Do I need to create a new lasso object with increased bevel setting?

    Actually, bevel was not the correct option.. I wonder what controls it?

    I found it. I think they are offset and height. I understood how it worked. But I can't seem to find a way to refresh the changes I have made unless I restart Unity. How do I refresh the changes? I have modified the profile prefab, but it looks like the changes are not loaded, so it is still using the old values unless I restart the Unity.
     
    Last edited: Jan 2, 2019
  33. cloudsd

    cloudsd

    Joined:
    Sep 10, 2016
    Posts:
    2
    hey there

    bought surforge awhile ago cause it Looks so nice but cant Import it into Unity... :(

    if i try to Import into new Project it Always says that there is Nothing to Import

    PLSS help really would like to use surforge in future Projects

    thank u
    and
    wfw
    Cloud development studios
     
  34. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    414
    Hello,
    Thank you very much for your purchase.

    Please don't worry, i will do my best for everything to work for you.
    In the case of a sort of Asset Store related issue, please email me your Invoice number to mail@surforge.com and i will provide you the package.

    For creating your own Poly Lasso presets, you could find the Poly Lasso profile properties description in "Surforge/PolyLassoProfile.cs"
    For now you have to restart Unity Editor for custom Poly Lasso profile prefabs changes to take effect. I plan to improve it in the future updates.
     
  35. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    414
    Great news guys!
    Surforge 1.2.0 is here. It was huge!

    Metallic workflow support.
    Choose between Specular and Metallic workflows, with appropriate preview, edit, and export results.
    Unity 2018.3 compatibility.
    Increased performance of tools.
     
  36. castor76

    castor76

    Joined:
    Dec 5, 2011
    Posts:
    2,517
    Dance! Dance!
     
  37. ShockWave2048

    ShockWave2048

    Joined:
    Mar 15, 2015
    Posts:
    30
    WOW!!! At now is TRUE New Year!!!
     
  38. netpost

    netpost

    Joined:
    May 6, 2018
    Posts:
    388
    Hi, I just bought Surforge. It seems like a great asset. Curiously the split shortcut (control + left click) with the poly lasso does not seem to work at all. Also pressing return does not do anything at my last point and hitting return neither. I have to close the loop to continu working which create a block. I check many tutorials but perhaps I am missing something. I am using the latest version with unity 2018.18.2f1.

    Thanks for your help!
     
  39. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    414
    Hello,
    Thank you very much for your purchase and feedback.

    Could you please check:
    - No third-party assets intercept input.
    - The object you are going to split is Poly Lasso object.
    - The Poly Lasso objects you are going to split selected in the Unity Scene View.
    You could split multiple Poly Lasso objects at once, but they should be selected.
    - The starting point of the cutting shape and end point are both outside the Poly Lasso objects you are splitting.
    - Hold Control key only when setting the last point of the cutting shape.


    For the shape finish the most handy way is to use double left click. But both "return" and "enter" should work.
    The shape should consist of minimum 3 points to be able to form a polygon and create object (this is not required for object splitting shapes).
    Could you please check Surforge of the latest version 1.2.0 installed correctly in the fresh empty new project, no red errors in the console, pressed "go ahead" during import.
     
    Last edited: Jan 21, 2019
  40. netpost

    netpost

    Joined:
    May 6, 2018
    Posts:
    388
    Thank for the quick reply. I just realized that when starting a new texture, I should fill the whole background (left double clicking) before starting the split. I was basically trying to split the black grid without any material on it. It make sense... How can you split something that doesn't exist. ;)

    This asset is AMAZING!
     
  41. castor76

    castor76

    Joined:
    Dec 5, 2011
    Posts:
    2,517
    Hi @Sergeyv_3d

    The exported Albedo map needs to be in SRGB space. Currently it is in linear mode. This is not consistent with how Unity handles its default albedo map. It also makes the look of albedo too dark inside Unity so it is hard to recognize the image. I have asked for this many times in the past.

    If you look at the default way of how Unity handles the albedo map, it is in SRGB.
     
  42. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    414
    Could i explain in detail.

    "Another main benefit of Linear is that shaders can also sample textures without Gamma (midtone) compensation. This helps to ensure that color values remain consistent throughout their journey through the render pipeline. The result is increased accuracy in color calculations with improved overall realism in the eventual screen output."
    Сitation from: https://unity3d.com/learn/tutorials/topics/graphics/choosing-color-space

    First of all, gamma and linear textures could be easily converted one to another with this simple operation:
    texture = pow (texture, 2.2); //apply gamma correction
    texture = pow (texture, 0.454545); // remove gamma correction.
    It is what Unity Editor do for you, when you use texture, stored on the hard drive gamma correctred in Linear project.

    The only thing we have to worry, is a possible slight quality loss of some peak values during this operations.
    As a pro texture artist, you usually want to minimize that quality loss, by minimizing that conversion steps when possible.

    So, what things actually occur in the shader in Linear project.

    1. When using textures, stored on the disk without gamma correction (looks "burned/dark").
    Texture go to the shader - shader lighting/blending math done - your result - gamma correction.

    2. When using textures, stored on the disk gamma corrected (looks normal, like photos).
    Gamma correction removed - texture go to the shader - shader lighting/blending math done - your result - gamma correction.

    When the project in Linear mode, Surforge doing all it's composing blending math directly in Linear, then export exact result as linear texture.
    No extra conversion steps, no quality loss.
    It is what i implemented several versions ago by the users intense requests.

    What do you suggest: Surforge result - apply gamma correction - store on disk - remove gamma correction - render pipeline.
    This is actually the same as run Surforge in Gamma project, export results and use it in Linear project with Unity Editor built-in gamma correction remove option.

    But, this could be added as option to apply gamma correction before export, if it is really needed.
     
    Last edited: Jan 25, 2019
  43. castor76

    castor76

    Joined:
    Dec 5, 2011
    Posts:
    2,517
    Yeap, I think, it is going to be best to put it as an option. We don't really need any fancy UI for this, we just maybe need a text config file setting up the gamma or linear option for each texture output per project setup.

    As for the artist point of view, it is just best to keep everything consistent. The thing is that the other pbr assets such as from megascan or substance bitmap export and even most of the other Unity asset's setting is done such way that Albedo and AO is SRGB and the Normal is set as Normal, Specular, Metal, Gloss are set as linear.

    It is very confusing and easy for the artist to make mistakes when you have to deal with different setups...
     
  44. lolclol

    lolclol

    Joined:
    Jan 24, 2013
    Posts:
    212
    is it possible to achieve texture like this?
     

    Attached Files:

  45. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    414
    I understand your point. I will add it. Project consistency is important.
    I am afraid this is not possible with Surforge.
    Such texture work involves high-poly sculpting and hand painting.
    You should use software like Zbrush for this, and this also require high artist skills and a lot of work.
     
  46. lolclol

    lolclol

    Joined:
    Jan 24, 2013
    Posts:
    212
    ok understood, surforge is only for hard surface texturing.
     
  47. castor76

    castor76

    Joined:
    Dec 5, 2011
    Posts:
    2,517
    Not necessary. But yes, Surforge has its pros and cons. You have to be prepared to use whatever necessary to get to your goals. RemiLore has been textured entirely in Surforge, including characters! The game had everything from mechanical monsters to the rocks, bricks, wood fence etc..
     
  48. lolclol

    lolclol

    Joined:
    Jan 24, 2013
    Posts:
    212
    one more question, how can i add custom detail meshes ?
     
  49. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    414
    The easiest way to add your custom meshes to your texture scene is just to drag it to your Scene View inside the working field, and press 1-8 keys on the top of keyboard text block (not numpad) to add Material ID to your object. Once it got the ID, it will appear on your texture when you render it with "space" hotkey.

    It is possible to add custom details to Add Detail tool list.
    To do it, check "Surforge/AddDetailTool" folder. Surforge details actually regular Unity prefabs in "PlaceMeshes" subfolder. Good point to start is to duplicate one of them, change your mesh, icons, and needed properties. For now you have to add it to the list inside "placeMeshes" prefab located there, save project, and restart Unity Editor for changes to take effect.
     
    hopeful and lolclol like this.
  50. PixelLifetime

    PixelLifetime

    Joined:
    Mar 30, 2017
    Posts:
    90
    Can I use created textures for sharing and exporting outside of Unity?