ported the University CGI demo from WINDOWS + GLUT + GLEW + GLU + OpenGL 4 to LINUX WAYLAND + EGL + GLES 2 with minimal cuts

This commit is contained in:
beno
2025-07-03 01:26:25 +02:00
commit 6c125fb35e
85 changed files with 91688 additions and 0 deletions

10
resources/SCENE/Basic.mtl Executable file
View File

@@ -0,0 +1,10 @@
# Blender MTL File: 'column.blend'
# Material Count: 1
newmtl None
Ns 500
Ka 0.8 0.8 0.8
Kd 0.8 0.8 0.8
Ks 0.8 0.8 0.8
d 1
illum 2

9302
resources/SCENE/Basic.obj Executable file

File diff suppressed because it is too large Load Diff

10
resources/SCENE/LShape.mtl Executable file
View File

@@ -0,0 +1,10 @@
# Blender MTL File: 'column.blend'
# Material Count: 1
newmtl None
Ns 500
Ka 0.8 0.8 0.8
Kd 0.8 0.8 0.8
Ks 0.8 0.8 0.8
d 1
illum 2

32858
resources/SCENE/LShape.obj Executable file

File diff suppressed because it is too large Load Diff

10
resources/SCENE/Mid.mtl Executable file
View File

@@ -0,0 +1,10 @@
# Blender MTL File: 'column.blend'
# Material Count: 1
newmtl None
Ns 500
Ka 0.8 0.8 0.8
Kd 0.8 0.8 0.8
Ks 0.8 0.8 0.8
d 1
illum 2

17343
resources/SCENE/Mid.obj Executable file

File diff suppressed because it is too large Load Diff

10
resources/SCENE/mid_tail.mtl Executable file
View File

@@ -0,0 +1,10 @@
# Blender MTL File: 'column.blend'
# Material Count: 1
newmtl None
Ns 500
Ka 0.8 0.8 0.8
Kd 0.8 0.8 0.8
Ks 0.8 0.8 0.8
d 1
illum 2

17305
resources/SCENE/mid_tail.obj Executable file

File diff suppressed because it is too large Load Diff

125
resources/SCENE/scene.txt Executable file
View File

