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.

最后发帖 - 页数 462

  论坛

TheEmu
已加入 在 Jul 2012
7424 发布

Discussions for Scenes for Version 1.2.X Fullscreen Mode here

关于iStripper的一切
September 17, 2021, 5087 回复
and the second part - with a one line overlap

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

vec2 Emu_Normalise_to_Window ( vec2 xy )
{ return EMU_NORMALISE_TO_WINDOW_1 ( xy, u_WindowSize.xy );
}

// ============================================================================
// == Shader specific inputs ==================================================
// ============================================================================

// EmuLib standard scale and hotspot parameters. Note, a hotspot of (0.5,0.5)
// is required to produce a symetric result.

uniform vec2 Emu_Shadow_scale;
uniform vec2 Emu_Shadow_hotspot;

vec2 scale = EMU_DEFAULT ( vec2, Emu_Shadow_scale, vec2(1.0) );
vec2 hotspot = EMU_DEFAULT ( vec2, Emu_Shadow_hotspot, vec2(0.0) );

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

// The shear and taper for X and Y are specified by the following parameters.
// Value of zero for an axis produces no *****. Values are expected to
// be in the range -1.0 to +1.0, but values outside that range are valid. It
// is expected that taper would normaly only be used in a scene using a 2D
// camera, where rotations about the X or Y axes do not work, in order to get
// the effect of a long shadow tapering into the distance. In 3D scenes it is
// more natural to rotate about the X axis to acheive this effect.

uniform vec2 Emu_Shadow_shear;
uniform vec2 Emu_Shadow_taper;

#define shear Emu_Shadow_shear
#define taper Emu_Shadow_taper

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

// The shadow's degree of blur is controlled by the following parameter which
// defaults to 0.0 corresponding to no blur. Values are expected to be in the
// range 0.0 to 10.0 but values outside that range are valid.

uniform float Emu_Shadow_blur;
#define blur Emu_Shadow_blur

// ============================================================================
// == Blur filter definition ==================================================
// ============================================================================

// The shadow is blurred using a simple one dimensional convolutional filter.
// The code used here was derived from that used for the more general filters
// in the TheEmuLib.Filters directory and their sources should be consulted
// if more information is wanted. A two dimensional blur could be used but it
// would not produce a significantly better result for a clipSprite shadow.

vec2 sample_step = vec2 ( blur/u_WindowSize.x, 1.0 );

#define BLUR QQ(-4.0,0.1) + QQ(-3.0,0.1) \
+ QQ(-2.0,0.1) + QQ(-1.0,0.1) \
+ QQ(0.0,0.2) \
+ QQ(+1.0,0.1) + QQ(+2.0,0.1) \
+ QQ(+3.0,0.1) + QQ(+4.0,0.1) \

#define CL(xy) clamp(xy,vec2(0.0),vec2(1.0))
#define TX(xy) texture2D ( iChannel0, CL(xy*sample_step+st) )

#define QQ(xx,ww) ( TX(vec2(xx,0.0)) * ww )

// ============================================================================
// == The shader's major functions ============================================
// ============================================================================

vec4 Emu_Shadow ( vec2 uv )
{
// Apply the transform with its fixed point at the hotspot. Note, the code
// here is the inverse of the required transform because we are determining
// what point in the source image will be transformed to the current pixel.

vec2 st = ( uv - hotspot ) / scale;

st = st - shear*st.yx;
st = st / ( 1.0 - taper*st.yx );

st = st + hotspot;

// Determine the colour using transparent black if the point
// lies outside of the area of the transformed source image.

return ( st == fract(abs(st)) ) ? (BLUR) : vec4(0.0);

}

// ============================================================================
// == The shader's main routine ===============================================
// ============================================================================

void main ( void )
{
// Get the normalised coordinates of the current point.

vec2 uv = Emu_Normalise_to_Window ( gl_FragCoord.xy );

// Apply the transform and update the shader's outputs.

gl_FragColor = Emu_Shadow(uv) * gl_Color;

}

// ============================================================================


TheEmu
已加入 在 Jul 2012
7424 发布

Discussions for Scenes for Version 1.2.X Fullscreen Mode here

