Jump to content

Suggestions for creating low nap carpet needed


erickdt
 Share

Recommended Posts

Hello all,

 

The industry I work in (tradeshow exhibits) often calls for large expanses of low nap carpet. The type you'd see as wall to wall carpeting in a typical home. We've all seen many examples of shaggy type carpets rendered with VRay/Mental Ray but they're all usually relatively small. I am looking to have carpeted areas that range anywhere from 10'x10' up to 100'x100' and higher. I typically do this with a diffuse map of a procedural noise map with a corresponding noise map in the bump slot. This produces a passable result but I am not 100% satisfied. I'd prefer something that renders as geometry that can be seen along the bases of cabinets, panels etc. At the same time, I'd prefer a solution that doesn't severely slow down my render times.

 

So far I've tried simple material based displacement, the VRay displacement modifier, Vray Fur and the standard MAX hair and fur modifier rendered as geometry. So far the standard MAX hair and fur has the most convincing result although, like the others, results in a major hit on render times as soon as the carpet size goes above 10'x10'.

 

Does anybody have any elegant solutions to this problem? Thanks in advance!

 

E

Link to comment
Share on other sites

Well u are looking for the perfection - but a so much detailed geometry will ever slow down your render ... You could try to trick around ( but don't tell any body :D ).. put different material ID's to the carpet geometry .. use the same bumpmap as displacement map and there,where u need high detailed geometry set the ID material to displacment, and there where u dontt set it to bump .. play around with the blur values ( bump needs less , ( 0,01 - 0,2 )) to make them appear equal. RK

Link to comment
Share on other sites

So I decided to explore the VRay Proxy method that is becoming predominant in rendering grass, etc. but instead applied it to the sort of carpet that I am trying to create. I created a 1'x1' "patch" of carpet by scattering a series of 10 different unique carpet strands. I then exported my 1'x1' patch as a VRay proxy mesh, reimported it and then arrayed it to the desired size. I did a 10'x10' carpet and then a 100'x100' carpet. I feel the result is very convincing and renders relatively quickly. The less carpet that can be seen in the shot the faster it renders which can be slow in wider angle overview type shots. I'm thinking that using my previous method (simple noise maps) might be the most time effective way to render such views. See the attached images and let me know what you think.

 

The only issue that this solution wouldn't be able to address would be non-rectangular carpet inlays. I am wondering if there is a way in MAX to create a sort of clipping mask on an object or group, similar to how clipping masks function in Adobe Illustrator. Any advice would be greatly appreciated.

 

E

Link to comment
Share on other sites

that's impressive!!

care to share the model??, maybe i can have a look at getting it to conform to another shape.

 

do you want to clip for a still image or animation,

 

oh, and by vray proxy method do you mean vray scatter or just the plain vray proxy object?

Link to comment
Share on other sites

"The only issue that this solution wouldn't be able to address would be non-rectangular carpet inlays. I am wondering if there is a way in MAX to create a sort of clipping mask on an object or group, similar to how clipping masks function in Adobe Illustrator. Any advice would be greatly appreciated."

 

 

Check out the ProCutter tool. It should serve your clipping needs nicely.

 

HTH

Edited by mkofmainchester
Quotes added
Link to comment
Share on other sites

that's impressive!!

care to share the model??, maybe i can have a look at getting it to conform to another shape.

 

do you want to clip for a still image or animation,

 

oh, and by vray proxy method do you mean vray scatter or just the plain vray proxy object?

 

Hi Adrian,

 

I'm using a plain VRay proxy object. I then use the array tool to get the desired carpet size (the proxy object is a 1ft x 1ft square). The mesh file is ~60mb so I don't think I'll be able to post it. I'd be more than happy to send it to you some other way if you like (ftp or something else).

 

In a perfect world the clipping solution would be for both stills and animations. The majority of the work I do is stills so that would be the priority over animations.

 

Thanks for your help!

 

E

Link to comment
Share on other sites

"The only issue that this solution wouldn't be able to address would be non-rectangular carpet inlays. I am wondering if there is a way in MAX to create a sort of clipping mask on an object or group, similar to how clipping masks function in Adobe Illustrator. Any advice would be greatly appreciated."

 

 

Check out the ProCutter tool. It should serve your clipping needs nicely.

 

HTH

 

 

I tried this and it makes the proxys solid boxes. I'll need to figure out something else :-/

 

E

Link to comment
Share on other sites

LONG POST :eek:

 

ok, so in a 1x1 block how many strands do you have? I think the only way forward would be to create it uniquely for every shape/patch you won't be able to touch the proxy.

 

The way we can approach this is by using the compound scatter tool. create a square plane again and subdivide it until the amount of vertices equals the amount of strands you got in the patch you showed earlier.You can use a noise modifier on the plane's vertices to randomise vertices position a bit. This will create a base object. Keep this copy as its the base object you'll start with every time you want to create a new patch carpet.

 

now when you cut curves out of the carpet the density of vertices will stay the same as you're going to use the vertices as the scatter positions

 

Then by using the compound scatter tool and distribution method of "ALL vertices" you will get the same carpet in 3d geometry.

 

Now here is the trickery as you can only use on type of strand to scatter, instead use a very low poly object for the initial scatter, convert it to a mesh, explode the mesh elements to separate objects.

 

_> then use a script to randomly select and replace these low mesh objects (first center all their transforms) with the various different strands. script from neil blevins- soulburnscripts -selectionRandomizer & objectReplacer -http://www.neilblevins.com/cg_tools/soulburnscripts/soulburnscripts.htm

 

 

hmmm, did you follow that? hehe

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...