@@ -0,0 +1,125 @@
Basic
-0.0013656616 , 0.0000180006 , -0.0000000000 , 0.00000 , 0.00000 , 0.00000
-0.0013656616 , 0.0000180006 , 12.0000000000 , 0.00000 , 0.00000 , 0.00000
-0.0013656616 , 0.0000180006 , 24.0000000000 , 0.00000 , 0.00000 , 0.00000
-0.0013656616 , 0.0000180006 , 36.0000000000 , 0.00000 , 0.00000 , 0.00000
-0.0013656616 , 0.0000180006 , 48.0000000000 , 0.00000 , 0.00000 , 0.00000
-0.0013656616 , 0.0000180006 , 60.0000000000 , 0.00000 , 0.00000 , 0.00000
-0.0013656616 , 0.0000180006 , 72.0000000000 , 0.00000 , 0.00000 , 0.00000
-0.0013656616 , 0.0000180006 , 84.0000000000 , 0.00000 , 0.00000 , 0.00000
-0.0013656616 , 0.0000180006 , 96.0000000000 , 0.00000 , 0.00000 , 0.00000
11.9986343384 , 0.0000180006 , 96.0000000000 , 0.00000 , 0.00000 , 0.00000
23.9986343384 , 0.0000180006 , 96.0000000000 , 0.00000 , 0.00000 , 0.00000
35.9986343384 , 0.0000180006 , 24.0000000000 , 0.00000 , 0.00000 , 0.00000
35.9986343384 , 0.0000180006 , 36.0000000000 , 0.00000 , 0.00000 , 0.00000
35.9986343384 , 0.0000180006 , 48.0000000000 , 0.00000 , 0.00000 , 0.00000
35.9986343384 , 0.0000180006 , 60.0000000000 , 0.00000 , 0.00000 , 0.00000
35.9986343384 , 0.0000180006 , 96.0000000000 , 0.00000 , 0.00000 , 0.00000
35.9986343384 , 0.0000180006 , 12.0000000000 , 0.00000 , 0.00000 , 0.00000
35.9986343384 , 0.0000180006 , -0.0000000000 , 0.00000 , 0.00000 , 0.00000
23.9986343384 , 0.0000180006 , -0.0000000000 , 0.00000 , 0.00000 , 0.00000
11.9986343384 , 0.0000180006 , -0.0000000000 , 0.00000 , 0.00000 , 0.00000
47.9986343384 , 0.0000180006 , 60.0000000000 , 0.00000 , 0.00000 , 0.00000
47.9986343384 , 0.0000180006 , 96.0000000000 , 0.00000 , 0.00000 , 0.00000
59.9986343384 , 0.0000180006 , 60.0000000000 , 0.00000 , 0.00000 , 0.00000
59.9986343384 , 0.0000180006 , 96.0000000000 , 0.00000 , 0.00000 , 0.00000
71.9986343384 , 0.0000180006 , 60.0000000000 , 0.00000 , 0.00000 , 0.00000
71.9986343384 , 0.0000180006 , 96.0000000000 , 0.00000 , 0.00000 , 0.00000
95.9986343384 , 0.0000180006 , 60.0000000000 , 0.00000 , 0.00000 , 0.00000
95.9986343384 , 0.0000180006 , 96.0000000000 , 0.00000 , 0.00000 , 0.00000
131.9986267090 , 0.0000180006 , 72.0000000000 , 0.00000 , 0.00000 , 0.00000
107.9986343384 , 0.0000180006 , 96.0000000000 , 0.00000 , 0.00000 , 0.00000
131.9986267090 , 0.0000180006 , 84.0000000000 , 0.00000 , 0.00000 , 0.00000
119.9986343384 , 0.0000180006 , 96.0000000000 , 0.00000 , 0.00000 , 0.00000
131.9986267090 , 0.0000180006 , 60.0000000000 , 0.00000 , 0.00000 , 0.00000
131.9986267090 , 0.0000180006 , 96.0000000000 , 0.00000 , 0.00000 , 0.00000
95.9986343384 , 0.0000180006 , 24.0000000000 , 0.00000 , 0.00000 , 0.00000
95.9986343384 , 0.0000180006 , 36.0000000000 , 0.00000 , 0.00000 , 0.00000
95.9986343384 , 0.0000180006 , 48.0000000000 , 0.00000 , 0.00000 , 0.00000
131.9986267090 , 0.0000180006 , 24.0000000000 , 0.00000 , 0.00000 , 0.00000
131.9986267090 , 0.0000180006 , 36.0000000000 , 0.00000 , 0.00000 , 0.00000
131.9986267090 , 0.0000180006 , 48.0000000000 , 0.00000 , 0.00000 , 0.00000
83.9986343384 , 0.0000180006 , 60.0000000000 , 0.00000 , 0.00000 , 0.00000
83.9986343384 , 0.0000180006 , 96.0000000000 , 0.00000 , 0.00000 , 0.00000
47.9986343384 , 0.0000180006 , 24.0000000000 , 0.00000 , 0.00000 , 0.00000
47.9986343384 , 0.0000180006 , 36.0000000000 , 0.00000 , 0.00000 , 0.00000
47.9986343384 , 0.0000180006 , 48.0000000000 , 0.00000 , 0.00000 , 0.00000
47.9986343384 , 0.0000180006 , 12.0000000000 , 0.00000 , 0.00000 , 0.00000
47.9986343384 , 0.0000180006 , -0.0000000000 , 0.00000 , 0.00000 , 0.00000
59.9986343384 , 0.0000180006 , 24.0000000000 , 0.00000 , 0.00000 , 0.00000
59.9986343384 , 0.0000180006 , 36.0000000000 , 0.00000 , 0.00000 , 0.00000
59.9986343384 , 0.0000180006 , 48.0000000000 , 0.00000 , 0.00000 , 0.00000
59.9986343384 , 0.0000180006 , 12.0000000000 , 0.00000 , 0.00000 , 0.00000
59.9986343384 , 0.0000180006 , -0.0000000000 , 0.00000 , 0.00000 , 0.00000
71.9986343384 , 0.0000180006 , 24.0000000000 , 0.00000 , 0.00000 , 0.00000
71.9986343384 , 0.0000180006 , 36.0000000000 , 0.00000 , 0.00000 , 0.00000
71.9986343384 , 0.0000180006 , 48.0000000000 , 0.00000 , 0.00000 , 0.00000
71.9986343384 , 0.0000180006 , 12.0000000000 , 0.00000 , 0.00000 , 0.00000
71.9986343384 , 0.0000180006 , -0.0000000000 , 0.00000 , 0.00000 , 0.00000
83.9986343384 , 0.0000180006 , 24.0000000000 , 0.00000 , 0.00000 , 0.00000
83.9986343384 , 0.0000180006 , 36.0000000000 , 0.00000 , 0.00000 , 0.00000
83.9986343384 , 0.0000180006 , 48.0000000000 , 0.00000 , 0.00000 , 0.00000
83.9986343384 , 0.0000180006 , 12.0000000000 , 0.00000 , 0.00000 , 0.00000
83.9986343384 , 0.0000180006 , -0.0000000000 , 0.00000 , 0.00000 , 0.00000
-12.0013656616 , 0.0000180006 , -0.0000000000 , 0.00000 , 0.00000 , 0.00000
-12.0013656616 , 0.0000180006 , 12.0000000000 , 0.00000 , 0.00000 , 0.00000
-12.0013656616 , 0.0000180006 , 24.0000000000 , 0.00000 , 0.00000 , 0.00000
-12.0013656616 , 0.0000180006 , 36.0000000000 , 0.00000 , 0.00000 , 0.00000
-12.0013656616 , 0.0000180006 , 48.0000000000 , 0.00000 , 0.00000 , 0.00000
-12.0013656616 , 0.0000180006 , 60.0000000000 , 0.00000 , 0.00000 , 0.00000
-12.0013656616 , 0.0000180006 , 72.0000000000 , 0.00000 , 0.00000 , 0.00000
-12.0013656616 , 0.0000180006 , 84.0000000000 , 0.00000 , 0.00000 , 0.00000
-12.0013656616 , 0.0000180006 , 96.0000000000 , 0.00000 , 0.00000 , 0.00000
143.9986267090 , 0.0000180006 , 60.0000000000 , 0.00000 , 0.00000 , 0.00000
143.9986267090 , 0.0000180006 , 96.0000000000 , 0.00000 , 0.00000 , 0.00000
143.9986267090 , 0.0000180006 , 72.0000000000 , 0.00000 , 0.00000 , 0.00000
143.9986267090 , 0.0000180006 , 84.0000000000 , 0.00000 , 0.00000 , 0.00000
143.9986267090 , 0.0000180006 , 24.0000000000 , 0.00000 , 0.00000 , 0.00000
143.9986267090 , 0.0000180006 , 36.0000000000 , 0.00000 , 0.00000 , 0.00000
143.9986267090 , 0.0000180006 , 48.0000000000 , 0.00000 , 0.00000 , 0.00000
143.9986267090 , 0.0000180006 , 12.0000000000 , 0.00000 , 0.00000 , 0.00000
143.9986267090 , 0.0000180006 , -0.0000000000 , 0.00000 , 0.00000 , 0.00000
-0.0013656616 , 0.0000180006 , 108.0000000000 , 0.00000 , 0.00000 , 0.00000
11.9986343384 , 0.0000180006 , 108.0000000000 , 0.00000 , 0.00000 , 0.00000
23.9986343384 , 0.0000180006 , 108.0000000000 , 0.00000 , 0.00000 , 0.00000
35.9986343384 , 0.0000180006 , 108.0000000000 , 0.00000 , 0.00000 , 0.00000
47.9986343384 , 0.0000180006 , 108.0000000000 , 0.00000 , 0.00000 , 0.00000
59.9986343384 , 0.0000180006 , 108.0000000000 , 0.00000 , 0.00000 , 0.00000
71.9986343384 , 0.0000180006 , 108.0000000000 , 0.00000 , 0.00000 , 0.00000
95.9986343384 , 0.0000180006 , 108.0000000000 , 0.00000 , 0.00000 , 0.00000
107.9986343384 , 0.0000180006 , 108.0000000000 , 0.00000 , 0.00000 , 0.00000
119.9986343384 , 0.0000180006 , 108.0000000000 , 0.00000 , 0.00000 , 0.00000
131.9986267090 , 0.0000180006 , 108.0000000000 , 0.00000 , 0.00000 , 0.00000
83.9986343384 , 0.0000180006 , 108.0000000000 , 0.00000 , 0.00000 , 0.00000
-12.0013656616 , 0.0000180006 , 108.0000000000 , 0.00000 , 0.00000 , 0.00000
143.9986267090 , 0.0000180006 , 108.0000000000 , 0.00000 , 0.00000 , 0.00000
-0.0013656616 , 0.0000180006 , -12.0000000000 , 0.00000 , 0.00000 , 0.00000
11.9986343384 , 0.0000180006 , -12.0000000000 , 0.00000 , 0.00000 , 0.00000
23.9986343384 , 0.0000180006 , -12.0000000000 , 0.00000 , 0.00000 , 0.00000
35.9986343384 , 0.0000180006 , -12.0000000000 , 0.00000 , 0.00000 , 0.00000
47.9986343384 , 0.0000180006 , -12.0000000000 , 0.00000 , 0.00000 , 0.00000
59.9986343384 , 0.0000180006 , -12.0000000000 , 0.00000 , 0.00000 , 0.00000
71.9986343384 , 0.0000180006 , -12.0000000000 , 0.00000 , 0.00000 , 0.00000
83.9986343384 , 0.0000180006 , -12.0000000000 , 0.00000 , 0.00000 , 0.00000
-12.0013656616 , 0.0000180006 , -12.0000000000 , 0.00000 , 0.00000 , 0.00000
143.9986267090 , 0.0000180006 , -12.0000000000 , 0.00000 , 0.00000 , 0.00000
LShape
11.9986343384 , 0.0000180006 , 72.0000000000 , 0.00000 , 0.00000 , 0.00000
107.9986343384 , 0.0000180006 , 84.0000000000 , 0.00000 , 90.00000 , -0.00000
Mid
11.9986343384 , 0.0000180006 , 24.0000000000 , 0.00000 , 0.00000 , 0.00000
11.9986343384 , 0.0000180006 , 36.0000000000 , 0.00000 , 0.00000 , 0.00000
11.9986343384 , 0.0000180006 , 48.0000000000 , 0.00000 , 0.00000 , 0.00000
11.9986343384 , 0.0000180006 , 60.0000000000 , 0.00000 , 0.00000 , 0.00000
35.9986343384 , 0.0000180006 , 84.0000000000 , 0.00000 , 90.00000 , -0.00000
47.9986343384 , 0.0000180006 , 84.0000000000 , 0.00000 , 90.00000 , -0.00000
59.9986343384 , 0.0000180006 , 84.0000000000 , 0.00000 , 90.00000 , -0.00000
71.9986343384 , 0.0000180006 , 84.0000000000 , 0.00000 , 90.00000 , -0.00000
95.9986343384 , 0.0000180006 , 84.0000000000 , 0.00000 , 90.00000 , -0.00000
107.9986343384 , 0.0000180006 , 36.0000000000 , 0.00000 , 0.00000 , 0.00000
107.9986343384 , 0.0000180006 , 48.0000000000 , 0.00000 , 0.00000 , 0.00000
107.9986343384 , 0.0000180006 , 60.0000000000 , 0.00000 , 0.00000 , 0.00000
83.9986343384 , 0.0000180006 , 84.0000000000 , 0.00000 , 90.00000 , -0.00000
mid_tail
11.9986343384 , 0.0000180006 , 12.0000000000 , 0.00000 , 0.00000 , 0.00000
107.9986343384 , 0.0000180006 , 24.0000000000 , 0.00000 , 0.00000 , 0.00000