关于iStripper的一切
September 17, 2021, 5087 回复
Damn, the shader was too big to post, here is the first part of it.
// ============================================================================
// ============================================================================
// ============================================================================
// == ==
// == Name : TheEmuLib.Emu_Shadow.A.1.fsh ==
// == Type : Fragment shader ==
// == Version : 1.0.0 (2017/03/23) ==
// == Creator : TheEmu © TheEmu 2017, Some Rights Reserved ==
// == Licence : Creative Commons Attribution-ShareAlike 4.0 ==
// == http://creativecommons.org/licences/by-sa/4.0 ==
// == ==
// == Purpose : To simulate a shadow. ==
// == ==
// == Description: The source image is distorted with a combination of shear ==
// == and taper transforms and a one dimensional blur is then applied. It is ==
// == expected that this shader will normaly be used to create a shadow of a ==
// == clipSprite, in which case color: and opacity: clauses would normaly be ==
// == used in the .scn file to get a black or dark grey partialy transparent ==
// == shadow. Similarly a scale: clause can be used to produce short or long ==
// == shadows. ==
// == ==
// == Note this version of the shader can produce a reasonable simulation of ==
// == the shadow of a clipSprite only when that shadow falls entirely on the ==
// == floor on which the performer depicted in the clipSprite is dancing. It ==
// == does not produce a realistic image if the shadow falls partialy on the ==
// == floor and partialy on a wall or other surface. ==
// == ==
// == ====================================================================== ==
// == ==
// == This file is a member of The Emu's shader library. ==
// == ==
// == ====================================================================== ==
// == ==
// == Update history: ==
// == ==
// == 2017/03/23 - v1.0.0 - Initial version. ==
// == ==
// ============================================================================
// ============================================================================
// ============================================================================

// ============================================================================
// == Standard shader inputs ==================================================
// ============================================================================

uniform float u_Elapsed; // The elapsed time in seconds
uniform vec2 u_WindowSize; // Window dimensions in pixels

// The image that is to be manipulated.

uniform sampler2D iChannel0;

// ============================================================================
// == Imports from TheEmuLib ==================================================
// ============================================================================
//
// The GLSL shader language currently provides no mechanism for importing any
// elements that are defined in other modules, not even C's crude source level
// #include mechanism. In the ***** of anything better TheEmuLib handles any
// imports by manualy copying relevent utility code snippets from the sources
// in the Shader Lib.Inc directory. This is very crude but I have attempted to
// be systematic in the way in which this is presented in the library sources.
//
// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

// Macros from TheEmuLib.Emu_Common_Utilities.lib.src

#define EMU_DEFAULT(type,x,default_value) ( (x==type(0.0)) ? (default_value) : (x) )

// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

// Functions from TheEmuLib.Emu_Coordinate_Normalisation.lib.src

#define EMU_NORMALISE_TO_WINDOW_1(xy,wsize) ( (xy)/(wsize) )

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -...
TheEmu
已加入 在 Jul 2012
7424 发布

Discussions for Scenes for Version 1.2.X Fullscreen Mode here

关于iStripper的一切
September 17, 2021, 5087 回复
Arrghhh.

@DrDoom9 - It seems that due to my poor network link I never uploaded these two scenes. Here are the files for the better of the two. You can put them into the TheEmu = Misc folder and itsappropriate subfolders

The only texture is h common foreground background image above

Firstly the .scn file - TheEmu = Misc - Hotel Lobby A.scn

/////////////////////////////////////////////////////////////
//
// A scene set in a hotel reception.
// This version simply has has one performer.
//
/////////////////////////////////////////////////////////////

text: TheEmu = Misc - 00 - Description.txt

/////////////////////////////////////////////////////////////

// The girls.

clip {
id : Girl-1
allow : pole
deny : accessories, top, table, cage, inout
}

clip {
id : Girl-2
deny : accessories, pole, top, table, cage, inout
}

/////////////////////////////////////////////////////////////

// The general setting.

texture {
id : Setting
size : 1920, 1080
source : Images/Hotel Lobby A.png
}

//////////////////////////////////////////////////////////////

// The clips for the girls are first rendered into separate
// framebuffers as that makes the subsequent manipulation
// used to create the their shadows somewhat easier. These
// buffers have been set to our nominal screen size.

framebuffer {

id : Girl-1xx
size : 1920, 1080

clipSprite {
source : Girl-1
pos : 720, 1000
scale : -1, 1, 1
standingHeight : 450
}
}

framebuffer {

id : Girl-2xx
size : 1920, 1080

clipSprite {
source : Girl-2
pos : 1340, 1050
scale : -1, 1, 1
standingHeight : 470
}

}

//////////////////////////////////////////////////////////////

// The shadows for Girls. For this shadow a large shear factor
// is used so this shadow is at an angle. The shader's hotspot
// parameter is used so that the "fixed point" of the shear is
// at the base of the pole in any poledance clipsprite.

