Author Topic: Substance Designer Export For Use In SketchFab  (Read 1553 times)

I just finished creating my first "substance"/texture in Substance Designer following the instructions in this tutorial:



My goal was to create a more realistic texture of the brick facade of a two-family flat in Detroit. I have been modeling the structure in SketchUp and uploading/rendering the model in SketchFab.

This is the structure in real life:


This is a close up of the brick facade I'm trying to replicate:


This is my attempt to recreate the brick facade in Substance Designer:
 

This is the model in SketchUp with a section of the photo of the facade closeup used as the texture (notice how it repeats):


This is the model in SketchFab:

Here's the link the interactive SketchFab Model itself: https://sketchfab.com/models/36ebc65ad975462f8440e03e2d3507b3

Following the instructions in the tutorial, I opened my Substance Design file in Substance Player and exported the bitmap (@ 20 fps across all outputs) as jpeg, which created a folder of over 100 jpeg files.

The tutorial shows you how to use the items in the folder in 3DS Max, but I'm using a MacBook pro and am unable to use that program. I do have access to SketchUp, Substance Painter, Blender, Maya, Unity, Unreal, the full Adobe Suite, AutoCad, etc.

I am very comfortable with SketchUp, decent with Adobe Suit (photoshop mainly), and mediocre at best with the others. 

My ultimate goal is to have an interactive version of the model uploaded on SketchFab that has been textured with the substance I created in Substance Designer.

How do I do this? I noticed that there's a direct export to SketchFab feature in Substance Painter. Should I be exporting my both my model from SketchUp and substance from Substance Designer into Substance Painter and uploading to SketchFab from there?

I am fairly new to Substance Painter, so this would require me to spend some time figure out how it works, but I'm willing and able to do this. I guess I'm just trying to figure out what the most effective route to achieve my goal would be for this project and many others in the future.

I have several architectural models of the historic housing stock in my neighborhood that I have uploaded to SketchFab already as part of a neighborhood 3D map I am working with my block club and neighborhood association to create. I have many more that I have no uploaded yet. I would like to be able to make all of the models more realistic looking, but have really struggled to find a way to make realistic brick exteriors. The endless texture concept in the tutorial appears to be the answers to my problems and I would REALLY REALLY REALLY like to be to figure out how to design a small directory of the different brick and wood exterior styles featured throughout my neighborhood (there's only roughly 8 different patterns total), so that I can be much more efficient in my modeling.



I've been so desperate to create realistic models that in one model I modeled EVERY SINGLE BRICK by hand. There are nearly a million vertices in this model and it is very unnecessarily heavy as a result. 

Another model I hand modeled every single roof shingle and piece of cedar bevel siding. I have spent hundreds of hours working on details such as this all on a volunteer basis.

My point in mentioning all of this is to add context to why it's so important to me (and my neighborhood) to find a solution to this problem and to become proficient in high-level texturing for publicly accessible interactive models.
Last Edit: December 15, 2018, 04:00:37 pm

I think you have a few different things going on here, so I'd like to start by asking a few questions.  Also a big note: I'm approaching this from my usual workflow which is video game focused, and usually on the low end of fidelity (often headed to mobile).  So I work usually in low polys. 

First, what is the ultimate goal?  I mean, do you want a super accurate almost CAD like representation of the houses?  Or are you building like a virtual street people can explore on their computers?  Is this for the every day man or for an architect? 

What you are correct about is Substance Designer is a great tool to create bricks and shingles and wood.  Also I'd look at Substance Source and Share, for more materials. 

In regards to your path to getting the objects on SketchFab, personally I think Painter is going to be the best path for you.  However, you are going to need to modify your objects. 

The good news is you have super high polygon versions of your houses, which you can use to bake to a lower polygon mesh.  The bad news is you need to make low polygon meshes of your houses.  I'm not familiar with SketchUp, but in general, houses are really ideal to simplify.  Any detail that's as small as a brick can be recreated with the normal and height map. 

If you look at the house at the bottom of your post.  Each Window turns into a rectangle, each brick wall a large rectangle (with hundreds of bricks in it).

So in my opinion your best bet is to go SketchUp -> Painter - SketchFab.  You can then use Designer (or get materials from Substance Source/Share) to use in Painter.

Hey Bruce,

Ultimate goal is to:

1. Have very realistic, very detailed, and very accurate interactive models of individual structures uploaded in SketchFab. Each of these I think is just really cool to have in and of itself, but are also being used to help individual homeowners explore different exterior changes (i.e. a resident on a fixed income that may not be able to afford an architect, but wants to explore different exterior paint colors, a change in porch style, maybe a switch from wood to vinyl windows, etc.). In some cases the models are used as construction documents for pulling permits with the city or communicating with a contractor, etc.

2. Have a reasonably detailed model of the neighborhood that can be used to help a wide range of stakeholders (i.e. senior citizens, children, developers, etc.) visualize the existing built environment that exists in our neighborhood today.

Here's some examples of the living masterplan that I've been slowly populating:







3. This may be ambitious, but I would love to be able to create a virtual environment that proposed developments could be plugged into. So often we see these fancy rendering of theoretical structures, but can't really understand what they would "feel" if actually built in a specific location. Would be cool to be able to pop on some VR goggles and walk down the block viewing the structure via augmented reality.

Is there anyway for me to use my existing high polygon models in Painter? If yes, what's the best route to do this?

If I export the file from SketchUp as an FBX I get the model in SP, but the whole structure appears to be 1 single layer?


Last Edit: December 15, 2018, 05:53:34 pm

Having the meshes import into Painter and being 1 layer (actually they are 1 Material, and in Painter you can make layers all day long, they work like Photoshop layers) is fine.

However have you UV'd the objects?  If not, you will need to go back into SketchUp and unwrap it (I'm not sure how SketchUp handles this).  Then you can paint your textures onto the mesh.