BIN
resources/cube3.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 185 KiB

41
resources/curve5.txt Executable file
View File

@@ -0,0 +1,41 @@
NurbsPath
curve 0 : NURBS
order 4 cyclic
113.9986343384 , 1.0000185966 , 6.0000000000 , 1.0000000000
113.9986343384 , 1.0000185966 , 12.0000000000 , 1.0000000000
113.9986343384 , 1.0000185966 , 24.0000000000 , 1.0000000000
113.9986343384 , 1.0000185966 , 36.0000000000 , 1.0000000000
113.9986343384 , 1.0000185966 , 42.0000000000 , 1.0000000000
101.9986343384 , 1.0000185966 , 42.0000000000 , 1.0000000000
101.9986343384 , 9.0000190735 , 42.0000000000 , 1.0000000000
101.9986343384 , 9.0000190735 , 54.0000000000 , 1.0000000000
101.9986343384 , 1.0000185966 , 54.0000000000 , 1.0000000000
113.9986343384 , 1.0000185966 , 54.0000000000 , 1.0000000000
113.9986343384 , 1.0000185966 , 72.0000000000 , 1.0000000000
113.9986343384 , 1.0000185966 , 77.9000015259 , 1.0000000000
107.9986343384 , 1.0000185966 , 77.9000015259 , 1.0000000000
95.9986343384 , 1.0000185966 , 77.9000015259 , 1.0000000000
83.9986343384 , 1.0000185966 , 77.9000015259 , 1.0000000000
65.9986343384 , 1.0000185966 , 77.9000015259 , 1.0000000000
65.9986343384 , 0.8315114975 , 77.9000015259 , 1.0000000000
65.9986343384 , 0.8315114975 , 65.9000015259 , 1.0000000000
65.9986343384 , 6.8315114975 , 65.9000015259 , 1.0000000000
65.9986343384 , 6.8315114975 , 77.9000015259 , 1.0000000000
53.9986343384 , 6.8315114975 , 77.9000015259 , 1.0000000000
53.9986343384 , 6.8315114975 , 65.9000015259 , 1.0000000000
53.9986343384 , 0.8315114975 , 65.9000015259 , 1.0000000000
53.9986343384 , 0.8315114975 , 77.9000015259 , 1.0000000000
53.9986343384 , 1.0000185966 , 77.9000015259 , 1.0000000000
47.9986343384 , 1.0000185966 , 77.9000015259 , 1.0000000000
35.9986343384 , 1.0000185966 , 77.9000015259 , 1.0000000000
17.9986343384 , 1.0000185966 , 77.9000015259 , 1.0000000000
17.9986343384 , 1.0000185966 , 65.9999923706 , 1.0000000000
29.9986343384 , 1.0000185966 , 65.9999923706 , 1.0000000000
29.9986343384 , 1.0000185966 , 77.8999938965 , 1.0000000000
17.9986343384 , 1.0000185966 , 78.0000000000 , 1.0000000000
17.9986343384 , 1.0000185966 , 60.0000000000 , 1.0000000000
17.9986343384 , 1.0000185966 , 48.0000000000 , 1.0000000000
17.9986343384 , 5.0000190735 , 36.0000000000 , 1.0000000000
17.9986343384 , -4.9999814034 , 24.0000000000 , 1.0000000000
17.9986343384 , 1.0000185966 , 12.0000000000 , 1.0000000000
17.9986343384 , 1.0000185966 , 6.0000000000 , 1.0000000000

