Dynamic Per Vertex Lighting Question

As of right now, I am currently trying to implement a lighting system in my game that uses per vertex lighting. Because this is a voxel engine, each chunk is composed of a large amount of blocks each containing their own light value (Used to store sunlight and torchlight). When I “remesh” the entire chunk I have a vbo for vec3 vert positions, vec2 uv positions, and finally int lighting value which get computed while the mesh is being constructed (Does this by looking at neighboring blocks).

While this works for non changing static lighting, it does not seem efficient for dynamic lighting. For example sunlight values will be changing throughout gameplay and torches will be placed and in order to update the lighting values I must remesh the entire thing. I suppose I could lower sunlight in discrete steps rather than continuously lowering the value, however I was wondering if there was a different approach to this?

Usually lighting is implemented by calculating the intensity in the shader program. That’s why they’re called “shaders”. But this assumes that the lighting calculations are relatively straightforward. If you want to do something more involved (e.g. shadows, radiosity, vast numbers of lights, whatever), you may need to pre-compute some of the data and/or devise an approximation which is more efficient to compute while being “close enough”.