Age Verification
This website contains age-restricted material including nudity and explicit content. By entering, you confirm being at least 18 years old or the age of majority in the jurisdiction you are accessing the website from.
I am 18+ or older - Enter
I am under 18 - Exit
Our parental controls page explains how you can easily block access to this site.

Letzte Beiträge - Seite 1556

  Forum

TheEmu
Mitglied seit in Jul 2012
7424 Beiträge

Share your FullScreen - Member Created Scenes here

Alles über iStripper
28. February 2017, 2705 antworten
@DrDoom9.

Unfortunately many of the fragment shaders calculate their output (pixel colour) in a way that ignores any color: and opacity: that may have been specified in the .scn file and this is why your opacity: clause has no effect. There are two ways to fix the problem.

Method 1 - Render the affected part of the scene in a framebuffer and then render that framebuffer in the scene using a sprite. The shader is used in the framebuffer and the color: and opacity: clauses in the sprite.

Method 2 - Fix the shader. All fragment shaders should at some point assign a colour to the GLSL variable gl_FragColor. This is usualy the last line of the shader, for example the refraction.fsh shader used in the bikini scene ends with

gl_FragColor = vec4(texColor.rgb , texColor.a );

but no matter where the assignment is done you can modify its effect either by modifying the line itself or by adding a statement that gets executed later that changes the value of gl_FragColor. You could just modify it to suit the needs of a particular scene, but that can rapidly lead to a having a lot of almost identical scene specific versions of a shader. It is better to be more general and add the line

gl_FragColor = gl_FragColor * gl_Color;

or equivalently the line

gl_FragColor *= gl_Color;

where gl_Color is a standard GLSL shader input that is set by iStripper to reflect the color: and opacity: clauses (defaulting to opaque white). It is most convenient to add this line either immediately after any existing assignment to gl_FragColor or as the last line of the shader's main routine - these are often the same place.

I recommend using method 2, its easier and makes the shader more generally useful.

P.S. In the case of the refraction shader it would be slightly better to replace the existing assignment to gl_FragColor with

gl_FragColor = texColor * gl_Color;

LATE EDIT: I originaly had a superfluous asterisk in the first suggested change to the shader, this is now corrected.
Also there is another work round that may be used, this being to modify the image to be more transparent, but this means that you begin to accumulate multiple slightly different versions of the image. It is better to use the more general solution I outlined above.