Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
CGoGN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
1
Issues
1
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
Operations
Operations
Incidents
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
CGoGN
CGoGN
Commits
c1dc9b62
Commit
c1dc9b62
authored
May 06, 2015
by
Sylvain Thery
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
resolve pb of clipping with line Shaders
parent
4107949a
Changes
29
Hide whitespace changes
Inline
Side-by-side
Showing
29 changed files
with
256 additions
and
166 deletions
+256
-166
CGoGN/include/Utils/Shaders/shaderBold3DColorLines.frag
CGoGN/include/Utils/Shaders/shaderBold3DColorLines.frag
+0
-4
CGoGN/include/Utils/Shaders/shaderBold3DColorLines.geom
CGoGN/include/Utils/Shaders/shaderBold3DColorLines.geom
+39
-15
CGoGN/include/Utils/Shaders/shaderBold3DColorLines.vert
CGoGN/include/Utils/Shaders/shaderBold3DColorLines.vert
+2
-4
CGoGN/include/Utils/Shaders/shaderBold3DLines.frag
CGoGN/include/Utils/Shaders/shaderBold3DLines.frag
+2
-4
CGoGN/include/Utils/Shaders/shaderBold3DLines.geom
CGoGN/include/Utils/Shaders/shaderBold3DLines.geom
+34
-12
CGoGN/include/Utils/Shaders/shaderBold3DLines.vert
CGoGN/include/Utils/Shaders/shaderBold3DLines.vert
+1
-3
CGoGN/include/Utils/Shaders/shaderBoldColorLines.frag
CGoGN/include/Utils/Shaders/shaderBoldColorLines.frag
+0
-4
CGoGN/include/Utils/Shaders/shaderBoldColorLines.geom
CGoGN/include/Utils/Shaders/shaderBoldColorLines.geom
+29
-13
CGoGN/include/Utils/Shaders/shaderBoldColorLines.vert
CGoGN/include/Utils/Shaders/shaderBoldColorLines.vert
+1
-4
CGoGN/include/Utils/Shaders/shaderBoldLines.frag
CGoGN/include/Utils/Shaders/shaderBoldLines.frag
+0
-4
CGoGN/include/Utils/Shaders/shaderBoldLines.geom
CGoGN/include/Utils/Shaders/shaderBoldLines.geom
+24
-6
CGoGN/include/Utils/Shaders/shaderBoldLines.vert
CGoGN/include/Utils/Shaders/shaderBoldLines.vert
+1
-4
CGoGN/include/Utils/Shaders/shaderColorDarts.frag
CGoGN/include/Utils/Shaders/shaderColorDarts.frag
+0
-4
CGoGN/include/Utils/Shaders/shaderColorDarts.geom
CGoGN/include/Utils/Shaders/shaderColorDarts.geom
+30
-12
CGoGN/include/Utils/Shaders/shaderColorDarts.vert
CGoGN/include/Utils/Shaders/shaderColorDarts.vert
+1
-4
CGoGN/include/Utils/Shaders/shaderDarts.frag
CGoGN/include/Utils/Shaders/shaderDarts.frag
+0
-4
CGoGN/include/Utils/Shaders/shaderDarts.geom
CGoGN/include/Utils/Shaders/shaderDarts.geom
+29
-13
CGoGN/include/Utils/Shaders/shaderDarts.vert
CGoGN/include/Utils/Shaders/shaderDarts.vert
+1
-4
CGoGN/src/Utils/Shaders/shaderBold3DColorLines.cpp
CGoGN/src/Utils/Shaders/shaderBold3DColorLines.cpp
+7
-6
CGoGN/src/Utils/Shaders/shaderBold3DLines.cpp
CGoGN/src/Utils/Shaders/shaderBold3DLines.cpp
+7
-6
CGoGN/src/Utils/Shaders/shaderBoldColorLines.cpp
CGoGN/src/Utils/Shaders/shaderBoldColorLines.cpp
+7
-5
CGoGN/src/Utils/Shaders/shaderBoldLines.cpp
CGoGN/src/Utils/Shaders/shaderBoldLines.cpp
+8
-6
CGoGN/src/Utils/Shaders/shaderColorDarts.cpp
CGoGN/src/Utils/Shaders/shaderColorDarts.cpp
+7
-6
CGoGN/src/Utils/Shaders/shaderDarts.cpp
CGoGN/src/Utils/Shaders/shaderDarts.cpp
+8
-6
SCHNApps/Plugins/surface_renderTopo/include/surface_renderTopo.h
...s/Plugins/surface_renderTopo/include/surface_renderTopo.h
+4
-3
SCHNApps/Plugins/surface_renderTopo/src/surface_renderTopo.cpp
...pps/Plugins/surface_renderTopo/src/surface_renderTopo.cpp
+5
-3
SCHNApps/include/mapHandler.h
SCHNApps/include/mapHandler.h
+2
-2
SCHNApps/include/mapHandler.hpp
SCHNApps/include/mapHandler.hpp
+6
-4
SCHNApps/src/view.cpp
SCHNApps/src/view.cpp
+1
-1
No files found.
CGoGN/include/Utils/Shaders/shaderBold3DColorLines.frag
View file @
c1dc9b62
...
...
@@ -4,14 +4,10 @@ PRECISION;
VARYING_FRAG
vec3
fragColor
;
uniform
float
alpha
;
uniform
vec4
planeClip
;
VARYING_FRAG
vec3
fragClip
;
FRAG_OUT_DEF
;
void
main
()
{
if
(
dot
(
planeClip
,
vec4
(
fragClip
,
1
.
0
))
>
0
.
0
)
discard
;
FRAG_OUT
=
vec4
(
fragColor
,
alpha
);
}
CGoGN/include/Utils/Shaders/shaderBold3DColorLines.geom
View file @
c1dc9b62
// ShaderBold3DColorLines::geometryShaderText
uniform
float
lineWidth
;
uniform
mat4
ModelViewMatrix
;
uniform
mat4
ProjectionMatrix
;
uniform
float
lineWidth
;
uniform
vec4
planeClip
;
VARYING_IN
vec3
vcolor
[];
VARYING_OUT
vec3
fragColor
;
VARYING_IN
vec3
posClip
[];
VARYING_OUT
vec3
fragClip
;
void
main
()
{
vec4
Ap
=
(
ProjectionMatrix
*
POSITION_IN
(
0
));
vec4
Bp
=
(
ProjectionMatrix
*
POSITION_IN
(
1
));
/*
float v0 = dot(planeClip,POSITION_IN(0));
float v1 = dot(planeClip,POSITION_IN(1));
vec4 A = vec4(0.0,0.0,0.0,0.0);
vec4 B = vec4(0.0,0.0,0.0,0.0);
if (v0 <= 0.0) //A not clipped
{
A = ModelViewMatrix *POSITION_IN(0);
if (v1 <= 0.0)
B = ModelViewMatrix *POSITION_IN(1);
else
B = ModelViewMatrix * vec4(POSITION_IN(0).xyz * v1/(v1-v0) - POSITION_IN(1).xyz * v0/(v1-v0) ,1.0);
}
else
{
if (v1 <= 0.0) //B not clipped
{
B = ModelViewMatrix *POSITION_IN(1);
A = ModelViewMatrix * vec4(POSITION_IN(1).xyz * v0/(v0-v1) - POSITION_IN(0).xyz * v1/(v0-v1) ,1.0);
}
}
*/
vec4
A
=
ModelViewMatrix
*
POSITION_IN
(
0
);
vec4
B
=
ModelViewMatrix
*
POSITION_IN
(
1
);
vec4
Ap
=
ProjectionMatrix
*
A
;
vec4
Bp
=
ProjectionMatrix
*
B
;
vec3
U3
=
normalize
((
Bp
.
xyz
/
Bp
.
w
-
Ap
.
xyz
/
Ap
.
w
));
vec3
U
=
vec3
(
lineWidth
*
U3
);
vec3
V
=
vec3
(
lineWidth
*
normalize
(
vec2
(
U
[
1
],
-
U
[
0
])),
0
.
0
);
fragClip
=
posClip
[
0
];
fragColor
=
vcolor
[
0
];
gl_Position
=
ProjectionMatrix
*
vec4
(
POSITION_IN
(
0
)
.
xyz
-
U
,
1
.
0
);
gl_Position
=
ProjectionMatrix
*
vec4
(
A
.
xyz
-
U
,
1
.
0
);
EmitVertex
();
gl_Position
=
ProjectionMatrix
*
vec4
(
POSITION_IN
(
0
)
.
xyz
+
V
,
1
.
0
);
gl_Position
=
ProjectionMatrix
*
vec4
(
A
.
xyz
+
V
,
1
.
0
);
EmitVertex
();
gl_Position
=
ProjectionMatrix
*
vec4
(
POSITION_IN
(
0
)
.
xyz
-
V
,
1
.
0
);
gl_Position
=
ProjectionMatrix
*
vec4
(
A
.
xyz
-
V
,
1
.
0
);
EmitVertex
();
fragClip
=
posClip
[
1
];
fragColor
=
vcolor
[
1
];
gl_Position
=
ProjectionMatrix
*
vec4
(
POSITION_IN
(
1
)
.
xyz
+
V
,
1
.
0
);
gl_Position
=
ProjectionMatrix
*
vec4
(
B
.
xyz
+
V
,
1
.
0
);
EmitVertex
();
gl_Position
=
ProjectionMatrix
*
vec4
(
POSITION_IN
(
1
)
.
xyz
-
V
,
1
.
0
);
gl_Position
=
ProjectionMatrix
*
vec4
(
B
.
xyz
-
V
,
1
.
0
);
EmitVertex
();
gl_Position
=
ProjectionMatrix
*
vec4
(
POSITION_IN
(
1
)
.
xyz
+
U
,
1
.
0
);
gl_Position
=
ProjectionMatrix
*
vec4
(
B
.
xyz
+
U
,
1
.
0
);
EmitVertex
();
EndPrimitive
();
}
CGoGN/include/Utils/Shaders/shaderBold3DColorLines.vert
View file @
c1dc9b62
...
...
@@ -2,14 +2,12 @@
ATTRIBUTE
vec3
VertexPosition
;
ATTRIBUTE
vec3
VertexColor
;
uniform
mat4
ModelViewMatrix
;
VARYING_VERT
vec3
vcolor
;
VARYING_VERT
vec3
posClip
;
INVARIANT_POS
;
void
main
()
{
posClip
=
VertexPosition
;
vcolor
=
VertexColor
;
gl_Position
=
ModelViewMatrix
*
vec4
(
VertexPosition
,
1
.
0
);
gl_Position
=
vec4
(
VertexPosition
,
1
.
0
);
}
CGoGN/include/Utils/Shaders/shaderBold3DLines.frag
View file @
c1dc9b62
// ShaderBold3DLines::fragmentShaderText
PRECISION
;
uniform
vec4
lineColor
;
uniform
vec4
planeClip
;
VARYING_FRAG
vec3
fragClip
;
FRAG_OUT_DEF
;
void
main
()
{
if
(
dot
(
planeClip
,
vec4
(
fragClip
,
1
.
0
))
>
0
.
0
)
discard
;
FRAG_OUT
=
lineColor
;
}
CGoGN/include/Utils/Shaders/shaderBold3DLines.geom
View file @
c1dc9b62
// ShaderBold3DLines::geometryShaderText
uniform
mat4
ModelViewMatrix
;
uniform
mat4
ProjectionMatrix
;
uniform
float
lineWidth
;
VARYING_IN
vec3
posClip
[];
VARYING_OUT
vec3
fragClip
;
uniform
vec4
planeClip
;
void
main
()
{
vec4
Ap
=
(
ProjectionMatrix
*
POSITION_IN
(
0
));
vec4
Bp
=
(
ProjectionMatrix
*
POSITION_IN
(
1
));
float
v0
=
dot
(
planeClip
,
POSITION_IN
(
0
));
float
v1
=
dot
(
planeClip
,
POSITION_IN
(
1
));
vec4
A
=
vec4
(
0
.
0
,
0
.
0
,
0
.
0
,
0
.
0
);
vec4
B
=
vec4
(
0
.
0
,
0
.
0
,
0
.
0
,
0
.
0
);
if
(
v0
<=
0
.
0
)
//A not clipped
{
A
=
ModelViewMatrix
*
POSITION_IN
(
0
);
if
(
v1
<=
0
.
0
)
B
=
ModelViewMatrix
*
POSITION_IN
(
1
);
else
B
=
ModelViewMatrix
*
vec4
(
POSITION_IN
(
0
).
xyz
*
v1
/
(
v1
-
v0
)
-
POSITION_IN
(
1
).
xyz
*
v0
/
(
v1
-
v0
)
,
1
.
0
);
}
else
{
if
(
v1
<=
0
.
0
)
//B not clipped
{
B
=
ModelViewMatrix
*
POSITION_IN
(
1
);
A
=
ModelViewMatrix
*
vec4
(
POSITION_IN
(
1
).
xyz
*
v0
/
(
v0
-
v1
)
-
POSITION_IN
(
0
).
xyz
*
v1
/
(
v0
-
v1
)
,
1
.
0
);
}
}
vec4
Ap
=
(
ProjectionMatrix
*
A
);
vec4
Bp
=
(
ProjectionMatrix
*
B
);
vec3
U3
=
normalize
((
Bp
.
xyz
/
Bp
.
w
-
Ap
.
xyz
/
Ap
.
w
));
vec3
U
=
vec3
(
lineWidth
*
U3
);
vec3
V
=
vec3
(
lineWidth
*
normalize
(
vec2
(
U
[
1
],
-
U
[
0
])),
0
.
0
);
fragClip
=
posClip
[
0
];
gl_Position
=
ProjectionMatrix
*
vec4
(
POSITION_IN
(
0
).
xyz
-
U
,
1
.
0
);
gl_Position
=
ProjectionMatrix
*
vec4
(
A
.
xyz
-
U
,
1
.
0
);
EmitVertex
();
gl_Position
=
ProjectionMatrix
*
vec4
(
POSITION_IN
(
0
)
.
xyz
+
V
,
1
.
0
);
gl_Position
=
ProjectionMatrix
*
vec4
(
A
.
xyz
+
V
,
1
.
0
);
EmitVertex
();
gl_Position
=
ProjectionMatrix
*
vec4
(
POSITION_IN
(
0
)
.
xyz
-
V
,
1
.
0
);
gl_Position
=
ProjectionMatrix
*
vec4
(
A
.
xyz
-
V
,
1
.
0
);
EmitVertex
();
fragClip
=
posClip
[
1
];
gl_Position
=
ProjectionMatrix
*
vec4
(
POSITION_IN
(
1
).
xyz
+
V
,
1
.
0
);
gl_Position
=
ProjectionMatrix
*
vec4
(
B
.
xyz
+
V
,
1
.
0
);
EmitVertex
();
gl_Position
=
ProjectionMatrix
*
vec4
(
POSITION_IN
(
1
)
.
xyz
-
V
,
1
.
0
);
gl_Position
=
ProjectionMatrix
*
vec4
(
B
.
xyz
-
V
,
1
.
0
);
EmitVertex
();
gl_Position
=
ProjectionMatrix
*
vec4
(
POSITION_IN
(
1
)
.
xyz
+
U
,
1
.
0
);
gl_Position
=
ProjectionMatrix
*
vec4
(
B
.
xyz
+
U
,
1
.
0
);
EmitVertex
();
EndPrimitive
();
}
CGoGN/include/Utils/Shaders/shaderBold3DLines.vert
View file @
c1dc9b62
// ShaderBold3DLines::vertexShaderText
ATTRIBUTE
vec3
VertexPosition
;
uniform
mat4
ModelViewMatrix
;
VARYING_VERT
vec3
posClip
;
INVARIANT_POS
;
void
main
()
{
posClip
=
VertexPosition
;
gl_Position
=
ModelViewMatrix
*
vec4
(
VertexPosition
,
1
.
0
);
gl_Position
=
vec4
(
VertexPosition
,
1
.
0
);
}
CGoGN/include/Utils/Shaders/shaderBoldColorLines.frag
View file @
c1dc9b62
...
...
@@ -4,14 +4,10 @@ PRECISION;
VARYING_FRAG
vec3
fragColor
;
uniform
float
alpha
;
uniform
vec4
planeClip
;
VARYING_FRAG
vec3
fragClip
;
FRAG_OUT_DEF
;
void
main
()
{
if
(
dot
(
planeClip
,
vec4
(
fragClip
,
1
.
0
))
>
0
.
0
)
discard
;
FRAG_OUT
=
vec4
(
fragColor
,
alpha
);
}
CGoGN/include/Utils/Shaders/shaderBoldColorLines.geom
View file @
c1dc9b62
// ShaderBoldColorLines::geometryShaderText
uniform
vec2
lineWidths
;
uniform
mat4
ModelViewMatrix
;
uniform
mat4
ProjectionMatrix
;
uniform
vec2
lineWidths
;
uniform
vec4
planeClip
;
VARYING_IN
vec3
vcolor
[];
VARYING_OUT
vec3
fragColor
;
VARYING_IN
vec3
posClip
[];
VARYING_OUT
vec3
fragClip
;
void
main
()
{
vec4
A
=
POSITION_IN
(
0
);
vec4
B
=
POSITION_IN
(
1
);
float
v0
=
dot
(
planeClip
,
POSITION_IN
(
0
));
float
v1
=
dot
(
planeClip
,
POSITION_IN
(
1
));
vec4
A
=
vec4
(
0
.
0
,
0
.
0
,
0
.
0
,
0
.
0
);
vec4
B
=
vec4
(
0
.
0
,
0
.
0
,
0
.
0
,
0
.
0
);
if
(
v0
<=
0
.
0
)
//A not clipped
{
A
=
ModelViewMatrix
*
POSITION_IN
(
0
);
if
(
v1
<=
0
.
0
)
B
=
ModelViewMatrix
*
POSITION_IN
(
1
);
else
B
=
ModelViewMatrix
*
vec4
(
POSITION_IN
(
0
).
xyz
*
v1
/
(
v1
-
v0
)
-
POSITION_IN
(
1
).
xyz
*
v0
/
(
v1
-
v0
)
,
1
.
0
);
}
else
{
if
(
v1
<=
0
.
0
)
//B not clipped
{
B
=
ModelViewMatrix
*
POSITION_IN
(
1
);
A
=
ModelViewMatrix
*
vec4
(
POSITION_IN
(
1
).
xyz
*
v0
/
(
v0
-
v1
)
-
POSITION_IN
(
0
).
xyz
*
v1
/
(
v0
-
v1
)
,
1
.
0
);
}
}
float
nearZ
=
1
.
0
;
if
(
ProjectionMatrix
[
2
][
2
]
!=
1
.
0
)
nearZ
=
-
ProjectionMatrix
[
3
][
2
]
/
(
ProjectionMatrix
[
2
][
2
]
-
1
.
0
);
if
((
A
.
z
<
nearZ
)
||
(
B
.
z
<
nearZ
))
{
if
(
A
.
z
>=
nearZ
)
...
...
@@ -28,16 +46,15 @@ void main()
A
=
ProjectionMatrix
*
A
;
B
=
ProjectionMatrix
*
B
;
A
=
A
/
A
.
w
;
B
=
B
/
B
.
w
;
vec2
U2
=
normalize
(
vec2
(
lineWidths
[
1
],
lineWidths
[
0
])
*
(
B
.
xy
-
A
.
xy
));
vec2
LWCorr
=
lineWidths
*
max
(
abs
(
U2
.
x
),
abs
(
U2
.
y
));
vec3
U
=
vec3
(
LWCorr
*
U2
,
0
.
0
);
vec3
V
=
vec3
(
LWCorr
*
vec2
(
U2
[
1
],
-
U2
[
0
]),
0
.
0
);
fragClip
=
posClip
[
0
];
fragColor
=
vcolor
[
0
];
gl_Position
=
vec4
(
A
.
xyz
-
U
,
1
.
0
);
EmitVertex
();
...
...
@@ -46,7 +63,6 @@ void main()
gl_Position
=
vec4
(
A
.
xyz
-
V
,
1
.
0
);
EmitVertex
();
fragClip
=
posClip
[
1
];
fragColor
=
vcolor
[
1
];
gl_Position
=
vec4
(
B
.
xyz
+
V
,
1
.
0
);
EmitVertex
();
...
...
@@ -54,7 +70,7 @@ void main()
EmitVertex
();
gl_Position
=
vec4
(
B
.
xyz
+
U
,
1
.
0
);
EmitVertex
();
EndPrimitive
();
}
}
CGoGN/include/Utils/Shaders/shaderBoldColorLines.vert
View file @
c1dc9b62
...
...
@@ -2,14 +2,11 @@
ATTRIBUTE
vec3
VertexPosition
;
ATTRIBUTE
vec3
VertexColor
;
uniform
mat4
ModelViewMatrix
;
VARYING_VERT
vec3
vcolor
;
VARYING_VERT
vec3
posClip
;
INVARIANT_POS
;
void
main
()
{
posClip
=
VertexPosition
;
vcolor
=
VertexColor
;
gl_Position
=
ModelViewMatrix
*
vec4
(
VertexPosition
,
1
.
0
);
gl_Position
=
vec4
(
VertexPosition
,
1
.
0
);
}
CGoGN/include/Utils/Shaders/shaderBoldLines.frag
View file @
c1dc9b62
...
...
@@ -2,13 +2,9 @@
PRECISION
;
uniform
vec4
lineColor
;
uniform
vec4
planeClip
;
VARYING_FRAG
vec3
fragClip
;
FRAG_OUT_DEF
;
void
main
()
{
if
(
dot
(
planeClip
,
vec4
(
fragClip
,
1
.
0
))
>
0
.
0
)
discard
;
FRAG_OUT
=
lineColor
;
}
CGoGN/include/Utils/Shaders/shaderBoldLines.geom
View file @
c1dc9b62
// ShaderBoldLines::geometryShaderText
uniform
mat4
ModelViewMatrix
;
uniform
mat4
ProjectionMatrix
;
uniform
vec2
lineWidths
;
VARYING_IN
vec3
posClip
[];
VARYING_OUT
vec3
fragClip
;
uniform
vec4
planeClip
;
void
main
()
{
vec4
A
=
POSITION_IN
(
0
);
vec4
B
=
POSITION_IN
(
1
);
float
v0
=
dot
(
planeClip
,
POSITION_IN
(
0
));
float
v1
=
dot
(
planeClip
,
POSITION_IN
(
1
));
vec4
A
=
vec4
(
0
.
0
,
0
.
0
,
0
.
0
,
0
.
0
);
vec4
B
=
vec4
(
0
.
0
,
0
.
0
,
0
.
0
,
0
.
0
);
if
(
v0
<=
0
.
0
)
//A not clipped
{
A
=
ModelViewMatrix
*
POSITION_IN
(
0
);
if
(
v1
<=
0
.
0
)
B
=
ModelViewMatrix
*
POSITION_IN
(
1
);
else
B
=
ModelViewMatrix
*
vec4
(
POSITION_IN
(
0
).
xyz
*
v1
/
(
v1
-
v0
)
-
POSITION_IN
(
1
).
xyz
*
v0
/
(
v1
-
v0
)
,
1
.
0
);
}
else
{
if
(
v1
<=
0
.
0
)
//B not clipped
{
B
=
ModelViewMatrix
*
POSITION_IN
(
1
);
A
=
ModelViewMatrix
*
vec4
(
POSITION_IN
(
1
).
xyz
*
v0
/
(
v0
-
v1
)
-
POSITION_IN
(
0
).
xyz
*
v1
/
(
v0
-
v1
)
,
1
.
0
);
}
}
float
nearZ
=
1
.
0
;
if
(
ProjectionMatrix
[
2
][
2
]
!=
1
.
0
)
...
...
@@ -31,7 +51,6 @@ void main()
vec3
U
=
vec3
(
LWCorr
*
U2
,
0
.
0
);
vec3
V
=
vec3
(
LWCorr
*
vec2
(
U2
[
1
],
-
U2
[
0
]),
0
.
0
);
fragClip
=
posClip
[
0
];
gl_Position
=
vec4
(
A
.
xyz
-
U
,
1
.
0
);
EmitVertex
();
gl_Position
=
vec4
(
A
.
xyz
+
V
,
1
.
0
);
...
...
@@ -39,7 +58,6 @@ void main()
gl_Position
=
vec4
(
A
.
xyz
-
V
,
1
.
0
);
EmitVertex
();
fragClip
=
posClip
[
1
];
gl_Position
=
vec4
(
B
.
xyz
+
V
,
1
.
0
);
EmitVertex
();
gl_Position
=
vec4
(
B
.
xyz
-
V
,
1
.
0
);
...
...
CGoGN/include/Utils/Shaders/shaderBoldLines.vert
View file @
c1dc9b62
// ShaderBoldLines::vertexShaderText
ATTRIBUTE
vec3
VertexPosition
;
uniform
mat4
ModelViewMatrix
;
VARYING_VERT
vec3
posClip
;
INVARIANT_POS
;
void
main
()
{
posClip
=
VertexPosition
;
gl_Position
=
ModelViewMatrix
*
vec4
(
VertexPosition
,
1
.
0
);
gl_Position
=
vec4
(
VertexPosition
,
1
.
0
);
}
CGoGN/include/Utils/Shaders/shaderColorDarts.frag
View file @
c1dc9b62
...
...
@@ -4,14 +4,10 @@ PRECISION;
VARYING_FRAG
vec3
fragColor
;
uniform
float
alpha
;
uniform
vec4
planeClip
;
VARYING_FRAG
vec3
fragClip
;
FRAG_OUT_DEF
;
void
main
()
{
if
(
dot
(
planeClip
,
vec4
(
fragClip
,
1
.
0
))
>
0
.
0
)
discard
;
FRAG_OUT
=
vec4
(
fragColor
,
alpha
);
}
CGoGN/include/Utils/Shaders/shaderColorDarts.geom
View file @
c1dc9b62
// ShaderColorDarts::geometryShaderText
uniform
mat4
ModelViewMatrix
;
uniform
mat4
ProjectionMatrix
;
uniform
vec2
lineWidths
;
uniform
vec4
planeClip
;
VARYING_IN
vec3
vcolor
[];
VARYING_OUT
vec3
fragColor
;
VARYING_IN
vec3
posClip
[];
VARYING_OUT
vec3
fragClip
;
void
main
()
{
vec4
A
=
POSITION_IN
(
0
);
vec4
B
=
POSITION_IN
(
1
);
float
v0
=
dot
(
planeClip
,
POSITION_IN
(
0
));
float
v1
=
dot
(
planeClip
,
POSITION_IN
(
1
));
float
scalePoint
=
3
.
0
;
vec4
A
=
vec4
(
0
.
0
,
0
.
0
,
0
.
0
,
0
.
0
);
vec4
B
=
vec4
(
0
.
0
,
0
.
0
,
0
.
0
,
0
.
0
);
if
(
v0
<=
0
.
0
)
//A not clipped
{
A
=
ModelViewMatrix
*
POSITION_IN
(
0
);
if
(
v1
<=
0
.
0
)
B
=
ModelViewMatrix
*
POSITION_IN
(
1
);
else
B
=
ModelViewMatrix
*
vec4
(
POSITION_IN
(
0
).
xyz
*
v1
/
(
v1
-
v0
)
-
POSITION_IN
(
1
).
xyz
*
v0
/
(
v1
-
v0
)
,
1
.
0
);
}
else
{
if
(
v1
<=
0
.
0
)
//B not clipped
{
B
=
ModelViewMatrix
*
POSITION_IN
(
1
);
A
=
ModelViewMatrix
*
vec4
(
POSITION_IN
(
1
).
xyz
*
v0
/
(
v0
-
v1
)
-
POSITION_IN
(
0
).
xyz
*
v1
/
(
v0
-
v1
)
,
1
.
0
);
scalePoint
=
1
.
0
;
}
}
float
nearZ
=
1
.
0
;
if
(
ProjectionMatrix
[
2
][
2
]
!=
1
.
0
)
...
...
@@ -33,29 +53,27 @@ void main()
B
=
B
/
B
.
w
;
vec2
U2
=
normalize
(
vec2
(
lineWidths
[
1
],
lineWidths
[
0
])
*
(
B
.
xy
-
A
.
xy
));
vec2
LWCorr
=
lineWidths
*
max
(
abs
(
U2
.
x
),
abs
(
U2
.
y
));
vec3
U
=
vec3
(
LWCorr
*
U2
,
0
.
0
)
*
3
.
0
;
vec3
V
=
vec3
(
LWCorr
*
vec2
(
U2
[
1
],
-
U2
[
0
]),
0
.
0
)
*
3
.
0
;
vec3
U
=
vec3
(
lineWidths
*
U2
,
0
.
0
)
*
scalePoint
;
vec3
V
=
vec3
(
lineWidths
*
vec2
(
U2
[
1
],
-
U2
[
0
]),
0
.
0
)
*
scalePoint
;
fragClip
=
posClip
[
0
];
fragColor
=
vcolor
[
0
];
gl_Position
=
vec4
(
A
.
xyz
-
U
+
V
,
1
.
0
);
EmitVertex
();
gl_Position
=
vec4
(
A
.
xyz
-
U
-
V
,
1
.
0
);
EmitVertex
();
gl_Position
=
vec4
(
A
.
xyz
+
U
+
V
,
1
.
0
);
EmitVertex
();
gl_Position
=
vec4
(
A
.
xyz
+
U
-
V
,
1
.
0
);
EmitVertex
();
V
/=
3
.
0
;
V
/=
scalePoint
;
gl_Position
=
vec4
(
A
.
xyz
+
V
,
1
.
0
);
EmitVertex
();
gl_Position
=
vec4
(
A
.
xyz
-
V
,
1
.
0
);
EmitVertex
();
fragClip
=
posClip
[
1
];
fragColor
=
vcolor
[
1
];
gl_Position
=
vec4
(
B
.
xyz
+
V
,
1
.
0
);
EmitVertex
();
...
...
CGoGN/include/Utils/Shaders/shaderColorDarts.vert
View file @
c1dc9b62
...
...
@@ -2,14 +2,11 @@
ATTRIBUTE
vec3
VertexPosition
;
ATTRIBUTE
vec3
VertexColor
;
uniform
mat4
ModelViewMatrix
;
VARYING_VERT
vec3
vcolor
;
VARYING_VERT
vec3
posClip
;
INVARIANT_POS
;
void
main
()
{
posClip
=
VertexPosition
;
vcolor
=
VertexColor
;
gl_Position
=
ModelViewMatrix
*
vec4
(
VertexPosition
,
1
.
0
);
gl_Position
=
vec4
(
VertexPosition
,
1
.
0
);
}
CGoGN/include/Utils/Shaders/shaderDarts.frag
View file @
c1dc9b62
...
...
@@ -2,14 +2,10 @@
PRECISION
;
uniform
vec4
lineColor
;
uniform
vec4
planeClip
;
VARYING_FRAG
vec3
fragClip
;
FRAG_OUT_DEF
;
void
main
()
{
if
(
dot
(
planeClip
,
vec4
(
fragClip
,
1
.
0
))
>
0
.
0
)
discard
;
FRAG_OUT
=
lineColor
;
}
CGoGN/include/Utils/Shaders/shaderDarts.geom
View file @
c1dc9b62
// ShaderDarts::geometryShaderText
uniform
mat4
ModelViewMatrix
;
uniform
mat4
ProjectionMatrix
;
uniform
vec2
lineWidths
;
VARYING_IN
vec3
posClip
[];
VARYING_OUT
vec3
fragClip
;
uniform
vec4
planeClip
;
void
main
()
{
vec4
A
=
POSITION_IN
(
0
);
vec4
B
=
POSITION_IN
(
1
);
float
v0
=
dot
(
planeClip
,
POSITION_IN
(
0
));
float
v1
=
dot
(
planeClip
,
POSITION_IN
(
1
));
float
scalePoint
=
3
.
0
;
vec4
A
=
vec4
(
0
.
0
,
0
.
0
,
0
.
0
,
0
.
0
);
vec4
B
=
vec4
(
0
.
0
,
0
.
0
,
0
.
0
,
0
.
0
);
if
(
v0
<=
0
.
0
)
//A not clipped
{
A
=
ModelViewMatrix
*
POSITION_IN
(
0
);
if
(
v1
<=
0
.
0
)
B
=
ModelViewMatrix
*
POSITION_IN
(
1
);
else
B
=
ModelViewMatrix
*
vec4
(
POSITION_IN
(
0
).
xyz
*
v1
/
(
v1
-
v0
)
-
POSITION_IN
(
1
).
xyz
*
v0
/
(
v1
-
v0
)
,
1
.
0
);
}
else
{
if
(
v1
<=
0
.
0
)
//B not clipped
{
B
=
ModelViewMatrix
*
POSITION_IN
(
1
);
A
=
ModelViewMatrix
*
vec4
(
POSITION_IN
(
1
).
xyz
*
v0
/
(
v0
-
v1
)
-
POSITION_IN
(
0
).
xyz
*
v1
/
(
v0
-
v1
)
,
1
.
0
);
scalePoint
=
1
.
0
;
}
}
float
nearZ
=
1
.
0
;
if
(
ProjectionMatrix
[
2
][
2
]
!=
1
.
0
)
...
...
@@ -28,12 +49,8 @@ void main()
B
=
B
/
B
.
w
;
vec2
U2
=
normalize
(
vec2
(
lineWidths
[
1
],
lineWidths
[
0
])
*
(
B
.
xy
-
A
.
xy
));
vec2
LWCorr
=
lineWidths
*
max
(
abs
(
U2
.
x
),
abs
(
U2
.
y
));
vec3
U
=
vec3
(
LWCorr
*
U2
,
0
.
0
)
*
3
.
0
;
vec3
V
=
vec3
(
LWCorr
*
vec2
(
U2
[
1
],
-
U2
[
0
]),
0
.
0
)
*
3
.
0
;
fragClip
=
posClip
[
0
];
vec3
U
=
vec3
(
lineWidths
*
U2
,
0
.
0
)
*
scalePoint
;
vec3
V
=
vec3
(
lineWidths
*
vec2
(
U2
[
1
],
-
U2
[
0
]),
0
.
0
)
*
scalePoint
;
gl_Position
=
vec4
(
A
.
xyz
-
U
+
V
,
1
.
0
);
EmitVertex
();
...
...
@@ -44,14 +61,13 @@ void main()
gl_Position
=
vec4
(
A
.
xyz
+
U
-
V
,
1
.
0
);
EmitVertex
();
V
/=
3
.
0
;
V
/=
scalePoint
;