View File

@@ -0,0 +1,60 @@
#version 300 es
/*this will affect all the float guys (float, vecN, matN )*/
precision mediump float;
in vec3 fragPos; //vertice in coordinata del mondo
in vec3 fragNormal;
in vec2 frag_uv; //coordinate 2d di texure
in vec3 fragBaryc;
in vec3 T;
in vec3 B;
in vec3 N;
uniform vec3 lightCol;
uniform vec3 lightPos;
uniform vec3 eyePos;
//uniform vec3 diffuseColor;
uniform sampler2D colorMap; //campionatore 2d
uniform sampler2D normalMap; //campionatore 2d
out vec4 FragColor;
float illuminazione(vec3 lucePos, vec3 fragPos, vec3 eyePos, vec3 fragNormal){
fragNormal = normalize(fragNormal);
vec3 aLuceDir = normalize(lucePos - fragPos);
vec3 allOcchioDir = normalize(eyePos - fragPos);
float lightDistance = length(lucePos - fragPos);
vec3 rimbalzoDir = normalize(reflect(-aLuceDir,fragNormal));
rimbalzoDir = reflect(-aLuceDir,fragNormal);
float attenuation = 1.0f / (0.01 * lightDistance);
float diffuseFactor = max(dot(aLuceDir, fragNormal), 0.0);
float specularFactor = pow(max(dot(rimbalzoDir, allOcchioDir), 0.0), 500.0f);
return attenuation * ( specularFactor + diffuseFactor );
//return attenuation * diffuseFactor;
}
void main()
{
vec3 Nor = normalize(N);
vec3 Tan = normalize(T);
vec3 Bit = normalize(B);
mat3 TBN = mat3(Tan,Bit,Nor);
vec4 texColor = texture(colorMap,frag_uv);
vec3 normalPix = texture(normalMap,frag_uv).rgb;
normalPix = normalPix * 2.0 - 1.0;
normalPix = normalize(TBN * normalPix);
normalPix = normalize(TBN * vec3(0,0,1));
vec3 result = texColor.rgb * illuminazione(lightPos, fragPos, eyePos, normalPix);
//FragColor = vec4(normalPix, 1.0f);
FragColor = vec4(texColor.xyz * illuminazione(lightPos, fragPos, eyePos, fragNormal), 1.0f);
}

