A Unity ID allows you to buy and/or subscribe to Unity products and services, shop in the Asset Store and participate
in the Unity community.
Introducing the new Universal Render Pipeline and High Definition Render Pipeline subforums!
Unity 2019.3 Beta is out now.
Discussion in 'Assets and Asset Store' started by Sergeyv_3d, Jan 27, 2017.
Can I use created textures for sharing and exporting outside of Unity?
You could sell your textures, share it, use any way you like.
When using outside Unity, it may require to move some of your maps channels in image editor, according to your target engine and shader.
The exported result maps are common for Physically Based Rendering (PBR) shaders:
Albedo, Normal, Ambient Occlusion, Glossiness, Emission, Heightmap, Transparency, and Specular/Metallic, depends on chosen workflow.
It is also possible to export material ID masks, which could be handy for shaders with color tint variation of the part of the texture.
Is it possible to do High poly to low poly bakes? also can you paint materials with masks?
Thank you! I am glad to hear that because I want to use the tool for creating some art for clients, I can't share the tool itself but if I can send them assets created with it - it's the best. Also, for recording tutorials, I wanted to have some graphics that were free to use and if I don't have any, now I can create them and share them with people. Great tool and good job!
Surforge was designed around the idea of getting good textures without the need of object-to-object baking.
Highpoly-to-lowpoly baking is a part of time consuming pipeline that requires high skills. There are a lot of software allowing it, including free Blender and xNormal.
Surforge aimed at simpler tasks, where object-to-object baking not worth the time spent.
It's also based on transferring high-poly details to the texture, but without the need of the whole high-poly object to be made in advance. This allows to speed up the process greatly, while keeping the ability to make changes in your details easy and fast.
Surforge is designed around mask based material management. But instead of painting your mask with brush, you simply select the details of your texture and assign "Material ID" directly to it. You can add details with Poly Lasso, insert from kitbash library, fit UV shells with one click, create shapes point by point.
how can i create a glass texture in surforge for a plane?
Yes. There is transparency property. You coud create glass textures like this
You could find transparency at the bottom of Surforge material properties.
This is brilliant and is much gifted asset for everyone.
I have a question, when I was watching the videos I was asking how can I use the skybox reflection for the baked texture on a scene without using the skybox that used? to be clear if I need more than one skybox use for multiple textures each one has it's own skybox how to use those textures together, do I need to setup reflection probe for each one?
BTW I still don't have this treasure but it's near and a must have for everyone!
Thank you very much for positive feedback.
Normally, skybox is not baked into texture and can be changed any time in the scene settings or with the help of reflection probes. Usually you don't want different skyboxes for objects placed near to each other, this will drive to unrealistic looking results.
In the case you need to bake the whole material, including lighting, to the texture, you may try this third-party script: http://wiki.unity3d.com/index.php/Bake_Material_to_Texture
Can Surforge be used to make Amid Evil-style low-resolution textures and apply pbr to low-resolution sprites?
Yes. Surforge suits good for fantasy human made objects, stone block textures, wooden panels, metal details, and medieval style things.
It has Seamless feature for level textures, Celtic ornament tool for decorating items, variety of pre-made materials.
You could see a lot of fantasy textures made with Surforge in this video:
According to your task, seamless level textures could be made directly in Surforge, with maybe future post processing in 2d editor to control resolution and pixelation effects if needed.
Сreating sprites of objects from 3d models goes beyond texturing software. You should create your regular textured 3d models first, then setup the scene in your 3d editor to render the needed sprites proper camera aligned, animated, and lit.
@Sergeyv_3d awesome, that looks great! I'll actually be using pixel-art for the weapons rather than 3D modelled, so is it possible to add depth to sprite textures, as you would with Spritelamp, or some such?
Also, this is probably not the best place to ask, but I have no experience with tools such as Shader Forge, Amplify or Unity Graph Shader, and was wondering exactly how Surforge differs? My main interest is giving low-res textures and pixel-art depth, reflections, shine and wetness, is this what Surforge would be the best tool for?
For this you can use Shader Weaver or Shadero Sprite which works best for sprite manipulation .
Thanks! I'll check those out, I wasn't sure if Surforge would be useful for working on both pbr sprites and textures, since for the low-res textures I'd probably be painting depth similarly. I think Amid Evil uses Substance for the Unreal Engine, and I think I'm correct in thinking Surforge is a similar tool for Unity (unless Substance is closer to Amplify, etc?)
Surforge textures are rendered from 3d details, not painted pixel by pixel. When rendering from 3d, the whole pipeline is aimed to avoid pixelation and aliasing. It is not the right tool for pixel art.
The difference between Surforge and these software, that they are for creating shaders, and Surforge is for creating textures. Surforge exported results are regular set of PBR maps, for using with Unity Standard shader and any custom shaders.
For the task to expand existing sprites with specular/glossiness PBR maps, consider using 2d editor with gamma, levels, contrast tools, to create the needed textures from the main albedo sprite. To create normal maps, you could use value-to-normal converter, like this http://cpetry.github.io/NormalMap-Online/
Surforge is designed for creating textures from scratch, not for editing/enhancing pre-made textures. It is much easier and faster to create textures from scratch, you get all the needed PBR maps on the fly, with the lot of control, without the need of converting.
This is a great asset.
I have a little problem when using the lasso tool. The CTR left click shortcut doesn't work as expected. I watch the surforge simple test tutorials a few times (specially around 0:45 sec) but I can't use the split shortcut. I am using window 10 and unity 2018.3.4f1.
Thanks for your help.
I finally got it! I have to fill the material before.
Thank you very much for your purchase and positive feedback.
Please let me know if you have any questions.
Surforge is now on May Madness Sale.
If you do not own your copy of Surforge yet, do not miss this great opportunity.
Get Surforge with 50% OFF
Surforge is an amazing asset. I bought it at full price but it is worth a lot more than than that. At 50% it is a steal! I Highly recommend it.
Thank you for the kind words.
I want to show you some of the models i made for the upcoming Surforge kitbash library update.
This are some of the upcoming Add Detail tool stamps.
The update is going to be dedicated to fantasy/medieval architecture, aimed to help in texturing low-poly buildings, add decorations to wall objects.
It will include doors, windows, door hinges and handles, and flags.
Is there any tutorial to add our own meshes to the tool ?
BTW amazing work.
Adding your own meshes to Surforge is easy.
There are 2 ways:
1. Quick add.
Just drag the mesh from the project to your Scene View inside the working field.
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.
2. Add to Detail Tool list.
Check "Surforge/AddDetailTool" folder. Surforge details actually regular Unity prefabs in "PlaceMeshes" subfolder.
Duplicate one of existing prefabs in your project, change your mesh, icons, and needed properties:
Add new prefab to the list in "placeMeshes" prefab located there. Save project, restart Unity for changes to take effect.
Really nice Models!
Thank you. I am happy you like it
Let me show you some more upcoming models.
Hi, I just installed Surforge on a new clean project, but the Window -> Surforge option does not appear. Tried different Unity versions, including 2019, but the problem persists. Is there a way to fix it?
Hello. Thank you very much for your purchase. Please don't worry, i will do my best to solve the issue.
Surforge 1.2.0 tested to work with all main versions, including Unity 2019.
Absence of button possibly could be because of the scripts did not compiled properly.
Could you please check you not forget to press “Go Ahead” button during import to update scripts for your Unity version.
Are there red errors in console?
Could you also try "Window - Layouts - Revert Factory Settings". Sometimes it is needed to fix Unity layout issues from previously installed things.
If nothing helps, could you please zip your fresh project with only Surforge installed, and share a link to email@example.com
This will help a lot to find the issue.
Thanks for the quick reply! The "Go Ahead" did the trick
"Let me show you some more upcoming models."
This will be really handy for medieval, historical looking projects.
Tested some volumetric boards with pronounced details.
It's going to be handy thing.
I was in a pain while drawing my islands on scene view, because if I zoomed in, the clipping plane would hide everything.
Then I found out that if you select anything press F, the editor fixes the clipping plane automatically, and now I can zoom all I want for easier lassoing.
Just wanted to share.
The volumetric boards are amazing!
@Epimolophant Yes the F key is a great helper. You just have to be sure your mouse pointer is over the scene window when using the shortcut.
I managed to achieve interesting results in creating realistic stone blocks with Surforge.
All this made with a few mouse clicks with Add Detail tool, using some new lovely upcoming prefabs.
At the base there are several lowpoly stone blocks i modeled in blender. While using this Add Detail tool preset, you can randomly cycle through the block models with right mouse button. There is also a new option to randomly flip and 90 degree step rotate this models, for more diversity.
Next, there is a new feature: possibility to shuffle Normal/AO maps of Add Detail tool item, if list of such is set in the item properties. In combination with models shuffle, it allows even more variety. There is also very nice point: it works per model, before the material applied, and can be combined with materials.
At the end, i applied some new stone materials, about 3 for each scene.
As you can see, nice amount of variety as a result, useful for architecture/natural objects.
I also plan to use same technique for some other architectural prefabs, like boards.
very useful .. awesome !
OMG! My hero! Any idea when this will be deployed?!!?
I plan to release an update at the end of May.
Is it possible to apply a filter to the seams of the base texture? I'm investigating how to use Surforge on creatures (to add feathers, scales etc. In the image the seam is clearly visible, would be nice to be able to filtering it.
This is kind of global problem of texturing work, not only in Surforge, but in general.
Usually when creating UV layout, you want to hide your texture seams by following your model edges, deepening, elements it consists of, and borders of future texture elements.
It is not hard to do for for man-made objects, like items, level elements, architecture and other hard-poly models. The vast majority of models, and what was Surforge was designed for.
But, when it comes to organic models, especially organic characters, where some of texture seams can not be hidden, there is no fast automatic solution. It have to be fixed by hand painting over model, or the whole texture should be object-to-object baked from high-poly sculpts. Both of this goes beyond Surforge workflow, and its purpose of remaining easy and fast for simple tasks.
Surforge is not designed for organic characters and organic objects. This kind of tasks require high artist skills and a lot of hard work. There are other software for such tasks, like Zbrush. And even for baking/painting pipeline, you want to hide the seams as possible, for example under the overlapping armor elements of a character.
There are some things that may help:
- Try to avoid prominent texture seams at the stage of planning/creating a model and UVs.
- Match seams to model features and future texture details, like surface elements joints, borders between different materials.
- Use monotonous material for such places.
You could also try "export masks - separate" option, and then use the exported masks to separate the needed details from the background. Then paint simple background texture in 3d painting software, and add details, made by Surforge, on top.
Great!! I can use Blender for texturing, but I cannot find an equivalent workflow to Surforge which is much faster and intuitive. That workaround do the job.
I did a quick test painting the base color on Blender and adding later the details.
Definitely, this workflow is much more productive than sculpting and baking the maps.
@Sergeyv_3d So I just used surforge for maybe 3-4 hours and it chewed threw 13 GB of disk space on the drive Unity is installed on (the project was on a separate drive, I only noticed because the drive filling up was my OS drive and it made me save the scene and restart my PC.) Are you aware of any leaks on 2019.1 or are forgetting to call dispose somewhere or anything? If there is not a memory leak can we have the option to set a "clear cache at interval" or something. Thanks.
Thank you very much for finding this. I will check it in detail.
@Sergeyv_3d any ETA on an update to Surforge? I REALLY could use those stone/rock details and MOST IMPORTANTLY, currently Surforge is broken on latest (2019) and won't work (for me) on any version post-2018.2.2f.
It would be really great to have this fixed, even though I can workaround it by switching back and forth, it's not optimal and slows down production.
I hope to release the update next week. Working hard to finish it as soon as possible.
I am sorry for it is a bit later than planned. The reason for the delay was just the desire to create more assets.
Couldn't you please clarify what is not working in 2019? I will do my best to help with the issues.
Imported and tested it again newly with latest Unity 2019.1.5f1 (from 3 June 2019).
Everything is working.
@twitchfactor I've been running Surforge fine on 2019.1, might be a project settings/build target thing or another asset conflicting.
@Sergeyv_3d I have some feedback for future updates based on some things I have ran into when using Surforge
1) [Feature] Find/replace all extent materials of type, I wrote a script to find all materials under the Surforge root and select them in the hierarchy or replace them all with another if needed. Pretty simple but would be better implemented into the Surforge editor since it already has all the references.
2) [Addition] Render options: The option to render just normal, or just normal and metallic ect. would be great. Not all workflows need all maps; but I understand if the way shaders work you might need to create normal before AO or something.
3) [Feature] Export options: Normals as .tga would be great even if I had to manually change the import settings. (I know saving normal maps can be weird)
4) [Bug Fix?/Quality of Life] Maybe I'm just missing something but the ability to copy a Surforge root into another scene without loosing dependencies would be awesome.
5) [Quality of Life] In the Surforge preview have the directional light face forward with the camera so I don't have to adjust the scene light to see the other side of a model.
6) [Bug Fix] Skybox selection seems to be broken on 2019.1 (I just cant scroll that far down or the list is empty)
7) [Feature/ Quality of Life] A "create new surfoge material" editor since I can't add the hidden shaders manually when creating new materials in Surforge's materials folder, maybe there is a better way but I have been copying the existing materials in my computer's file explorer to add more. (Maybe similar for other things, so far I have only added new materials though).
8) [Bug Fix] Opening ProBuilder when Surforge is open breaks the scene view camera and Unity needs to be restarted to fix the scene.
9) [Feature] Ability to display a texture over the background extent thing i.e. for going over old texture without just going over the UVs, I've just replaced the background extent with a textured material but if I don't remember to switch back it can cause problems in some cases.
10) [Bug Fix] That memory leak/buildup issue over long periods of time if not already patched.
Those are my top 10 wishlist items in no particular order.
Edit: and maybe some better code comments throughout so I would feel more confident making changes myself
Great asset, best texturing tool in Unity for what it tries to do. I've used a lot of different kinds over the years but Surforge gives the best results.
Thank you very much for the positive feedback and suggestions. I am happy you like Surforge.
I will try to answer in detail for each item.
You may find this helpful: select any objects in the Scene View with Surforge material ID, and press "shift + m" hotkey to select all objects with the same Surforge material IDs. Then you could use 1-8 hotkeys to add the different material mask ID to all selected objects.
To change the Surforge material for entire ID, just drag-and-drop the material from the Surforge material list to the corresponding part of the model surface in Surforge texture preview.
The maps rendering is tightly connected between each other, also Surforge composer shader require all the needed maps to be rendered to avoid unexpected results.
This could be implemented.
There is some scene information, that should be loaded before Surforge starts, like references between the objects, settings etc. The main reason - some restrictions imposed by Unity Editor. For now it can't be easily get around.
There is the delicate situation with this. The directional light is already present in the scene, not created with Surforge.
Therefore, it is not the best idea to touch it. Also such behavior restricted by the rules and good sence of how asset should work.
But you may find useful the ability to rotate skybox with "shift + left mouse drag" over the Surforge Texture preview. This gives a good idea of your materials look.
Double checked - it works.
Only the skybox section of Render tab scrolls, if you can't see it, you may need resize the Surforge window to be taller.
If you can't see the list (14 skyboxes total) this could be something with installation.
Also, for correct skybox update (if everything black) you may need the Unity scene settings to have the option "Window - Rendering - Lighting settings - Scene - auto generate" turned ON (at the bottom). It is how it is set by default in the new project, but in some cases, some Unity versions turns it off.
The reason it moved under "Hidden" tag - for not to confuse users, as Surforge shaders are for using internally with Surforge.
For correct work you don't want to create it manually. Just select any object in the Scene View and press 1-8 hotkeys to assignt the ID. (It also assigns the needed links for seamless mode, makes it sure it is copy, not reference, etc).
The Surforge materials could be duplicated in the Project Tab if needed. Also the best way - tweak your material within Surforge texture view with its material editor, and use "Save current material" button with little arrow, to export your material for future use.
I will check it, thank you. But please keep in mind that Pro Builder is third party asset from different developers, which is changing, and this may need to be fixed on its side. The last time i checked it worked well with Surforge.
You could find this handy: duplicate the Surforge background in the scene view, move it just a bit higher, and apply the needed material with the reference image. The Surforge UVs are displayed on top, and all your details are also on the top of it.
I will explain it in detail, but please treat with understanding that Surforge is not standalone app, but Unity asset, and it imposes some hard limitations.
There is no any memory leakage with Surforge scripts.
Surforge is tightly connected with using Unity native RenderTexture objects, which have their own specifics.
When you render for the first time, Unity allocates memory for all the needed maps, which are used in Surforge composer shader. There are actually a lot of maps: the material masks, AO, edge mask, normals, labels etc. The specific of Surforge workflow, and also how Unity works, is that maps should be uncompressed.
There is no useful way to compress the maps besides to added to Asset Database, which is slow operation, along the compression itself slow too. Even next, if the maps compressed, besides unwanted performance and quality limitations, which you not want, it still not free the memory allocated by RenderTexture object, due to how Unity Editor works.
I researched this comprehensively in early Surforge development, and found the limitation of how Unity manages memory. You can't actually free the texture memory of RenderTexture by your command. Unity manages it. It frees up memory later, even with full clearing of all references to objects and deletion of objects, when it decides that the object will no longer needed in the future. This was discussed on the forums, and i use the best workaround for this - just reuse the same allocated memory over and over (the same RenderTexture object) with each render, which guarantees the same size of memory used.
So what we have in the end. The higher texture resolution you are using, the more memory allocated. Surforge cant control the way Unity uses it's page files. It is obvious that the use of large amounts of memory can increase it.
This is the cost for the high speed of Surforge workflow, this is how Unity works, and unfortunately not much could be done with it.
But this does not lead to any restrictions for the users. You need 8GB of RAM to render 4k maps with 4x antialliasing with Surforge, as specified in the system requirements. Most of modern systems has more.
Pc on which i developing Surforge, has specially only 8GB of RAM installed, to observe resource consumption in real time, and keep everything under control.
Please also treat with understanding - that Surforge is a graphics software. It is always a good idea to has spare resources to work with such software, keep your heavy applications closed if possible, whithout dozens of tabs in the browser.
Our team uses a programming style proposed by Robert Cecil Martin. One of his concepts "Comments are a failure", which says that good code requires comments only if absolutely necessary. Instead, all entities, such as variables and methods, carry all the needed information in their proper names.
You can read more of it here
All Surforge code entities are proper named, and easy to read.
Glad to see I'm not an outsider
Alright, I assumed as much on most of those things. I made a PBR map generator a while back using fragment shaders on textures so I understand the reasoning/ order of implementation of shaders. The whole render texture memory leak topic is interesting, I have plenty of ram but the drive Unity is installed on get filled up so it must be a Unity thing since my project and pc resources seem fine during extended use.
For the preview window could you load a hidden scene async and give it its own directional light/ instantiate the preview?
Great to know about the material assign hotkey, I'll go back and give the docs a more careful read.
Personally when it comes to code comments, minimalistic is fine when you are in communication with a team of people; but in my opinion on the asset store more information is always better since far more people of all skill levels have access to the source code. I take the position to keep variable and method names clear as well as comment all the things and region code sections. Any performance/file size difference to adding comments is negligible. Not saying Surforge's markup is bad, I just find having more comments make it easier to find things at a glance i.e. triple /// to add summery comment for variables so I can just hover over a variable and know what it does instead of have to track down a file.
Anyway the convex hull lasso is genius and I can be airheaded enough to not scale my window to see skyboxes XD Thanks for the detailed response.
I'll try 2019.1.5f. I just tried to make a new project with the same version my current project is using; 2019.2.0b4 and that's when it blew up... well, actually the Surforge windows come up, but no UV atlas, none of the tools work (they don't affect the material) and changing the mesh doesn't work, either.
Seeing as 2019.2.0b4 is a "beta", it may all work out, when a new 2019.2 version is released. Right now, I'm using 2018.2.21f for Surforge work.