Tire tread in dirt. How can I make a black/white alpha texture on collision?

Become a member of the CGSociety

Connect, Share, and Learn with our Large Growing CG Art Community. It's Free!

REPLY TO THREAD
 
Thread Tools Search this Thread Display Modes
  01 January 2018
Tire tread in dirt. How can I make a black/white alpha texture on collision?

I have a tractor with 4 large tires (deep grooves in the tread). It has dynamic motors and suspension so that it travels over the ground. I would like to have the tires leave behind tread marks in the ground as it drives. I have tried several methods, but the results have not been good.

1. I used a collision deformer on the ground object. The only way to get nice detailed grooves in the dirt (ground plane object), is to increase the subdivision count. This brings the viewport to a stand-still, and this was only testing one wheel. I would imagine things would be even slower with 4 wheels.

2. I tried using proximal shader, but that only gives you the info for the frame you're on. It does not allow you to keep the previous frames stored so that the tread stays in the dirt.

Is there any way to create a shader that creates a white mark on the ground in the pattern of the wheel tread? It would be nice to be able to have the wheel tread pattern show up on the ground as the wheel rolls over it. Then I could just use that white/black texture in the displacement channel to get some nice grooves in the dirt.

Anyone ever successfully do this?

Thanks!
__________________
Sub-D Modeling Series for C4D
 
  01 January 2018
Interestingly, I've exploring something along these lines this past week. One key phrase to look for in your searches is "Wet Maps" - As these are what's used in fluid simulations to calculate where the water mesh has made contact with something else (a rock, sand, paper), usually creating a black/white matte that can be used to mix shaders - I,e - a "wet object" shader and a "dry object" shader.

This should be adaptable to accomplish what you're looking for - though it probably won't result in a detailed pattern on the groun that perfectly matches the tread design, but it should match the tire.

There are multiple ways to create wet maps, so you may have to do a bit of research to find one that works with your current setup - but it should be doable.

One option:
http://www.blackstar-solutions.de/happy.php
 
  01 January 2018
Originally Posted by LukeLetellier: Interestingly, I've exploring something along these lines this past week. One key phrase to look for in your searches is "Wet Maps" - As these are what's used in fluid simulations to calculate where the water mesh has made contact with something else (a rock, sand, paper), usually creating a black/white matte that can be used to mix shaders - I,e - a "wet object" shader and a "dry object" shader.

This should be adaptable to accomplish what you're looking for - though it probably won't result in a detailed pattern on the groun that perfectly matches the tread design, but it should match the tire.

There are multiple ways to create wet maps, so you may have to do a bit of research to find one that works with your current setup - but it should be doable.

One option:
http://www.blackstar-solutions.de/happy.php

In my searching for "wetmaps", the majority of them are all centered around RealFlow and particles. I did check out the happy little paint shader plugin, but it doesn't look like it's going to work. I dont think it can produce the detail I'm looking for.

Back in the day of R11, there was a plugin called GeoTools. It has a cool vertex map feature that took vertex map weight, and you can set the mode to "add", and then use a volumetric object to trigger the weight. That is exactly what I need, but I'm not sure if it will work for R18.

I think the vertex map method is what I'm looking for, but I'm not sure how to apply collision data to the vertex map.
__________________
Sub-D Modeling Series for C4D
 
  01 January 2018
X-Particles 4 has an object called vertex mapmaker which might do the trick.

https://vimeo.com/242565242
 
  01 January 2018
nitroman has a plugin "nitrovertex" that can create vertex maps on collision.
__________________
________________________________
my stuff on vimeo
 
  01 January 2018
The challenge with a Vertex map solution is that the resolution of the mesh to be deformed will need to be extremely high to capture the subtle detail of the treads, so the area that's being deformed will most likely need to be a separate object that seamlessly matches the rest of the terrain. It's doable, but can be troublesome inside Cinema.
 
  01 January 2018
There are people who have done it in 3DMAX:

https://www.google.com/search?q=tir...ks+in+3D+max (CLICK ON IMAGE SEARCH TO SEE EXAMPLES)

Some of the techniques may possibly translate to C4D as well.

Does C4D have no option at all to invoke dynamic boolean operations as a 3D object rolls over a polymesh?

I'm guessing that you might need a Python script for this - every few degrees of rotation, you perform a bool of the tire object on the ground object.
 
  01 January 2018