View File

@@ -0,0 +1,19 @@
#version 300 es
/*this will affect all the float guys (float, vecN, matN )*/
precision mediump float;
in vec3 fragPos; //vertice in coordinata del mondo
uniform vec3 baseColor;
out vec4 FragColor;
void main()
{
vec3 result = baseColor;
FragColor = vec4(result, 1.0f);
}

View File

@@ -0,0 +1,81 @@
#version 300 es
/*this will affect all the float guys (float, vecN, matN )*/
precision mediump float;
in vec3 fragPos; //vertice in coordinata del mondo
in vec3 fragNormal;
in vec2 frag_uv; //coordinate 2d di texure
in vec3 fragBoundPos;
in vec3 fragBaryc;
/* does gles2 already includes it and considers it a redeclaration
in vec4 gl_FragCoord;
*/
in mat3 TBN;
uniform vec3 lightCol;
uniform vec3 lightPos;
uniform vec3 eyePos;
uniform float time;
//uniform vec3 diffuseColor;
uniform sampler2D colorMap; //campionatore 2d
uniform sampler2D normalMap; //campionatore 2d
out vec4 FragColor;
/*
int nScanLines = 16;
*/
float f_nScanLines = 16.0;
float PI = 3.14159265358979323846264338327950288;
float illuminazione(vec3 lucePos, vec3 fragPos, vec3 eyePos, vec3 fragNormal){
fragNormal = normalize(fragNormal);
vec3 aLuceDir = normalize(lucePos - fragPos);
vec3 allOcchioDir = normalize(eyePos - fragPos);
float lightDistance = length(lucePos - fragPos);
vec3 rimbalzoDir = - normalize(reflect(aLuceDir,fragNormal));
float attenuation = 1.0f / (0.01 * lightDistance);
float diffuseFactor = max(dot(aLuceDir, fragNormal), 0.0);
float specularFactor = pow(max(dot(rimbalzoDir, allOcchioDir), 0.0), 100.0f);
return attenuation * ( specularFactor + diffuseFactor);
}
void main()
{
vec4 texColor = texture(colorMap,frag_uv);
vec3 normalPix = texture(normalMap,frag_uv).rgb;
normalPix = normalPix * 2.0 - 1.0;
normalPix = normalize(TBN * normalPix);
float sinExp = 500.0 * (0.05 + 0.95 * sin( 3.14159265359 * 0.25 * (time * time)));
//float sinExp = 500.0;
float clampBound = 0.25;
vec3 result = 0.7 * vec3(1,0.5,1);
float locy = fragBoundPos.y;
locy = mod(locy, 1.0f / f_nScanLines);
float dist = abs(pow(locy - (time / f_nScanLines), 0.1));
float glowFac = (1.0 / clampBound) * abs(clamp(
pow(sin(dist * PI), sinExp), -clampBound, clampBound));
float scrDist = sin( PI * ( 1.0 - clamp(pow(gl_FragCoord.z , 100.0), 0.0, 1.0)));
result *= scrDist;
FragColor = vec4(result, 1.0f);
FragColor*=glowFac;
//FragColor = vec4(abs(fragNormal.x) * glowFac ,abs(fragNormal.y) * glowFac , abs(fragNormal.z) * glowFac , 1.0f * scrDist);
float baryThreshold = 0.05f;
if(fragBaryc.x > baryThreshold && fragBaryc.y > baryThreshold && fragBaryc.z > baryThreshold) {
FragColor = vec4(0.05 * FragColor.xyz, 0);
}
}

271
resources/ico.obj Executable file
View File

