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.

마지막の글 - 페이지 #492

  게시판

Wyldanimal
중재자
Joined in Mar 2008
17194 글

Discussions for Scenes for Version 1.2.X Fullscreen Mode here

iStripper에 관한 모든 것
July 17, 2021, 5054 답변
if you think of the Vec2 as TWO boxes
then p has TWO boxes that you must always put something in.

Also the results of a formula, must have a Box for each of it's results.

lets look at this example

vec2 p = -1.0 + 2.0 * q;
p.x *= iResolution.xy/iResolution.y;

the 1st line vec2 p =
this assigns TWO boxes to p

so p by itself needs to have TWO boxes filled.

in the second line p.x =
here we are using a swizzle to put something in JUST ONE of the BOXES, the BOX called x
But on the other side of the = the formula produces TWO results, So we need to have TWO boxes to hold the results.

this
iResolution.xy/iResolution.y

it is Taking the TWO boxes of iResolution.xy or BOX iResolution.x and BOX iResolution.y
and dividing them by the same box iResolution.y

is a shorter way of
doing this
(iResolution.x/iResolution.y , iResolution.y/iResolution.y)

the results is TWO boxes
but on the front side of the =
there was only ONE BOX to hold the results.

that is what is Meant by you can't convert from a Vec2 float ( 2 Boxes ) to a float (a single BOX)

the Number of BOXES on both sides of the = must be the same.



Now there are several ways to fix the error, and you have to try them to see if it gives the desired results.

you could change line 115 to

p *= iResolution.xy/iResolution.y;
the p alone has 2 BOXES and the formula produces a TWO BOX result.
or
p *= iResolution.xy/iResolution.yx;
again, both side have 2 BOXES
or
p.xy *= iResolution.xy/iResolution.y;
and Again, Both Sides have two BOXES
or
p.x *= iResolution.x/iResolution.y;
this one is different
both sides have only ONE BOX, but Both sides still have the same number of BOXES

a vec3 has 3 BOXES so both sides of the = must have 3 BOXES

a vec4 has 4 BOXES so both sides of the = must have 4 BOXES

The first, second, third, and fourth BOXES can be referred to by using the Swizzle letters
xyzw where x = BOX1, y=BOX2, z=BOX3, w=BOX4
rgba where r = BOX1, g=BOX2, b=BOX3, a=BOX4
stpq where s = BOX1, t=BOX2, p=BOX3, q=BOX4

you can jumble the order of the letter, but the letters are fixed to which BOX they represent.
x is always BOX 1
g is always BOX 2
z is always BOX 3








Wyldanimal
중재자
Joined in Mar 2008
17194 글

Discussions for Scenes for Version 1.2.X Fullscreen Mode here

iStripper에 관한 모든 것
July 17, 2021, 5054 답변
How do you find the error?
in your VGHD.log file it will list the error and what line of code the error took place.

this is what was reported in the vghd.log
2021-07-17T03:35:54[] WARNING[QOpenGLShader::compile(Fragment): ERROR: 4:115: 'assign' : cannot convert from '2-component vector of highp float' to 'highp float']

lets break the error into smaller pieces.

2021-07-17T03:35:54[] WARNING
[QOpenGLShader::compile(Fragment):
ERROR: 4:115:
'assign' : cannot convert from '2-component vector of highp float' to 'highp float']

the error is a 4, and it happened on line 115

the error description is
assign : cannot convert from '2-component vector of highp float' to 'highp float'

Note: Some GPU's will ignore this error and just swizzle the vectors to match

Here is the snippet of code around line 115
notice that p is assigned as a vec2 float on line 114
then on line 115 it is attempting to be converted to a vec1 float.
( we don't use vec1 as part of the language.
but I wrote that so you can see, converting from a 2 vector float to a single vector float )



vec2 p = -1.0 + 2.0 * q;
p.x *= iResolution.xy/iResolution.y;

Now there are several ways to fix the error, and you have to try them to see if it gives the desired results.

you could change line 115 to

p *= iResolution.xy/iResolution.y;
or
p *= iResolution.xy/iResolution.yx;
or
p.xy *= iResolution.xy/iResolution.y;
or
p.x *= iResolution.x/iResolution.y;

all of those will correct the vector conversion error
but not all of them will give the same results

in this case, all of the results are acceptable.
Previous 페이지 #492 다음