Ideas for a Volume Projection Shader to Create Scorch Marks?

shaders

#1

I’m curious if anyone of the awesome tech artists here have ever made a useful and (relatively) cheap 3d shader for scorch marks?

I’ve seen a shader working in Frostbite that did a simple planar projection along all 3 axis and blended the results (so if you pumped noise with a circular gradient along each axis, you ended up with an ambiguous volume scorch mark), but I missed my opportunity to explore how it was created.


#2

What do you mean exactly by “3d scorch marks”? Do you mean scorches which you can put onto a surface and they appear to have depth?


#3

If Keith is talking about what I think he is it’s pretty much a multidirectioanl decal. The 3d aspect of it comes from being able to put it in a corner and it will look right on both the walls and the floor without stretching.


#4

Jim Sanders had a pretty cool footstep projector, you could ask him if you can find him.

If you use a sphere of a known radius, and then do the depth math, you can fix the apparent depth/position of the scorched pixel?

I’d bet you could find some good stuff by looking into footstep tech.


#5

Interesting question, so I just tried on Unreal:

Using the Unreal decal system, its not possible to use pixel normal, so its not possible to use a simple planar projection here. So a 3d noise need to be generate on each axis, then merging them together. A bit more expensive, but still reasonable. Some cons I can see with this is:

  • Marks might look funny on some angle
  • Won’t be possible to add normal bump, at least with the Unreal decalActor system
  • Limited used as we can’t project custom 2d textures


#6

I toyed with this a few years ago. Here’s a quick UE4 mockup:

You can use a noise sample ofc but I’ve found they are quite expensive for pixel use, and not very artistically controllable.

Instead I just use a cube map to drive the noise. The image here just shows UE4’s default cube map texture which adds a nice little bit of detailing/textural detail over standard noise. You could go all in and bake out a cubemap with what you want, though.

In this particular case I couldnt find a way to pull decal size in the shader, but thats not really the focus on this.

I’d personally stick down this route, its content driven by the cube artwork and is a single tex sample. I personally wouldn’t use decals for UE4 :wink: but needs must. You could prob pretty easily make it look like it’s burning by being clever with your cube map info and running through gradients too.