Do you need the 'wet map' to be very high precision at all ?
Couldn't you just use it as an alpha channel to blend to a displacment map.
I imagine (haven't tested) it would work like this:

- Run your sim/ animation to establish the path for the treads
- Craft a suitable displacement map that follows the path
- Use the wet map/ vertex map to 'fade in' the displacment map as the tyre passes

If your displacment map blended out to 50% grey, wouldn't that work ?
__________________
Cinema 4D R19 Studio, Octane, Z Brush, Mudbox, Adobe CC
 
  01 January 2018
Originally Posted by LukeLetellier: The challenge with a Vertex map solution is that the resolution of the mesh to be deformed will need to be extremely high to capture the subtle detail of the treads, so the area that's being deformed will most likely need to be a separate object that seamlessly matches the rest of the terrain. It's doable, but can be troublesome inside Cinema.
You are correct. I have been experimenting with the vertex map option, and in order to get the tread marks to look good, the mesh has to be very dense (highly subdivided), and it is slowing down the viewport quite a bit, so I dont think the vertex option is going to work, as the vehicle I have has 12 wheels. (see attached image to see what my wheel looks like)

Regarding X-Particles, that looks like a very cool feature, but I cannot see paying $800 right now, so that's not going to work.

I checked out Nitroman's "nitrovertex" plugin, but after dealing with the issues surrounding the need for a highly subdivided mesh, I dont think it's going to work.

So, here is what I have been experimenting with..... I have taken one of the wheels and flattened it, then deleted all of the polygons except for the tread extrusions. I rendered the pattern from a top view, giving me a black and white image of the tread pattern (see attached repeating tillable pattern). I applied the texture to a sweep nurb that is using a tracer to follow a object. The texture looks good along the sweep nurb, but now I need a way to project that texture onto my ground object.





__________________
Sub-D Modeling Series for C4D
 
  01 January 2018
Originally Posted by skeebertus: There are people who have done it in 3DMAX:

https://www.google.com/search?q=tir...ks+in+3D+max (CLICK ON IMAGE SEARCH TO SEE EXAMPLES)

Some of the techniques may possibly translate to C4D as well.

Does C4D have no option at all to invoke dynamic boolean operations as a 3D object rolls over a polymesh?

I'm guessing that you might need a Python script for this - every few degrees of rotation, you perform a bool of the tire object on the ground object.
In C4D? Nope.

But your link brought me to this video:https://www.youtube.com/watch?v=cEGOuZ92VvA

And in there, it looks like he has created some tread geometry that's lined up in a cloner that is then within a Boole object. As the tire goes along, it causes the tread geometry inside the cloner to apear/increase in size, which is then subtracted from the ground mesh via a boolean. However, that technique as shown in the video leads to very harsh edges on the ground, so you would need to create your tread geometry in such a way that the resulting object post-boolean had smoother edges.
 
  01 January 2018
I think I might have found a solution, but it comes with a big down side. Drastically increased render times.

I'm using the tracer object to trace the vertices of the out portion of the wheels. The tracer object is then used in the proximal shader. The results are working fairly well, but the render times are horrible! Without the proximal shader, render times were about 15 seconds per frame. But now, just for a small section of the viewport, the render time was 5 minutes. That is not acceptable, and I am not sure why proximal is causing this. Here are a few screen shots.





You can see that the small section of the viewport took 5 minutes to render. You can also see that the tread marks in the dirt appear to be small dots. Im assuming this can be fixed by increasing the subdivision count, but then the render times would also increase.

Here is a screen shot of the tracer in action:





At this point, I'm out of ideas. I thought the tracer/proximal method was going to work, but the render times are way too high.
__________________
Sub-D Modeling Series for C4D
 
  01 January 2018
a rather simplistic idea that could work in 2 different ways: make 2 versions of your ground model. one with the thread marks and one without. then either render twice and reveal the thread version in post or reveal the thread version directly in c4d with a boolean. the second method would be preferable since you only need to render once, but you might get artifacts along the boole cut.
__________________
________________________________
my stuff on vimeo
 
  01 January 2018
If I get it right you are calculating proximity (using the proximal shader) from surface to points on a tracer that traces all the vertices of your tires. That is very heavy and I am not at all surprised that it gets slow. I suggest you create null objects that are constraint to the bottom (touch point) of your tired with either a constraint tag or with Xpresso. Trace those nulls instead and use it with the proximal. That should be quicker.

However, if I had to do it I would probably follow the vertex map approach. As Decade already pointed out the resolution of your floor doesn't need to be that high as you'd only be using it as a mask. And even if its slow, there is always the option to cache it with alembic for fast viewport playback.
 
  01 January 2018
What about if you use particles emitted by the contact between the ground and the tire and use the particles to make a map?
 
  01 January 2018
Collision deformer would also work but you would need detailed geometry for that.
 
reply share thread



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
CGSociety
Society of Digital Artists
www.cgsociety.org

Powered by vBulletin
Copyright 2000 - 2006,
Jelsoft Enterprises Ltd.
Minimize Ads
Forum Jump
Miscellaneous

All times are GMT. The time now is 03:40 AM.


Powered by vBulletin
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.