|
![](/i/fill.gif) |
On 3/3/2011 2:35 PM, Orchid XP v8 wrote:
> Remember this? ;-)
>
>>> What I can't figure out is
>>> how some of the effects that Milkdrop generates are mathematically
>>> possible.
>>
>> OK, you're going to have give me an example... give it over! Pick a
>> preset from Milkdrop's standard distribution that epitomizes this
>> nearly-impossible effect, and I'll tell you how I *think* it's done.
>> Maybe other, more knowledgeable people will join in as well, and we can
>> get to the bottom of this thing ;)
>
> Milkdrop has several presets where the screen seems to be covered in
> "ink" that somehow "bleeds" in an apparently three-dimensional mannar.
>
> For example, the first attachment. Quite apart from the emboss effect
> (which is presumably simple post-processing), different patches of ink
> flow down the screen independently, at different rates and in different
> directions. And patches somehow *occlude* each other. It's nothing
> unusual for newly rendered stuff to occlude existing imagery, but this
> preset is doing something altogether more clever.
For this one I'm guessing that a texture channel is evaluated and then
pushed around on a per-pixel basis. The ink propagates at different
rates due to the varying values of the input texture. In essence, the UV
coordinates of the texture are transformed based on one of the texture's
color channels, thus causing uneven spreading.
> And then there's the second attachment. It defies my comprehension that
> it is somehow possible to do this in realtime. Seemingly thousands of
> tiny fingers of colour, all moving and rotating in full 3D. Clearly it's
> impossible to hold such a complex structure in memory, so this must be
> some kind of 2D trickery with pixel shaders or some such. But I have
> absolutely no idea how it's possible. And it looks utterly fantastic, by
> the way. It's arguably THE BEST preset in the entire system.
Same as the last, but with an added global offset based on the texture
values. Values from one color channel would be used to offset the whole
texture unevenly, resulting in a parallax scrolling effect.
These assumptions are based on my own dealings with similar systems. I
achieved a pseudo 3D effect using the principles I described. It looks
like a flowing height_field, and it's actually very similar to one. I
couldn't get my ridges to occlude other ridges, though.
When you watch the second example, do the ridges seem to "eat away" the
texture behind them?
Having not seen these presets in action, I can't say for certain whether
my assumptions are correct :/
Sam
Post a reply to this message
|
![](/i/fill.gif) |