Sketch #10: jqarlsson

campfire

I found a nice little campfire on the wild wild webs that I’ll look at for inspiration and I also drew up a little concept of what I want to get out of it all:


So basically… I want to make a small sized cozy little campfire swaying a little in the wind.

I want to try it out with having very silhouetted logs with embers glowing towards the center of the fire and static meshes wrapping the logs and reaching just a little bit out into the air. Not too far because I want to see if I can leave them static and let the particle system control the wind direction. Hopefully it will look OK without the static mesh swaying. And of course there will be sparks and some smoke as well. :smiley:

You can enjoy the 5 hour looping inspiration right here:

13 Likes

Todays update:

I’ve got the rocks, embers and sticks ready to get lit by flames now. All sticks have their vertex colors mask out where embers should be glowing on them. I simply baked a directional light from underneath to get vertex colors to start with.
The logs are unlit for now since I really like the silhouetted look.

Now I will start with wrapping the logs in meshes and create the shader and textures for the flames crawling over the sticks.

2 Likes

I’m surprised at how well the sheet seems to be working! I think it’s starting to look really promising and I’m going to keep tweaking the material a bit to get the proper variations in there and then add more sheets.

I also noticed that the other side of the sheet is a direct mirror of the front side so I will fix that. :slight_smile:

2 Likes

How are you going about authoring the sheets? Modelling by hand or are some fancy dynamics involved?

I’m modeling them by hand and scrolling a normal map across to distort the texture. I want to see how much they help once the actual sprites are added aswell. I might be going about this all wrong not having any sprites yet but I think it will work out nicely.

Here’s a clip on the animation of the flames. I now see they are moving a bit too slow.

And here are the sheets in Maya

!
They have black vertex color on the edges to avoid having the flames clip unnaturally.

13 Likes

Looks really promising, already looking great!

Ooo…I like this one. Very nice.

Oh, I like this one. I might have to try this technique you are showing next.

Thanks guys! :smiley: I’m happy you like the idea.

@Mez , I’ll add some breakdowns of the assets once I’ll be nearing the completion of this. Maybe there are some things that will help you and others come up with new cool ideas :slight_smile:

Hopefully I will be able to start with the emitter and bigger flame textures tonight after work.

1 Like

already looks better than most fires in most games out there hehe.

1 Like

Thank you @Luos_83 :slight_smile:

Here’s a small update:

I’m still working on the shape, shader and colors for this. But I think it’s getting there. The motion is also getting there but it all needs a bit more love. I’m trying to get more variation into each sprite as they spawn via dynamic parameters as well since I see they repeat the same pattern when spawning. I also noticed that the flames a bit too tall. :smiley:

Hopefully I will have something more to show a little later!

2 Likes

Here’s the last update for today:

Next up is either adding smoke or animating the position of the light and its intensity to mimic the changing intensity of the fire. I’ll try and animate its colors as well slightly.
We’ll see which one catches my interest tomorrow! :smiley:

8 Likes

Managed to get some time spent on the fire this evening!
I’ve added a spline for the light and animated it along said spline. I’m also animating the intensity of the light to give it a little flickering feel.

Babysteps! But getting closer.
Next up is doing some light smoke :slight_smile:

11 Likes

Damn that looks so comfy, I could spend hours watching this. Really good job !

1 Like

Thank you @Orik! I’m happy you enjoyed it! Hopefully I will be able to add another update this evening.

1 Like

Here’s the update for this evening:

It’s not much of a difference. I’ve added smoke. :smiley:
I’m feeling quite satisfied with it for now but if you guys have any feedback I’d gladly listen to what you have to say!

Here’s a small breakdown:

The flames used for the big sprites in the campfire:
campfire_particlesheets
I used SubUVs and spawn them randomly to have the shape of the fire change from now and then. I think it worked out quite well!

Here are the logs:
campfire_logs
Up close they look a bit like a swimming pool with caustics xD But from the right distance they sell the illusion.
Either way! I think the baked vertices are doing a great job! I simply used a directional light from underneath the logs and baked the lighting information to the vertices. Then I manually removed and added some where I thought it’d be logical (closer to embers, too far away etc)

If you have any feedback or questions don’t hesitate to bring it up! :slight_smile:

20 Likes

Your workflow is really impressive ! Good job ^^

Maybe you should try to make the global motion of the flames more “violent”; exactly like you did with the intensity of the light (as we can see, the shadows are jumping more violently sometimes)

It’s an amazing fire :smile:

1 Like

Thank you!

That’s some really good feedback! You’ve had me thinking about it all day! I’ll see if I can do some experiments on it this weekend. :slight_smile:

1 Like

WARNING! WALL OF TEXT!

Here’s a breakdown of the shader for the distorted flames:

I imported the normal map as a vector displacement map to get smoother distortions of the fire. It could of course be exchanged for a normal map compressed texture and you’d save around 256kb and wouldn’t have to use the bias scale between the mask and the multiply operation in the shader.

There are two panners in there. Looking exactly the same, using the same texture. But one has all the parameters connected to it called “Parameter_01” and the other “Parameter_02”. I’ve then changed scale on them in the material instance, how fast they pan and their intensity. I “hard coded” them to pan in a slightly different direction to make them return to their default position much later in time.

I painted the blue channel in the flames texture in a gradient manner that will cover the base and some more on the bases of the big flames. I multiply these values to the wobbly distorted flame values to limit the wobbliness to the top of the flame texture. Where the wobblieness should be strongest!

I’ve also used a Dynamic Parameter to add a random value through the particle system to the shaders panners in U. I had to minimize the chance of two particles spawning close to each other looking exactly the same. If you’ve connected the Dynamic Param in the shader it’s quite easy to hook it up in your particle system:

In this case, make sure you check “Spawn Time Only”. Since I’m using a Uniform Distribution the particle system will give me a random number between 0 and 1 only ONCE on EACH particle spawn. Giving every particle a more or less uniquely placed distortion texture.

Hopefully this can help someone with making their own awesome effects! If there are any questions regarding this I will gladly try to answear them!

13 Likes

Building mesh, controlling fire movement, and expressing firewood give me a lot of inspiration.

1 Like