If you want to go to a VR exploration, you will want to reduce the meshes into low polygon simple objects.  Again, houses work great for this.

If you wanted to let residents change different attributes you can set that up using Substance Designer (however most likely a game engine would be better suited for it).  There's slew of different approaches, but this is what I would do.

I would create a low polygon of the house, reduce any "flat" surface into a just a few polygons.  Flat means anything relatively flat (a brick wall is flat, but stairs are not flat).  Then I would create a few materials per house.  In this case the materials would match real world building materials.  So all Bricks on a Brick material, all wood trim.  Then I would create in Substance Designer a brick material that has controls to change the color, brick style or other attributes you want to change (weathering, cracks, etc..).  Then repeat for wood trim, window styles and roof shingles. 

I would then use Substance Painter to paint any non-changing attributes, sort of the leftovers and create a texture set.  So each house would be made out of 5 materials.  Bricks, Roofs, Wood and Windows, and a "Everything Else".  In Unity I would assign the Bricks, Roofs, Wood and Windows materials to my Substance Designer materials, and the Everything Else to a texture set exported from Painter.

With exposed controls you could make a UI that would allow anyone running the "Game" to make real time changes. 

Apparently SketchUp doesn't unwrap things. There's an extension available for purchase called Wrap-R that can do it, but it only works on Windows and I'm running Mac.

This is an issue others have dealt with as well apparently: https://forum.allegorithmic.com/index.php/topic,8960.msg43332/highlight,sketchup.html#msg43332

What are my options? I'd like to try the route you outlined, but stuck at step 1
Last Edit: December 18, 2018, 05:49:03 pm

These days Blender is what I work in and it would be pretty good at unwrapping something like a house.

You can also kill two birds with one stone.  Make your high poly version in SketchUp as you seem very comfortable in that.  Bring it into Blender, make a low poly version based on it.  You can bake the normal s from your high poly one (since you did model each brick, you can preserve that detail) and unwrap the low polygon mesh in Blender.  Then bring that into painter or designer. 


I tried unwrapping the model in blender following these instructions:

It got me this:


which I don't think is what I need. Any suggestions?

Some updates. I could still really use some help.

Some updates:

For some reason now if I try to export my SKetchup file as Dae and upload it directly into Substance Designer I get the following error code:
 

I guess the change is that it’s no longer saying anything about missing UVs, but “expected different index count in <p< element”. Anyone have any idea what that means?

here’s the link to the Dae file (too big to upload directly)
https://drive.google.com/file/d/1YzC3WDRciDc1L9Nkrnfivu1wu7ZkRr14/view?usp=sharing

here’s the material folder that is generated along with it when exporting Dae from SU
https://drive.google.com/drive/folders/1HJ10zSCit_W0aKB50-jZ2R_mMQLuYINm?usp=sharing

I’ve been emailing back and forth with the SketchFab folks a bit and they suggested I do the following:

"The model you uploaded ( https://sketchfab.com/models/8d5628cd55b741fcb01a4a4cebbb54c5 ) is a collada file from SketchUp, and it necessarily must have UVs because we would not be able to apply the textures correctly otherwise. I’m not sure why Substance would not be able to read them. Looks like Blender does not import them either, very strange.
Maybe you could download and import the glTF version that we generate into Blender and go from there?
See https://sketchfab.com/importers"
So I imported a glTF file of the SU model that had been uploaded to SF into Blender. The result looks like this:


not sure why, but I can’t view the texture UV map when I try in blender though… but it seems to work if you look at what shows up in Substance Painter below


Something a little wonky with the faces, but it works. Then I selected all (press A), space bar, manually type in “smart uv unwrap”, and create a UV unwrap for the whole thing all at the same time.

Then export from blender as Dae and import the dae. file into Substance Painter and SUCCESS the model imports! Remember to delete the starting cube from blender or else the import will fail.

The result looks like this:


Since I’m never to SP I’m still trying to figure out how to select specific meshes to apply my texture made in substance designer, but I wanted to provide some form of update.

anyone have any idea how to get those weird faces sticking out of the exterior to go away?
anyone have any idea how to select individual groups/meshes in this?

I have spent days trying to get this to work and would really really really appreciate some help here