Method for Texturing NURBS?

What’s the method for applying textures to NURBS? With poly modeling you unwrap the surface and then apply a texture to that surface and wrap it back around the model.

From what I gather a NURBS surace is actually its UV as well but if it’s flattened out and a texture applied then it will distort when being wrapped around the model? I’ve heard of projecting onto the surface for things like decals but what if you wanted a texture cleanly wrapped around, take a globe for example?

There are many methods, but you probably want to use a straight-up bump or displacement map assigned to the surface.

I have no idea how to properly account for distortion in creating 2D art–I think this is why procedural (math-based) textures tend to be used, because they can be set to globals and just repeat infinitely in all directions, covering the shape like a fabric. But I suppose you could point your camera in such a way that the bulk of the surface faces it, do a screengrab, use your 2D editor to paint inside the shape, then project that shape from the position of the camera.

Simple shapes like spheres (like in your globe example) should be fairly straightforward–just find a 2D map of the globe that has the correct distortion built in. The Mercador projection is a popular cylidrical projection:

Try this one:

There are multiple types of projections depending on the software you use. If you want to wrap a globe, you can do a spherical or cylindrical projection. Theres also planar, triplanar/cubic projections, etc.

Otherwise the application will automatically map the UV coordinates based on the U/V parameterization /flow of the surface. Then you can manually adjust things like the # of times it repeats, rotation, offset, etc.

This isn’t quite the right graphic but someone else asked a similar question earlier, you can see a spherical projection w/grid here:

A globe was just an example. I’m just interested in knowing how tricky shapes get textured in NURBS. So is it possible to texture any shape using projections cleanly without stretching? Do you have any links that go into this in depth?

Take this rally car as another example. How could the coloured stripes as a single texture be placed on the object?

Car livery would be fairly easy to do pretty accurately with just some planar projections. You can adjust the aspect ratio of the projection to counteract any potential distortion on surface.

The stripes you could do as a single or multiple planar projections. If you did it as a single you’d probably want to find where their visual “normal” would be. IE if you were to look at the car, where would you have to look at it from to have the stripes all parallel to each other. If you projected from that angle, your stripes would cascade in the way you wanted. Otherwise you could just manually align 3 planar projections for each side and the roof.

Tricky shapes IMO would be something very organic, like how would you texture a NURBS head - and that answer is, there isn’t a great way to do it. At that point you’re better off moving to a tool like Maya which has a better set of UV tools.

Does this mean you’d have to split the texture into different sections before projecting them separately and aligning?

Nice to hear it’s not a prob, thanks. What software provides the best projection tools other than Maya?

You don’t necessarily have to split the texture- for something as simple as the 3 bands of color in Alias you could probably build it all as a shader or just 1 texture with the 3 bars of color and adjust the projections as such.

Regarding tools: What tools are you using in the first place? In reality most of this is irrelevant if you convert a NURBS model to polys for rendering. I don’t believe Rhino has much on the rendering side of things when it comes to projections and I’m not sure what other tools you’d be using.

Its been a while for me, but I seem to remember a MAX plug-in that allowed you to project a grid onto a 3D surface and unwrap it. You could then take that into Photoshop, etc. and create your patterns/textures. I seem to remember doing this with character modeling.

This should give you a starting point as to the direction you need to head down:

[url]SL500 Texturing and Lighting · 3dtotal · Learn | Create | Share[/url

In that case I think the first suggestion I made would be the best. Lock a camera to the best position to lay down a planar projection, do a screen grab, paint within the distorted shape in a paint program, then replace the camera with a projector and load your decal. Right?


That’s the standard unwrapping process for polys, but he was asking how you would achieve the same idea using NURBS surfaces.

The grid approach works fine if you want to take your projections, project a grid, and then adjust as necessary to get a uniform mapping across surfaces.

Really all depends on what your goal is. For the most part, non organic objects are pretty easy to break up into orthographic planar projections if you take into account areas of distortion and map them accordingly.

But hard to really suggest a workflow without knowing the toolset.

Ah yes, thanks for the clarification there.

There’s no specific toolset in particular. I have a Rhino, Solidworks and Max background. I don’t need to do it…yet, just very intrigued how you’d go about it. Let’s look at Rhino or even Alias … I don’t think Solidworks has projections. The goal would be to map an object (for animation) with a non-distorted texture.

@CG: It sounds like that method would work for a single view, pre-positioned render, but it would also require distorting the texture correctly yourself. I’d prefer a method where the texture is mapped on like a real object would be so it can be rendered at various angles.

I’m not clear on this process, can you explain it in more detail + how do you take the distortion into account? Do you know of any tutorials, I learn a lot quicker with images :slight_smile:?

Honestly I don’t think there are any tutorials that I can think of. Most people don’t care about NURBS and the use case would really be different for all different types of objects. If I had a car body I could do some pictures but I don’t have a wire handy.

RE distortion:

Take for example the M3 you posted. As it stands, the side graphics could pretty much all be applied with a single planar projection from the side.

Now imagine you’re doing this in real life with vinyl, and you want to put a detailed graphic in such a way that it overlaps the big fender bolsters. You’d have an issue - because from the side the top and bottom of the fender are almost next to each other, but the bolster would create a distortion where the vinyl/texture would have to stretch.

In that case, you would either need to move your decal OR somehow account for this by assigning the top of the bolster it’s own projection that lets the texture map more naturally on the top of that surface then the side projection would allow.

Realistically speaking I’ve never had to do any of that. The example I gave that would be the hardest would be a human head. There is no easy way to map the texture of skin to a head in NURBS. Even a hodgepodge of different projections probably wouldn’t get you looking how you needed to look, and painting the texture would be very hard because you can’t unwrap like you can in a Polygon program.

Additionally with NURBS you can always physically model the details - IE if you wanted to wrap a feature around a coke bottle you could physically model in the text using deform rigs in Alias, etc.

What about when animating? I’ve seen a few pieces of work brought into Max for animating. What happens to the projected textures in this case, will they not be lost on transfer?

Sorry I’m not familiar enough with Max to answer that. You should be able to group the projections with your object so that they stay with the object while animating.

Any idea what export file allows the projections to be taken with them, IGES? Out of interest are there decent animation options in Rhino or Alias? Thanks Cyber.