Talk:EffectShader
Revised the presentation
In my quest to understand the EffectShader form, I found myself looking back at this page very often, only to drown in a sea of text every time. To improve the situation, I figured it would be better to drop the "list item; name - description" format in favor of a spacier list of options with indented descriptions. After my edits, the list looks more like a nix* manual page - a format that has proven solid for over forty years. Hopefully others will find it more readable too and start contributing info to relevant sections Tox2ik (talk) 2013-01-25T14:44:44 (EST)
Incomplete information
This page is missing a lot of information! I think it's a real shame that such a powerful tool remain undocumented, especially when people spend (impression from looking over the oblivion and skyrim forums) hours on end playing with these settings.
To someone with little experience in (TES) modding, the option such as "Texture (U,V)" makes little to no sense. Having even an inaccurate empirical account of what this does would be useful - instead of not having the option on the page at all.
On a similar note, what is the difference between `Fill Texture' and `Palette Texture'?
What is the difference between `Fill / Texture' and `Edge Effect' and how do the different pulsation settings interfere / override each other? They both seem to appear on the outskirt of a mesh, so why do we even need an edge effect?
I feel uncomfortable contributing to the page because of inadequate experience, but find it rather disappointing to see this powerful feature neglected. Surely, after looking at vanilla shaders for a weekend or two, I'll be able to tell what a shader will look like by just looking at these parameters. But many already do, and the info is not here! *sadface*
Last question:
Is the claim seen on the front page about "Z Test Function" having wall-hack capabilities true? If so, under which circumstances?
Tox2ik (talk) 2013-01-25T15:29:24 (EST)
Particle Shader Finish Effect
Anyone know what exactly controls the "finish" effect of an EffectShader? For instance, any of the core alteration spells (Stoneflesh, Oakflesh, etcetera) all will play a brief particle shader when the spell is cast, then they have only a membrane shader playing while the effect is active, but then when the effect finishes, another particle shader effect (similar to, but not exactly the same as) the original particle shader casting effect appears. What options in the Particle Shader settings (or elsewhere) control this behavior? -- Egocarib (talk) 2013-09-14T11:41:23 (EDT)
Notes on membrane shaders' values
The documentation on this page is very, very, very lacking. I'd edit it, but it's very difficult to test things for sure.
My tests indicate the following behavior:
- Upon being applied, the shader's alpha will fade in from zero to Full Alpha Ratio over Alpha Fade In Time seconds.
- The shader will then remain at Full Alpha Ratio for Full Alpha Time seconds.
- The shader will then fade back down to Persistent Alpha Ratio over ??? seconds (presumably the Alpha Fade Out Time is used for this as well).
- Upon being removed, the shader's alpha will fade out from its current alpha to zero over Alpha Fade Out Time seconds.
- The shader's alpha will also pulse by Alpha Pulse Amplitude at Alpha Pulse Frequency; this stacks with the previously mentioned behavior.
In other words,
- The alpha pulses over the entire time that the shader is active; these modifications stack with fades.
- Alpha Fade In Time and Alpha Fade Out Time determine how quickly the shader starts up and shuts down.
- The shader will only ever be at Full Alpha Ratio once.
- Use the fade times to control how quickly the shader applies and leaves. Use the pulse settings to animate the shader while it's there.
DavidJCobb (talk) 2015-04-11T17:20:35 (EDT)
More research and testing appears to indicate that the "source pixel" is the EffectShader's texture and color, while the "destination pixel" is the texture and color of the target object. It's difficult to know for sure, though.
I've been running my tests using an EffectShader with an opaque solid white fill texture. Here's what I'm seeing:
- No change when Source Blend is Zero, Dest Blend is One, and Operation is Max.
- Solid white when Source Blend is One, Dest Blend is One, and Operation is Add.
- Solid black when Source Blend is Zero, Dest Blend is Dest Alpha, and Operation is Add.
- The Z-Test Function appears to be totally broken; the "Greater Than or Equal" value does not show through walls as described; remarks found around the web indicate that it used to work back in Oblivion. NIF files have a similar feature (a flag available on NiAlphaProperty) which is also broken, so odds are good that Bethesda broke something deep within the graphics engine.
- Objects that use emissive glows but no textures appear to be totally unaffected by EffectShader membrane options.
Man, it sure would be nice to know what we're blending. :\ DavidJCobb (talk) 2015-04-12T22:26:30 (EDT)
Shaders do indeed fade from Full Alpha Ratio to Persistent Alpha Ratio over Alpha Fade Out Time seconds. However, there's a notable exception: it seems like if Persistent Alpha Ratio is greater than Full Alpha Ratio, the shader will immediately begin at the Persistent Alpha Ratio. Though this behavior is implied by the names of the settings ("full," as in "max," alpha ratio), one would expect it to start at Full Alpha Ratio and fade into Persistent Alpha Ratio regardless of the difference; and indeed that would be the more useful behavior.
Mind, I'm only testing edge effects right now. DavidJCobb (talk) 2016-11-01T22:12:19 (EDT)
- Okay, further testing confirms the current behavior at least for edge effects: if Full Alpha Ratio is less than Persistent Alpha Ratio, then Full Alpha Time will still be used, but at the end of the Full Alpha Time, the shader will instantly switch to the Persistent Alpha Ratio without fading (Alpha Fade Out Time is not used for a transition). Haven't tested what happens if you specify an Alpha Fade In Time. Bloody hell. DavidJCobb (talk) 2016-11-01T22:38:52 (EDT)
Notes on particle shaders
Particles appear to be emitted from any NiNode in the Actor's 3D skeleton that has collision data of some kind attached. If a NiNode and its parent both have collision data, particles should be emitted along the line between these two nodes. NiNodes without collision are almost always ignored by the particle system. DavidJCobb (talk) 2015-04-30T00:53:37 (EDT)
- All named elements in the skeleton must have unique names. DavidJCobb (talk) 2015-04-30T01:52:53 (EDT)
Pitch-black arms in first person
It appears that using the blend modes "Source Alpha" for source and "Dest Inverted Alpha" for destination can cause first-person arms to turn pitch-black. DavidJCobb (talk) 2016-04-17T02:22:19 (EDT)