UV Map default Material

texturemapping
uvq
faces

#1

Hi,

I would love to be able to UV map the default material inside sketchup.

The idea is that I can have a component, and some/all of it’s faces are in the default material and when I paint the component globally the materials I paint fit in the right place.

This way I could have a component, copy it around to have several instances, and paint each one with a different material, as now, but the material position would be controlleable as it isn’t now.

This is specially needed for organic shapes, of course, but even for flat shapes it’s extremelly important.

Examples:

  • 10 F1 racing cars on a track - either you make them all unique or there’s no way you can get the stickers in place for all the cars using a single component;
  • 100 similar wooden beams in a roof - either you make all beams unique and paint each with a different texture correctly positionned, or you’ll have all beams looking the same, and that wooden roof will look fake.
  • 2 Ultra designed stone tables sitting next to each other with round borders - either they are unique and you paint them preciselly, or if they are the same component you cannot fit two different textures correctly on the borders.

I think it’s time, this basic possibility, get’s correctly handled by sketchup so we can take full potential of a component based workflow that is fit for flawless presentations and, ultimatelly renders.

For organic shapes or even slightly rounded ones, this is getting pressingly needed, with all recent events on Vertex tools, SubD and WrapR.

Without this it will be very hard to tighten a workflow with sophisticated software that is emerging for a while now, taking 3d and texturing to another level.


Getting UVs of untextured faces
#2

An interesting observation is that you can apply a textured material to an object (e.g. faces inside a component), uv-map it (by positioning the texture) and then remove the material to set it back to default. This workflow is useful when you later paint different textured materials from outside onto component instances, which render those in place of the default material.
There is a different whether you overpaint the default material with the Paint Bucket (removes all UV) or whether you replace the material in Entity Info (keeps UV).

Take a look in the Help Center and compare the wooden chair with white and yellow pillow.

Unfortunately the UV coordinates of faces with default material are AFAIK not accessible for exporters through the Ruby API (API returns queried Point3Ds instead of their UVs). In that regard, I agree with your request.
Also the UVs should be editable not only when a textured material is applied, but still (later in the above workflow) with default material.


#3

Hi Aerilius and thanks for your support.

I knew that we could delete the material and that keeps UV and I know that this is not exposed in Ruby API.

That’s exactly the reason why we need to have clear UV positioning for a default material:

1 - We would have a real feature, instead of a workaround;
2 - We would have a way to use this feature with external software like renderers and exporters.

Sketchup must be able to be a part of a larger workflow where software integration is key and this is taking precise texturing, which is key in a sketchup model, out of a component based workflow.


#4

I agree with the GUI feature request, and the underlying functions that need to be added to the API .

The wording is incorrect. SketchUp does not have a “default material”. It has a default setting for an object’s material property, that points at nil (has no material assigned, textured or not.)

The UV mapping(s) are applied with respect to the vertices of faces.


So, what would the GUI use (as a texture) to map an untextured face.
Some sort of temporary gridded or checkerboard texture ?
Or would you want to have the feature pick from a list of textures in a “mapping” subfolder that you specify in Preference settings ?


#5

I really think any texture should be possible as a default material texture… now it’s “nil”.

Let me keep talking in terms of GUI Dan, as I cannot go any deeper, though you help us understand underlying logics.

If there is no material, then there could be a new “neutral material” which could be overriden by whatever material is applied to a component instance.

Now, for what I imagine, colored materials (materials without textures only colors), also have no UV so the new “neutral material” shouldn’t follow a colored material logic.

This “neutral material” should have UV so I imagine it requires a texture (maybe not but it helps us position it in the model).

If the texture is a 2x2px image or whatever else, for me it’s nice, as long as it keeps it’s current behaviour and doesn’t impose itself as a checkerbox, upon our drawings, specially on the ones of people that don’t know what’s happening.

However, the best solution for me, would be to have this texture user defined on styles manager’s face settings.

Following sketchup’s current logic, we should have a texture for backface and a texture for frontface.

Of course if this texture is a plain color then it mimics current behaviour, apparently, but still could be positioned.

So, one could choose a color for backface and a color to front face and in fact we would be coloring a texture.

In terms of modelling/texturing in sketchup, texture position would also work, for the default material as it now works for a texture applied to a face.


#6

Regarding getting instances of the same components not to look identical with textures I suggested some time ago to add an additional matrix to instances that is used to determine texture positioning, as if that matrix was defining the axes. That could also solve the whole stretched texture thing in dynamic components (one of many reasons why I shun this feature).


#7

Do you think that would solve both issues?

Because UV mapping isn’t easily solvable with only a matrix. I mean for certain cases I guess a matrix could be enough, but Texturing complex models isn’t, requiring, for instance, UV unwrapping, or a different texture positioning per face or at least projected textures…


#8

I don’t see any reason not to have both. SketchUp already supports having UV mapping for the nil texture so the only required change here would be to expose it to the API and then renderers could support it and plugin devs could create a UI for manipulating it. Enabling the Content menu > Texture Positioning for faces with nil material in the case a parent container has a textured material could also be done.

That however wouldn’t help much when it comes to having numerous components looking identical. Even with per face UV mapping inside a component where the material is applied to the component instance, not the contained faces, these components would look identical.


#9

Not if you have a series of materials. I usually do that by adjusting component’s axis to follow component’s UV’s and then apply different mats. It’s very limited though as component’s axis are not able to cover all aspects of texturing.

The wooden beams example is a classic. Mirror some components, get the axis along the longest size of the beam, offset the base material on U and V inside Thea render and create several different materials and apply them randomly on the beam’s components.


#10

This topic was automatically closed after 91 days. New replies are no longer allowed.