Skip to main content

Report this content

We want the Dreams coMmunity to be a safe, diverse and tolerant place for everyone, no matter their age, gender, race, sexual orientation or otherwise. If you believe this content to contradict these principles, you can file a report for our coMmunity teams to investigate.

Note that misuse of the reporting tool will not be tolerated.

Item being reported:

A forum post by TAPgiles

I acknowledge this may mean an overhaul to how paint strokes/flecks are stored or something, but I honestly don't know one way or the other at this point. So I thought I'd throw it out there and see if it sticks. Mm, feel free to respond with how things are currently stored so I understand better going forward.

In vector graphics a straight line would consist of a "start position" and an "end position." The rest in between would just be filled in automatically by the renderer.

A freehand curved line (technically a polyline) would be a series of points with straight lines automatically drawn between them. Then such lines can be simplified by reducing the number of positions it uses, where it will cause the least change to the resulting line. So if you have a line that is more or less straight overall, but is slightly bent in the middle that may use 5 points to describe it. If you used a "simplify" tool on a line in a vector editing program, it would take away a few points at a time, trying to keep the overall straight line as best it can at each step but still using fewer positions and so less data for that line.

Dreams already does this "filling in" thing for fleck density, and rendering at different points between the two positions for animation speed. Which is why I thought it might already be stored like that. And it does seem to be done like that, otherwise how would it be able to interpolate for animation and density at all? But every stroke is a polyline with each fleck getting its own position. And at default settings, 1 fleck is rendered at each point.

Even for straight lines made with the "rule flecks" tool, which could get away with just 2 positions for a super long line instead of hundreds or thousands which seems to be how Dreams handles it currently.

This means that when we "reduce detail" and it takes positions out, instead of still being able to interpolate between the start and end of a line, it just doesn't draw a fleck there at all, leaving big holes and gaps in the painting. It quickly looks nothing like the original painting. To patch it up, we need to use looseness and fleck-stretch to fill in the gaps, though this doesn't work well in all cases. ...Compared to vector simplification which ends up with a very similar-looking line, just made using fewer positions and less data.

If instead of every fleck Dreams stored only positions it needs to care about, it would use less memory/thermo for a given paint stroke on average than it does now. If people wanted to, they could use many rule-flecks straight lines to cover an area instead of scribbling with an arbitrary stroke shape, to use a lot less thermo for their paintings.

Reducing a painting's detail would also keep the painting looking pretty much how it did before, but with curved strokes that are less nuanced.

Also, currently the reduce detail tool can go all the way down to a single fleck at the starting position of the stroke, but the end point is lost. Using vectors, the first and last positions would always be kept to at least allow for a straight line. And corners would try to be preserved unless using reduce detail enough everything becomes a straight line.

https://www.twitch.tv/videos/1475546189?t=2h49m59s 

https://www.twitch.tv/videos/1475546189?t=2h55m8s

Oh dear! Your browser is either unsupported or there has been a problem loading the page.