framebuffer {

id : Girl-1-with-Shadow
size : 1920, 1080

node {

pos : 960, 540

sprite {
source : Girl-1xx
color : 0, 0, 0
opacity : 0.80
uniform : Emu_Shadow_blur, float, 2.5
uniform : Emu_Shadow_shear, vec2, 0.5, 0.0
uniform : Emu_Shadow_scale, vec2, 1.0, -0.03
uniform : Emu_Shadow_hotspot, vec2, 0.0, 0.93333333
shader : fragment, Shaders/TheEmuLib.Emu_Shadow.A.1.fsh
}

sprite {
source : Girl-1xx
}

}

}

framebuffer {

id : Girl-2-with-Shadow
size : 1920, 1080

node {

pos : 960, 540

sprite {
source : Girl-2xx
color : 0, 0, 0
opacity : 0.8
uniform : Emu_Shadow_blur, float, 2.5
uniform : Emu_Shadow_shear, vec2, 0.5, 0.0
uniform : Emu_Shadow_scale, vec2, 1.0, -0.03
uniform : Emu_Shadow_hotspot, vec2, 0.0, 0.9755555
shader : fragment, Shaders/TheEmuLib.Emu_Shadow.A.1.fsh
}

sprite {
source : Girl-2xx
}

}

}

/////////////////////////////////////////////////////////////

camera {

// Set up the camera.

type : 3D
angle : 45

pos : 0, 0, 1300

// // Recentre and move in.
//
// animate : 30, forward, linear, pos, 250, 0, -300
// animate : 30, forward, linear, target, 250, 0, -300

// The scene's setting as a background.

sprite {
pos : 0, 0
hotspot : 0.5, 0.5
source : Setting
size : 1920, 1080
blend : false
}

// The main performers.

sprite {
source : Girl-1-with-Shadow
}

sprite {
source : Girl-2-with-Shadow
}

// The foreground.

sprite {
pos : 0, 0
hotspot : 0.5, 0.5
source : Setting
size : 1920, 1080
blend : true
}

// The performers names.

clipNameSprite {
pos : -240, 300
hotspot : 0.5, 0.5
scale : 0.5, 0.5
source : Girl-1
}

clipNameSprite {
pos : 400, 300
hotspot : 0.5, 0.5
scale : 0.5, 0.5
source : Girl-2
}

}

Secondly the shader

[quote]// ============================================================================
// ============================================================================
// ============================================================================
// == ==
// == Name : TheEmuLib.Emu_Shadow.A.1.fsh ==
// == Type : Fragment shader ==
// == Version : 1.0.0 (2017/03/23) ==
// == Creator : TheE...
etinarcadiaego
已加入 在 May 2018
8 发布

What's up with the femdom flavor text? Is this actually your fantasy?

关于iStripper的一切
September 15, 2021, 7 回复
I have a question for fans of iStripper: do you mostly fantasize about submitting to the girls on your screen? No judgment, just genuinely curious.

I'm asking because Totem frames (with the card text) almost all their BDSM cards as femdom, even though this entire platform reads to me as an epic exercise in maledom harem fantasy (that's certainly why I'm on it). And statistically speaking, the majority of men are not sub. And most of the BDSM cards that have femdom flavor text from Totem are, in fact, the performer role-playing as a sub. There some notably great femdom/JOI-type solos, switch-hitting duos, and true femdom duos of course. But these are really few and far between.

Now, I get why Hollywood prefers dominatrixes for their BDSM-related content, because it lets them seem both edgy and sex positive without having to deal with the complexities of genuine, consensual femsub in the Me Too era.

But this is iStripper, folks... can't we be honest with ourselves about why most of the guys on this platform are here?

Or is iStripper really a hotbed of guys with femdom/female worship fantasies? I do see this sentiment disproportionally reflected in the card reviews, but I've always assumed the femsub fans are just keeping quite about that. (Again, no judgment either way. I can get into powerful women and female power fantasies.)

I think this is important because to do femsub BDSM content properly, Totem and their directors need to be willing to go there, attitude wise. I find it a bit irritating that Totem teases BDSM content more and more often, but seems not to know how to deliver on that promise - both generally (like props that are impractical for solo shows and get thrown behind the table almost immediately), and also to what I think is their core audience preference (femsub). This can't be driven primarily by performers, since a substantial % of performers deliver overtly submissive performances whether or not they're doing a BDSM-themed card, and a lot of the porn industry pros do almost exclusively maledom content outside of iStripper.

A corollary to this is: don't do BDSM-themed cards with performers who are unfamiliar and/or uncomfortable with the genre. But "focus on your performer's strengths" is just good advice over all.

Maybe if we speak up about our preferences, Totem will improve its artistic range going forward.