Author Topic: How come the old shader system was removed?  (Read 1374 times)

I understand that V21 added a new shader system, but the old one was much better for lower end computers. I have to keep shaders off normally, but I can run V20's shader system much better and even at max. Could it possibly become another rendering option for people who want shaders under people's feet and all but nothing too fancy?

As a side note are we ever going to get burn-on shaders? Basically it renders the shaders once instead of updating it very fast and you can re-burn them at any time.

i dont remember there being shaders in older versions

i dont remember there being shaders in older versions
Shaders was a v21 update. How did you have it in v20.

As a side note are we ever going to get burn-on shaders? Basically it renders the shaders once instead of updating it very fast and you can re-burn them at any time.
Yeah, and then reburn them every time a brick is planted, deleted, derenders, or rerenders.

Sounds like a solid plan.

Shaders was a v21 update. How did you have it in v20.
i dont remember there being shaders in older versions
He means that little circle shadow under your player.


Shaders was a v21 update. How did you have it in v20.
ey......
look at da ground, kiddo,,,,,,

The old shaders weren't dynamic and went through bricks, only colliding with terrain and interiors. They also weren't as powerful as the current ones.

i wouldn't call the v20's shadows shaders, as shaders do /a lot/ more than just shadows

v21's shadows are unoptimized
instead of checking if the brick had changed or deleted or if a new one had planted, they just ended up checking for every brick and every shape every single frame

v21's shadows are unoptimized
instead of checking if the brick had changed or deleted or if a new one had planted, they just ended up checking for every brick and every shape every single frame
Exactly.

Yeah, and then reburn them every time a brick is planted, deleted, derenders, or rerenders.
It would work way better, if it had checked if a brick had changed or not and only reburn the bricks that changed

It would work way better, if it had checked if a brick had changed or not and only reburn the bricks that changed
It's not that simple. Remember, we're dealing with hundreds of thousands of objects here. And you can't just 'reburn what changed'. One brick being removed means it's no longer casting a shadow onto all the objects it could be casting a shadow on, as well as the shadows that were being casted on it. You would be doing two huge processes to recalculate that, and then there's taking the time to do it all right.

And reminder that this wouldn't work at all with daycycles.

the idea is that you would somehow cache the calculations until they needed to be recalculated. if you can tell when a brick is removed or added, you can tell the system it needs to recalculate stuff, instead of recalculating every frame when you don't need to. of course, there are more things to consider than just that because you have all sorts of other objects and cases in the mix as well

the idea is that you would somehow cache the calculations until they needed to be recalculated. if you can tell when a brick is removed or added, you can tell the system it needs to recalculate stuff, instead of recalculating every frame when you don't need to. of course, there are more things to consider than just that because you have all sorts of other objects and cases in the mix as well
On top of things like bricks constantly changing color (to and from transparent), being rendered-unrendered, changing datablock (like chests and such), bricks being fakekilled by explosions, etc.

On top of things like bricks constantly changing color (to and from transparent), being rendered-unrendered, changing datablock (like chests and such), bricks being fakekilled by explosions, etc.
well to be fair that's still a significant advantage over recalculating every single frame