Search Unity

Surforge 1.4.5 - 3D rendered PBR texturing in Unity

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

  1. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    Wow!! Thank you for that, @Sergeyv_3d !

    Fabulous video and looks exactly what we need. Can we add our own substances or only use yours? Can we add our own "parts" too?
     
    antoripa likes this.
  2. tango209

    tango209

    Joined:
    Feb 23, 2011
    Posts:
    379
    Not sure about substances, but he mentions the 'parts' and materials.

    Parts:

    Materials:

     
  3. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    Thanks, Tango.

    I would love some information on recreating materials in Surforge. I have a subscription to gametextures.com so have a lot of textures I would love to convert. If I can't do that with the substances, the pbrs might work.

    Hopefully we can get some information on that soon. As nice as the included textures are, they don't cover everything.
     
  4. Enoch

    Enoch

    Joined:
    Mar 19, 2013
    Posts:
    198
    I asked about this somewhere on page one, but essentially a straight easy conversion from a substance output or other PBR source is not possible. You can include the diffuse/albedo and add other bitmaps on top of that but Surforge has its own material system. It's not that hard to create a new material and get a good look and feel, and your existing diffuse/albedo textures will be useful but you will have some more work.
     
  5. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    I don't mind extra work but I would love to have information on how to do this before I purchase it. I don't want to be limited to the materials available.
     
    antoripa likes this.
  6. antoripa

    antoripa

    Joined:
    Oct 19, 2015
    Posts:
    1,163
    You can add new materials. it's even mentioned in the user guide. You have to tweak a prefab used to keep the default settings. But next versions should include a more friendly feature to do that. I have not yet tested that, I am going to do soon
     
    Teila likes this.
  7. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    Thanks. I will test it too soon. :)
     
    antoripa likes this.
  8. antoripa

    antoripa

    Joined:
    Oct 19, 2015
    Posts:
    1,163
    Great tool ... and great potential ...
    Only one point ...Using the Lasso in few situation can be a bit tricky select a point from UV map when is covered by a filled area. If I am not doing any mistake, I would have an option to make temporary that area transparent or hide

    upload_2017-2-26_8-41-52.png
     
  9. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    414
    I will check it. Thank you!
    You could still snap to it if needed, even if you do not see it.
    You could also change your snapping settings, by default it snaps to everything.
    Surforge is based on Unity Editor prefabs. If you somewhat familiar with it, you could add anything you want.
     
    Last edited: Feb 26, 2017
    antoripa likes this.
  10. Epimolophant

    Epimolophant

    Joined:
    Dec 6, 2014
    Posts:
    33
    Suggestion: When exporting textures, make it remember the last folder you exported.
     
  11. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    414
    Surforge 1.0.1 now available on the Asset Store

    added: compatibility with ProBuilder. This is still early implementation. To use it enable "meshes are assets" option in ProBuilder preferences. Drag and drop result mesh asset to Surforge mesh field and use Ctrl + Space hotkey to update your mesh.
    added: 12 Fantasy ornament Add Detail tool mesh assets.
    added: Poly Lasso profile scale slider.
    added: Poly Lasso profile scale hotkeys [,] for Poly Lasso tool, while it active, and for existing selected objects while tool inactive.
    added: auto focus on models of different scale in texture preview with doubleclick or mesh change.
    added: create material on export with map links.
    added: exported normal map mode switches to "normal map".
    added: add Detail tool: select last added item.
    added: last used transform tool activates on Surforge tools exit.
    added: switch on Unity Editor tools deactivate Surforge tools.
    added: example models for testing
    added: single page SurforgeHotkeys.pdf

    fixed: certain layouts were needed revert to factory settings to run Surforge.
    fixed: model loading issue for similar models.
    fixed: proper model asset changes detection.
    fixed: better UV islands recognition. Now handles overlapped islands, and islands shared an edge. Still need neat UV islands without folding for proper work. For tricky UV layouts please use "classic UV" mode instead.
    fixed: issue with saved scene or model load while UV Guides mode off.
    fixed: shrink/expand undo.
    fixed: global texture scale adjustment was wrong on exported maps.
    fixed: hotkeys holding down: better precision and performance.
    fixed: possible minor memory leak on continued material icons update.
    fixed: zoom was limited in texture preview.
    fixed: blender native format models with no UVs error.
    fixed: issues with ProGrids.

    changed: shrink/expand hotkeys from left/right arrows to shift + [, ] to not override Unity Editor standard hotkeys.
    changed: move object up/down hotkeys from up/down arrows to +, - to not override Unity Editor standard hotkeys.

    Should work within active session, it seemed not very convenient to keep the path between different projects. I will check it, thank you!
     
  12. laurentlavigne

    laurentlavigne

    Joined:
    Aug 16, 2012
    Posts:
    6,334
    I see you're struggling with curved polymesh, do you have a freeform lasso instead of snap-to-vertex lasso?
     
  13. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    414
    I am afraid there is no freeform lasso yet. More shape editing tools are planned in the future releases.
    You could disable snapping for now with the magnet button, or change snapping modes with little lock buttons on the bottom panel.
    There are also Poly Lasso profile with built-in rounding and Arc tool available for now.
     
  14. anzerkree

    anzerkree

    Joined:
    Feb 16, 2017
    Posts:
    14
    Thanks a lot Sergeyv_3d !

     
    radimoto, nxrighthere, Enoch and 3 others like this.
  15. smada-luap

    smada-luap

    Joined:
    Aug 22, 2013
    Posts:
    945
    I should have the cash for this in a couple of weeks' time so I can get this :)
     
  16. Astaelan1

    Astaelan1

    Joined:
    Sep 29, 2015
    Posts:
    192
    Really impressed with this asset, thinking about picking it up soon.

    Just had one question really, have you tried kitbashing UI's together with this? I had the idea that this would make creating UI's simple and impressive. Kinda came to me while watching the video texturing one side of a box, would love to see a few extra elements in support of UI stuff, while most of it is already there, heck even a demo to show it's capable of it would impress even more people, not that this needs more... I was sold on the first video.

    Very well done, as a programmer this one is a must have for me.
     
  17. Epimolophant

    Epimolophant

    Joined:
    Dec 6, 2014
    Posts:
    33
    I'm experiencing crashes on Unity 5.5.2f1 when I try to render a model. Anyone else having this problem?
     
  18. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    414
    Thank you.
    UI creating will be added for sure, could be very useful. It's tightly connected with transparency, so need to add it first.

    Unfortunately, yes.
    I am afraid its Unity 5.5.2 bug, and you could crash the editor with Graphics.Blit on renderTexture camera without Surforge.

    The issue fixed, and 1.0.2 update on its way to approvement. It's mainly a Unity 5.5.2 compatibility hotfix.
    - Added workaround for using Graphics.Blit with renderTexture caused Unity 5.5.2 to crash if material was not refreshed.

    - Added "Winged Helmet" model and texturing example scene.

    New example model for future video tutorials, fantasy themed. I modeled this guy in Blender, and created quick test texture design with Surforge.
     
    Last edited: Mar 8, 2017
    Mark_01 and pixelsteam like this.
  19. Epimolophant

    Epimolophant

    Joined:
    Dec 6, 2014
    Posts:
    33
    I found that if I create a brand new project already in 5.5.2 it works.
     
  20. Astaelan1

    Astaelan1

    Joined:
    Sep 29, 2015
    Posts:
    192
    I am sold. This will be getting pushed up my list to purchase very soon, especially with transparency and any other polish you add to support UI, that was the final decider :)

    Keep up the great work!
     
  21. SteveB

    SteveB

    Joined:
    Jan 17, 2009
    Posts:
    1,451
    This tool is fantastic! (and I'm a Zbrush/Substance/Quixel user)

    Now is it safe to assume that the original object has to have it's material ID's already set up if I were to want to change materials on specific parts of the object?

    For example (and using your crown model sample file), I wanted to change the material on just the pointed spires (I can't believe I can't find the name for these) that encircle the band. In other words I simply wanted your preexisting crown object to have different materials.

    Thanks man and great job!

    -Steven
     
  22. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    414
    I am afraid you can't import your existing ID map in current version. But you could easily create new in Surforge, just fill some UV islands, select your texture elements and press 1-8 hotkeys to set ID's.
    I plan to add this functionality, but it is harder to implement than it seems. Have to code select/detect its colors, mix it with Surforge ID map and resolve transparency mixing antialiasing issues.
    It is really nice feature to have, with already existing base normal and AO maps import, you could get Surforge features on top of highpoly baking pipeline.
     
    lundon likes this.
  23. SteveB

    SteveB

    Joined:
    Jan 17, 2009
    Posts:
    1,451
    Oh no this works very well!

    And just to be clear I wasn't referring to Mat IDs as in a Color Map, but rather how you're able to set Material ID's in say 3DSMax, where then in Unity it would be multiple materials assigned to a single object.

    Seriously this tool is rather amazing...very impressed! :D
     
  24. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    414
    Surforge is designed to work with single material. You could easily set your material masks inside Surforge, and then it will export all into one set of textures. You achieve the same result, but with one material and less draw calls.

    I finally managed to get my stuff look good on Sketchfab. Here is a quick guide.

    If you use stacked UVs and import your model as .fbx, you get wrong normal direction on mirrored UV islands.
    I managed to fix it with importing my model in Blender format, it had correct normals then.

    Sketchfab shader is little bit different from Unity Standard shader. While you got your materials looks great in Unity, you may have to tweak your textures a bit to get it look good.

    I had issues with Sketchfab Ambient Occlusion material slot. It really not worked for me as intended. In "Occlude specular" mode, it outlines my model normals badly, and made material details looks terrible. Without that option it had no effect for hight specular materials at all.
    So, here is a workaround that i found:

    Albedo: Multiply your Surforge exported AO with Albedo.
    Specular: Make your specular map brighter, and multiply your Surforge exported AO with it.
    Glossiness: Save your glossiness as separate file. Surforge exports it on Alpha channel of your specular texture. Better have your file color settings in "rgb" mode, not "grayscale" (it tends to have less intensity when import).
    Displacement: Was not usefull for me. Its not for parallax heightmaps, just polygon displacement for highpoly meshes.
    Normal map: Just import your Surforge exported Normal map.
    Ambient Occlusion: do not use.
    Cavity: Your Ambient Occlusion map goes here instead.
    Emission: There is no "hdr" option here, make your exported emission intensity higher in your image editor.
    sketchfabMaterialSettings.png
    Choose suitable environment in lightning tab, and turn lightning on. I also added a little bloom and chromatic, for model looks more interesting.
    Here is the result (left image is Unity, right Sketchfab).
    sketchfabWingedHelmet.jpg
     
    Last edited: Mar 9, 2017
  25. SteveB

    SteveB

    Joined:
    Jan 17, 2009
    Posts:
    1,451
    I think I have a handle on it now Sergeyv!

    Now new problem...either I'm crazy or I simply cannot for the life of me assign a new material mask to any new poly lasso/detail object. I've hit the the corresponding number, I've hit Shift + Number, I've tried dragging...nothing is working.

    I'm doing this while in the Material section btw

    Thanks man!

    -Steven
     
  26. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    414
    Are you using the number keys on the top of your keyborad text block (not numpad keys)?
    Poly Lasso or detail game objects selected in the scene? You have to re-render your texture with Space or render button then.

    Please do not be confusing with material masks assign (scene) and material mask use (material editor).
    Material mask IDs set in the scene, then render to Surforge internal texture. Then you could use your material editor realtime features: drag and drop you materials to the areas of the rendered ID map, swap them, copy and tweak. If you need then to update your mask IDs, add new texture detail objects for example, select it in the scene, assign ID and press Space to render. Your new object will have the corresponding material.
     
    SteveB likes this.
  27. SteveB

    SteveB

    Joined:
    Jan 17, 2009
    Posts:
    1,451
    Okay you have to hit SPACE to render the main Surforge view before Material Masks are made available! Gah!!

    Sorry for wasting your time man haha

    EDIT: Yea no I keep forgetting to hit Space...needs to become reflexive for me! :D
     
  28. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    414
    That is made for separate realtime features from things you have to wait.
    You could use super fast 1024 preview render, create all needed detail, assign your IDs than render high res map and fine-tune your materials in realtime. You could also swap your materials in Texture Preview with ctrl+c, ctrl+x, swap materials randomly within the set (very handy for quick find color designs), drag and drop materials: all without re-render. You could even change whole material sets in realtime, and work on multiple variants at once.
    Please check Evan's video about material sets.
     
  29. SteveB

    SteveB

    Joined:
    Jan 17, 2009
    Posts:
    1,451
    Don't get me wrong @Sergeyv_3d I'm loving Surforge!

    It'll be a small learning curve before it's second nature, and I'm totally on board with this asset :D
     
  30. SteveB

    SteveB

    Joined:
    Jan 17, 2009
    Posts:
    1,451
    Okay so I was working on the LinPanel, did my detailing, etc, then I updated Surforge to the latest version.

    Upon reloading the scene, Surforge became undockable, and simply loaded the preview render without any UI and I could not close the window. Ultimately I had to delete the System asset in Hierarchy which removed my ability to continue working on the LinPanel texture.

    This is all in all no big deal, and expected when updating to the latest version of any software, but in case this is something you might want to know about I'm mentioning it here.

    Thanks Serg!

    -Steven

    Here's an image of the bug:

    SurforgeUpdateBug.JPG
     
  31. SteveB

    SteveB

    Joined:
    Jan 17, 2009
    Posts:
    1,451
    Hmmm adjusting Bevel Amount/Steps doesn't appear to do anything, and I can't see any other place to adjust the bevel as you demonstrated on the first page...
     
  32. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    414
    You could adjust your PolyLasso profiles scale in several ways:
    - Use slider in Poly Lasso tab. This will adjust the size of the next PolyLasso objects you are going to create.
    - Select your Poly Lasso objects in the scene and press "[" and "]" hotkeys, while your Poly Lasso tool is off.
    While Poly Lasso tool is on, "[" and "]" keys adjust future scale, the same as moving the slider in GUI.
     
  33. laurentlavigne

    laurentlavigne

    Joined:
    Aug 16, 2012
    Posts:
    6,334
    From the video I see that painting is done on the UV layout. Can I click on the model to highlight the UV island, or even draw the lasso directly on the 3d model?
     
  34. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    414
    Drawing the lasso directly on the model or fill islands directly is interesting idea. I will explore it.

    You can highlight UV island by holding Control while hovering mouse pointer over 3d model surface.
    There are some UV islands, which border not fully recognized at the moment. Now i am working on improving this.

    As you know, Unity has no native classes for handle UV islands. Finding UV border, which is needed for fast filling and snapping features is a complex task.
    It includes more advanced data structures than Unity native mesh, graph searches, shape filtering, duplicates removing, etc. All this also closely related to performance and model loading speed.

    I am now working on optimization of the things mentioned above, and already have very good results.
    Viewport performance will be improved a lot in the next version. Also I managed to speed up snapping greatly, as well as model importing speed. surforge103performance.png

    In the next version, any reasonable model that Unity could handle will be no problem for Surforge.
    Fast viewport with no lags even for complex meshes, with all snapping features at real time, and better UV island borders detection.
     
    Last edited: Mar 16, 2017
    Teila likes this.
  35. laurentlavigne

    laurentlavigne

    Joined:
    Aug 16, 2012
    Posts:
    6,334
    That's super interesting. I think you'll eventually make your own auto-retopo tool.
     
  36. laurentlavigne

    laurentlavigne

    Joined:
    Aug 16, 2012
    Posts:
    6,334
    I havea feeling what you're doing is the core of UV-less workflow so I had a glance at the PTex source code and before my eyes started bleeding I saw they're doing some graph search like you, have a look https://github.com/wdas/ptex/tree/master/src/ptex
     
  37. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    414
    Please not be confused with that stress model on the screenshot.
    It's just a subd cube with auto UV and subdivided again. Good for tests as it has lot of triangles and lot of separate UV islands.
    There is no useful way to get rid of UV in 3d in general now, and Ptex really a not good direction to aim. Not for quality real time models at least.

    Surforge pipeline initially based on UV islands. It's actually an advantage to have a good UV layout for your model. You could use UV symmetry, fast create texture elements, fill areas, have interesting borders and offsets.

    It is not a problem to create good UV layout nowadays. Blender has great UV tools, and even vertex perfect, stacked, fully symmetrical UVs not a problem to create with little practice.
    And if you don't want to bother with it, you could just set your UV seams and click unwrap. If your seams set optimal you could get very satisfying result.

    It could be useful to have some UV tools in Surforge. But it is not simple at all to code a good UV editor itself.
     
  38. juliocdep

    juliocdep

    Joined:
    Sep 30, 2010
    Posts:
    30
    Hello,

    I'm having some problems with the materials and texture preview, it seems that they aren't been rendering correctly. Take a look at it (the black area should be a silver metal actually):

    surforge.jpg

    I don't know if this is a problem with the lightning or quality setting, but I'm using a clean project and I didn't change any settings.
     
  39. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    414
    It looks like a problem with a shader.
    Please don't worry, i will do my best to solve it.
    It would really help if you provide your system details, hardware, os, Unity version.

    What graphics API are you using in Unity? Could i see a screenshot of the graphics API available?
    (Edit-Project Settings-Player, in the Inspector tab: Other Settings, and uncheck "Automatic Graphics API" and make a screenshot of appeared options). There was similar issue when new project settings was Webgl mode.
    If you are on Windows, you could try to switch Unity in directx 9 mode, this could help on some systems.
    Could i also ask you to check your GPU driver is up to date.

    You could send the details to the mail@surforge.com
     
    Last edited: Mar 18, 2017
  40. pixelsteam

    pixelsteam

    Joined:
    May 1, 2009
    Posts:
    924
    Been really enjoying this asset. Fantastic work.
    Is there an easy way to define what material is being used per UV island, versus going up through the material one by one.
     
  41. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    414
    Thank you.

    When you drag-and-drop a material to the corresponding material mask ID, Surforge makes a copy, not reference. This is made because Surforge pipeline assume you could change your material settings at any time. And all model surface areas with the same material ID already have material shared.

    You could hover your mouse over the point of the model surface in Texture Preview, and hold Control (the window have to have focus for it at the moment).
    The active material of current material set will be selected in the Material Editor. It will show the current material ID in the dropdown menu of the Material Editor. You could also use ctrl+c, ctrl+v, ctrl+x to copy, paste, and swap with last copied for your materials under mouse pointer.

    Also material masks are color coded in the scene.
     
    Mark_01 and pixelsteam like this.
  42. smada-luap

    smada-luap

    Joined:
    Aug 22, 2013
    Posts:
    945
    I haven't got this yet but I was wondering if the following scenario was possible...

    I have two cubes that have been unwrapped so that the UV maps on both cubes share the same data points (the "top" face on one UV map is the same on the other cube's UV map, etc.). Now I want to make all the 'side' faces the same on both cubes but have the 'top' and 'bottom' of the individual cubes to have different textures. For this scenario, assume that there's no space available to atlas the textures so the two 'top' and 'bottom' faces are on the one texture sheet.

    Is it possible to copy over the various elements that Surforge uses to create the final textures for the 'side' faces on one cube over to the second cube? Or will I have to manually copy/paste the various sections of the final results (for albedo, normal, emission, etc.) between texture files in Photoshop?
     
  43. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    414
    If i understand the scenario right , you could easily achieve it with Surforge.
    Surforge use model only for reference, and actual works with your square texture.

    Load one of your models. Create shared texture details. Set your materials.
    Add individual details for model 1. Export texture 1, save scene 1.

    Change your model, all texture work remains. New UV islands will be shown in the scene.
    Leave shared detail untouched, delete individual details from first model (which could now not match your second model UVs, if they are partially different). You could also move detail around the texture, as all texture elements in Surforge are GameObjects.
    You could use material settings from the first model, or create new. You could store with the scene as many material sets as you need and switch them any time.

    Add individual details for second model. Export texture 2, save scene 2.
     
  44. smada-luap

    smada-luap

    Joined:
    Aug 22, 2013
    Posts:
    945
    Thanks for the reply. Sounds like that's the workflow I might be adopting :)
     
  45. SniperEvan

    SniperEvan

    Joined:
    Mar 3, 2013
    Posts:
    161
    Here is another quick Surforge tutorial. In this one I give some advice about creating good worn edges. This video is in a playlist so if you want to see more basic tips and tricks scroll up in the playlist.



    Happy deving everyone
    ~Evan
     
    frbrz, jc_lvngstn and Inspeinre like this.
  46. SniperEvan

    SniperEvan

    Joined:
    Mar 3, 2013
    Posts:
    161
    Hey again,



    This one demonstrates how to create a Texture Atlas with Surforge and then map that to the object in Blender. This is useful when the geometry of the model is too complicated or too hard to preview in Surforge.
     
    frbrz, Inspeinre and Mark_01 like this.
  47. Sergeyv_3d

    Sergeyv_3d

    Joined:
    Jan 27, 2017
    Posts:
    414
    Great tutorials as always. Thank you very much, Evan.

    I would like to add, that in upcoming 1.0.3 version of Surforge there will be no problem to load even heavy meshes, (if it fits Unity limits of 65k vertices).
    A lot of hard work on optimization done, and viewport speed, model loading speed and island border shapes detection got huge improvements.

    But auto projection really not the best approach of making UVs for a character model. This related not only to Surforge, but texturing in general.
    Blender have one of the best UV tool sets ever, and you could easily create better layout, using "mark seam" and "unwrap" Blender features. Also, if you map your model before the apply of symmetry modifier, you could have your symmetrical islands stacked, and would not have to match them by hand.
    The better your stuff mapped, the easier is to achieve results in any texturing software.
     
    Last edited: Mar 23, 2017
    SniperEvan, Teila and nxrighthere like this.
  48. pixelsteam

    pixelsteam

    Joined:
    May 1, 2009
    Posts:
    924
    I am not a UV map guy or a Blender. I sure wish there was a tool that would easily allow me to layout my UV maps to bring into Surforge. It is hell if you do not know how to do this...
    I love surforge, but I am not doing well with Blender...
     
  49. smada-luap

    smada-luap

    Joined:
    Aug 22, 2013
    Posts:
    945
    I'm just getting started on learning UV mapping in Blender. The biggest stumbling block at the moment is marking the corrects seams across the model :)
     
    jc_lvngstn and pixelsteam like this.
  50. pixelsteam

    pixelsteam

    Joined:
    May 1, 2009
    Posts:
    924
    I have exactly the same problem....and it sucks. If anyone has a good process where you just paint onto the 3d model the UV mapping...would be awesome, but I have not seen anything like this.