@@ -0,0 +1,271 @@
# Blender v2.91.0 OBJ File: ''
# www.blender.org
mtllib ico.mtl
o Icosphere
v 0.000000 -1.000000 0.000000
v 0.723607 -0.447220 0.525725
v -0.276388 -0.447220 0.850649
v -0.894426 -0.447216 0.000000
v -0.276388 -0.447220 -0.850649
v 0.723607 -0.447220 -0.525725
v 0.276388 0.447220 0.850649
v -0.723607 0.447220 0.525725
v -0.723607 0.447220 -0.525725
v 0.276388 0.447220 -0.850649
v 0.894426 0.447216 0.000000
v 0.000000 1.000000 0.000000
v -0.162456 -0.850654 0.499995
v 0.425323 -0.850654 0.309011
v 0.262869 -0.525738 0.809012
v 0.850648 -0.525736 0.000000
v 0.425323 -0.850654 -0.309011
v -0.525730 -0.850652 0.000000
v -0.688189 -0.525736 0.499997
v -0.162456 -0.850654 -0.499995
v -0.688189 -0.525736 -0.499997
v 0.262869 -0.525738 -0.809012
v 0.951058 0.000000 0.309013
v 0.951058 0.000000 -0.309013
v 0.000000 0.000000 1.000000
v 0.587786 0.000000 0.809017
v -0.951058 0.000000 0.309013
v -0.587786 0.000000 0.809017
v -0.587786 0.000000 -0.809017
v -0.951058 0.000000 -0.309013
v 0.587786 0.000000 -0.809017
v 0.000000 0.000000 -1.000000
v 0.688189 0.525736 0.499997
v -0.262869 0.525738 0.809012
v -0.850648 0.525736 0.000000
v -0.262869 0.525738 -0.809012
v 0.688189 0.525736 -0.499997
v 0.162456 0.850654 0.499995
v 0.525730 0.850652 0.000000
v -0.425323 0.850654 0.309011
v -0.425323 0.850654 -0.309011
v 0.162456 0.850654 -0.499995
vt 0.818181 0.000000
vt 0.772726 0.078731
vt 0.863635 0.078731
vt 0.727272 0.157461
vt 0.681818 0.078731
vt 0.636363 0.157461
vt 0.090909 0.000000
vt 0.045454 0.078731
vt 0.136363 0.078731
vt 0.272727 0.000000
vt 0.227273 0.078731
vt 0.318182 0.078731
vt 0.454545 0.000000
vt 0.409090 0.078731
vt 0.500000 0.078731
vt 0.681818 0.236191
vt 0.909090 0.157461
vt 0.818181 0.157461
vt 0.863635 0.236191
vt 0.181818 0.157461
vt 0.090909 0.157461
vt 0.136363 0.236191
vt 0.363636 0.157461
vt 0.272727 0.157461
vt 0.318182 0.236191
vt 0.545454 0.157461
vt 0.454545 0.157461
vt 0.500000 0.236191
vt 0.772726 0.236191
vt 0.954545 0.236191
vt 0.227273 0.236191
vt 0.409090 0.236191
vt 0.590909 0.236191
vt 0.818181 0.314921
vt 0.727272 0.314921
vt 0.772726 0.393651
vt 1.000000 0.314921
vt 0.909091 0.314921
vt 0.954545 0.393651
vt 0.272727 0.314921
vt 0.181818 0.314921
vt 0.227273 0.393651
vt 0.454545 0.314921
vt 0.363636 0.314921
vt 0.409090 0.393651
vt 0.636363 0.314921
vt 0.545454 0.314921
vt 0.590909 0.393651
vt 0.500000 0.393651
vt 0.545454 0.472382
vt 0.318182 0.393651
vt 0.363636 0.472382
vt 0.136363 0.393651
vt 0.181818 0.472382
vt 0.090909 0.314921
vt 0.863635 0.393651
vt 0.909090 0.472382
vt 0.681818 0.393651
vt 0.727272 0.472382
vt 0.045454 0.236191
vt 0.000000 0.157461
vt 0.590909 0.078731
vt 0.636363 0.000000
vn 0.1024 -0.9435 0.3151
vn 0.7002 -0.6617 0.2680
vn -0.2680 -0.9435 0.1947
vn -0.2680 -0.9435 -0.1947
vn 0.1024 -0.9435 -0.3151
vn 0.9050 -0.3304 0.2680
vn 0.0247 -0.3304 0.9435
vn -0.8897 -0.3304 0.3151
vn -0.5746 -0.3304 -0.7488
vn 0.5346 -0.3304 -0.7779
vn 0.8026 -0.1256 0.5831
vn -0.3066 -0.1256 0.9435
vn -0.9921 -0.1256 0.0000
vn -0.3066 -0.1256 -0.9435
vn 0.8026 -0.1256 -0.5831
vn 0.4089 0.6617 0.6284
vn -0.4713 0.6617 0.5831
vn -0.7002 0.6617 -0.2680
vn 0.0385 0.6617 -0.7488
vn 0.7240 0.6617 -0.1947
vn 0.2680 0.9435 -0.1947
vn 0.4911 0.7947 -0.3568
vn 0.4089 0.6617 -0.6284
vn -0.1024 0.9435 -0.3151
vn -0.1876 0.7947 -0.5773
vn -0.4713 0.6617 -0.5831
vn -0.3313 0.9435 0.0000
vn -0.6071 0.7947 0.0000
vn -0.7002 0.6617 0.2680
vn -0.1024 0.9435 0.3151
vn -0.1876 0.7947 0.5773
vn 0.0385 0.6617 0.7488
vn 0.2680 0.9435 0.1947
vn 0.4911 0.7947 0.3568
vn 0.7240 0.6617 0.1947
vn 0.8897 0.3304 -0.3151
vn 0.7947 0.1876 -0.5773
vn 0.5746 0.3304 -0.7488
vn -0.0247 0.3304 -0.9435
vn -0.3035 0.1876 -0.9342
vn -0.5346 0.3304 -0.7779
vn -0.9050 0.3304 -0.2680
vn -0.9822 0.1876 0.0000
vn -0.9050 0.3304 0.2680
vn -0.5346 0.3304 0.7779
vn -0.3035 0.1876 0.9342
vn -0.0247 0.3304 0.9435
vn 0.5746 0.3304 0.7488
vn 0.7947 0.1876 0.5773
vn 0.8897 0.3304 0.3151
vn 0.3066 0.1256 -0.9435
vn 0.3035 -0.1876 -0.9342
vn 0.0247 -0.3304 -0.9435
vn -0.8026 0.1256 -0.5831
vn -0.7947 -0.1876 -0.5773
vn -0.8897 -0.3304 -0.3151
vn -0.8026 0.1256 0.5831
vn -0.7947 -0.1876 0.5773
vn -0.5746 -0.3304 0.7488
vn 0.3066 0.1256 0.9435
vn 0.3035 -0.1876 0.9342
vn 0.5346 -0.3304 0.7779
vn 0.9921 0.1256 0.0000
vn 0.9822 -0.1876 0.0000
vn 0.9050 -0.3304 -0.2680
vn 0.4713 -0.6617 -0.5831
vn 0.1876 -0.7947 -0.5773
vn -0.0385 -0.6617 -0.7488
vn -0.4089 -0.6617 -0.6284
vn -0.4911 -0.7947 -0.3568
vn -0.7240 -0.6617 -0.1947
vn -0.7240 -0.6617 0.1947
vn -0.4911 -0.7947 0.3568
vn -0.4089 -0.6617 0.6284
vn 0.7002 -0.6617 -0.2680
vn 0.6071 -0.7947 0.0000
vn 0.3313 -0.9435 0.0000
vn -0.0385 -0.6617 0.7488
vn 0.1876 -0.7947 0.5773
vn 0.4713 -0.6617 0.5831
usemtl None
s off
f 1/1/1 14/2/1 13/3/1
f 2/4/2 14/5/2 16/6/2
f 1/7/3 13/8/3 18/9/3
f 1/10/4 18/11/4 20/12/4
f 1/13/5 20/14/5 17/15/5
f 2/4/6 16/6/6 23/16/6
f 3/17/7 15/18/7 25/19/7
f 4/20/8 19/21/8 27/22/8
f 5/23/9 21/24/9 29/25/9
f 6/26/10 22/27/10 31/28/10
f 2/4/11 23/16/11 26/29/11
f 3/17/12 25/19/12 28/30/12
f 4/20/13 27/22/13 30/31/13
f 5/23/14 29/25/14 32/32/14
f 6/26/15 31/28/15 24/33/15
f 7/34/16 33/35/16 38/36/16
f 8/37/17 34/38/17 40/39/17
f 9/40/18 35/41/18 41/42/18
f 10/43/19 36/44/19 42/45/19
f 11/46/20 37/47/20 39/48/20
f 39/48/21 42/49/21 12/50/21
f 39/48/22 37/47/22 42/49/22
f 37/47/23 10/43/23 42/49/23
f 42/45/24 41/51/24 12/52/24
f 42/45/25 36/44/25 41/51/25
f 36/44/26 9/40/26 41/51/26
f 41/42/27 40/53/27 12/54/27
f 41/42/28 35/41/28 40/53/28
f 35/41/29 8/55/29 40/53/29
f 40/39/30 38/56/30 12/57/30
f 40/39/31 34/38/31 38/56/31
f 34/38/32 7/34/32 38/56/32
f 38/36/33 39/58/33 12/59/33
f 38/36/34 33/35/34 39/58/34
f 33/35/35 11/46/35 39/58/35
f 24/33/36 37/47/36 11/46/36
f 24/33/37 31/28/37 37/47/37
f 31/28/38 10/43/38 37/47/38
f 32/32/39 36/44/39 10/43/39
f 32/32/40 29/25/40 36/44/40
f 29/25/41 9/40/41 36/44/41
f 30/31/42 35/41/42 9/40/42
f 30/31/43 27/22/43 35/41/43
f 27/22/44 8/55/44 35/41/44
f 28/30/45 34/38/45 8/37/45
f 28/30/46 25/19/46 34/38/46
f 25/19/47 7/34/47 34/38/47
f 26/29/48 33/35/48 7/34/48
f 26/29/49 23/16/49 33/35/49
f 23/16/50 11/46/50 33/35/50
f 31/28/51 32/32/51 10/43/51
f 31/28/52 22/27/52 32/32/52
f 22/27/53 5/23/53 32/32/53
f 29/25/54 30/31/54 9/40/54
f 29/25/55 21/24/55 30/31/55
f 21/24/56 4/20/56 30/31/56
f 27/22/57 28/60/57 8/55/57
f 27/22/58 19/21/58 28/60/58
f 19/21/59 3/61/59 28/60/59
f 25/19/60 26/29/60 7/34/60
f 25/19/61 15/18/61 26/29/61
f 15/18/62 2/4/62 26/29/62
f 23/16/63 24/33/63 11/46/63
f 23/16/64 16/6/64 24/33/64
f 16/6/65 6/26/65 24/33/65
f 17/15/66 22/27/66 6/26/66
f 17/15/67 20/14/67 22/27/67
f 20/14/68 5/23/68 22/27/68
f 20/12/69 21/24/69 5/23/69
f 20/12/70 18/11/70 21/24/70
f 18/11/71 4/20/71 21/24/71
f 18/9/72 19/21/72 4/20/72
f 18/9/73 13/8/73 19/21/73
f 13/8/74 3/61/74 19/21/74
f 16/6/75 17/62/75 6/26/75
f 16/6/76 14/5/76 17/62/76
f 14/5/77 1/63/77 17/62/77
f 13/3/78 15/18/78 3/17/78
f 13/3/79 14/2/79 15/18/79
f 14/2/80 2/4/80 15/18/80

View File

@@ -0,0 +1,41 @@
#version 300 es
/*this will affect all the float guys (float, vecN, matN )*/
precision mediump float;
layout (location = 0) in vec3 vertPos; // Attributo Posizione
layout (location = 1) in vec2 coord_uv; // Attributo texture
layout (location = 2) in vec3 vertNor;
layout (location = 3) in vec3 vertTan;
layout (location = 4) in vec3 vertBitan;
uniform mat4 Model;
uniform mat4 ModelRot;
uniform mat4 Projection;
uniform mat4 View;
out vec3 fragPos;
out vec2 frag_uv;
out vec3 fragNormal;
out vec3 fragBaryc;
out vec3 T;
out vec3 B;
out vec3 N;
void main()
{
frag_uv = coord_uv;
vec3 normal = normalize(vertNor);
mat3 mv = mat3(View * Model);
T = normalize(mv * vertTan);
B = normalize(mv * vertBitan);
N = normalize(mv * vertNor);
fragNormal = mat3(ModelRot) * vec3(normal);
fragPos=(Model*vec4(vertPos,1)).xyz;
gl_Position=Projection*View*Model*vec4(vertPos,1);
fragBaryc = vec3(gl_VertexID % 3 == 0, gl_VertexID % 3 == 1, gl_VertexID % 3 == 2);
}

View File

@@ -0,0 +1,19 @@
#version 300 es
/*this will affect all the float guys (float, vecN, matN )*/
precision mediump float;
layout (location = 0) in vec3 vertPos; // Attributo Posizione
uniform mat4 Model;
uniform mat4 Projection;
uniform mat4 View;
out vec3 fragPos;
void main()
{
fragPos=(Model*vec4(vertPos,1)).xyz;
gl_Position=Projection*View*Model*vec4(vertPos,1);
}

View File

@@ -0,0 +1,47 @@
#version 300 es
/*this will affect all the float guys (float, vecN, matN )*/
precision mediump float;
layout (location = 0) in vec3 vertPos; // Attributo Posizione
layout (location = 1) in vec2 coord_uv; // Attributo texture
layout (location = 2) in vec3 vertNor;
layout (location = 3) in vec3 vertTan;
layout (location = 4) in vec3 vertBitan;
uniform mat4 Model;
uniform mat4 ModelRot;
uniform mat4 Projection;
uniform mat4 View;
uniform vec3 boundingBoxLBN;
uniform vec3 boundingBoxRTF;
out vec3 fragPos;
out vec2 frag_uv;
out vec3 fragNormal;
out vec3 fragBoundPos;
out vec3 fragBaryc;
out mat3 TBN;
void main()
{
frag_uv = coord_uv;
vec3 normal = normalize(vertNor);
vec3 T = normalize(vec3(ModelRot * vec4(vertTan, 0.0)));
vec3 B = normalize(vec3(ModelRot * vec4(vertBitan, 0.0)));
vec3 N = normalize(vec3(ModelRot * vec4(vertNor, 0.0)));
TBN = mat3(T, B, N);
vec3 boundPos = vertPos - boundingBoxLBN;
vec3 boundDim = boundingBoxRTF - boundingBoxLBN;
fragBoundPos = vec3( boundPos.x / boundDim.x, boundPos.y / boundDim.y, boundPos.z / boundDim.z);
fragNormal = mat3(ModelRot) * vec3(normal);
fragPos=(Model*vec4(vertPos,1)).xyz;
fragBoundPos=(Model*vec4(boundPos,1)).xyz;
gl_Position=Projection*View*Model*vec4(vertPos,1);
fragBaryc = vec3(gl_VertexID % 3 == 0, gl_VertexID % 3 == 1, gl_VertexID % 3 == 2);
}

BIN
resources/waito.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB