Skip to content

Commit ef54b82

Browse files
authored
Merge pull request #488 from SyamSundarKirubakaran/gsoc_ar
[ENHANCEMENT] AR Library for Processing Android
2 parents e16778b + b73dac2 commit ef54b82

File tree

82 files changed

+4580
-19
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

82 files changed

+4580
-19
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ mode/processing-core.zip
22
mode/mode/*.jar
33

44
mode/libraries/vr/library
5+
mode/libraries/ar/library
56
mode/tools/SDKUpdated/tool
67

78
studio/.gradle

build.gradle

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ allprojects {
2727
ext.supportLibsVersion = '26.0.2'
2828
ext.wearVersion = '2.1.0'
2929
ext.gvrVersion = '1.150.0'
30+
ext.garVersion = '1.2.0'
3031
ext.processingVersion = '3.3.7'
3132
ext.toolingVersion = '4.3'
3233
ext.slf4jVersion = '1.7.10'
@@ -41,6 +42,10 @@ allprojects {
4142
vrProperties.load(project.rootProject.file("mode/libraries/vr/library.properties").newDataInputStream())
4243
ext.vrLibVersion = vrProperties.getProperty("prettyVersion")
4344

45+
Properties arProperties = new Properties()
46+
arProperties.load(project.rootProject.file("mode/libraries/ar/library.properties").newDataInputStream())
47+
ext.arLibVersion = vrProperties.getProperty("prettyVersion")
48+
4449

4550
def fn = project.rootProject.file("local.properties")
4651
if (!fn.exists()) {
@@ -115,7 +120,16 @@ task dist {
115120
FileUtils.copyDirectory(file("mode/libraries/vr/src"),
116121
file("${root}/libraries/vr/src"))
117122
Files.copy(file("mode/libraries/vr/library.properties").toPath(),
118-
file("${root}/libraries/vr/library.properties").toPath(), REPLACE_EXISTING);
123+
file("${root}/libraries/vr/library.properties").toPath(), REPLACE_EXISTING);
124+
125+
FileUtils.copyDirectory(file("mode/libraries/ar/examples"),
126+
file("${root}/libraries/ar/examples"))
127+
FileUtils.copyDirectory(file("mode/libraries/ar/library"),
128+
file("${root}/libraries/ar/library"))
129+
FileUtils.copyDirectory(file("mode/libraries/ar/src"),
130+
file("${root}/libraries/ar/src"))
131+
Files.copy(file("mode/libraries/ar/library.properties").toPath(),
132+
file("${root}/libraries/ar/library.properties").toPath(), REPLACE_EXISTING);
119133

120134
File distFolder = file("dist");
121135
distFolder.mkdirs();

core/src/assets/grid.png

73.4 KB
Loading
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
precision mediump float;
2+
3+
uniform sampler2D u_Texture;
4+
5+
uniform vec4 u_LightingParameters;
6+
uniform vec4 u_MaterialParameters;
7+
8+
varying vec3 v_ViewPosition;
9+
varying vec3 v_ViewNormal;
10+
varying vec2 v_TexCoord;
11+
12+
void main() {
13+
const float kGamma = 0.4545454;
14+
const float kInverseGamma = 2.2;
15+
vec3 viewLightDirection = u_LightingParameters.xyz;
16+
float lightIntensity = u_LightingParameters.w;
17+
float materialAmbient = u_MaterialParameters.x;
18+
float materialDiffuse = u_MaterialParameters.y;
19+
float materialSpecular = u_MaterialParameters.z;
20+
float materialSpecularPower = u_MaterialParameters.w;
21+
vec3 viewFragmentDirection = normalize(v_ViewPosition);
22+
vec3 viewNormal = normalize(v_ViewNormal);
23+
vec4 objectColor = texture2D(u_Texture, vec2(v_TexCoord.x, 1.0 - v_TexCoord.y));
24+
objectColor.rgb = pow(objectColor.rgb, vec3(kInverseGamma));
25+
float ambient = materialAmbient;
26+
float diffuse = lightIntensity * materialDiffuse *
27+
0.5 * (dot(viewNormal, viewLightDirection) + 1.0);
28+
vec3 reflectedLightDirection = reflect(viewLightDirection, viewNormal);
29+
float specularStrength = max(0.0, dot(viewFragmentDirection, reflectedLightDirection));
30+
float specular = lightIntensity * materialSpecular *
31+
pow(specularStrength, materialSpecularPower);
32+
gl_FragColor.a = objectColor.a;
33+
gl_FragColor.rgb = pow(objectColor.rgb * (ambient + diffuse) + specular, vec3(kGamma));
34+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
uniform mat4 u_ModelView;
2+
uniform mat4 u_ModelViewProjection;
3+
4+
attribute vec4 a_Position;
5+
attribute vec3 a_Normal;
6+
attribute vec2 a_TexCoord;
7+
8+
varying vec3 v_ViewPosition;
9+
varying vec3 v_ViewNormal;
10+
varying vec2 v_TexCoord;
11+
12+
void main() {
13+
v_ViewPosition = (u_ModelView * a_Position).xyz;
14+
v_ViewNormal = normalize((u_ModelView * vec4(a_Normal, 0.0)).xyz);
15+
v_TexCoord = a_TexCoord;
16+
gl_Position = u_ModelViewProjection * a_Position;
17+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
precision highp float;
2+
uniform sampler2D u_Texture;
3+
uniform vec4 u_dotColor;
4+
uniform vec4 u_lineColor;
5+
uniform vec4 u_gridControl;
6+
varying vec3 v_TexCoordAlpha;
7+
8+
void main() {
9+
vec4 control = texture2D(u_Texture, v_TexCoordAlpha.xy);
10+
float dotScale = v_TexCoordAlpha.z;
11+
float lineFade = max(0.0, u_gridControl.z * v_TexCoordAlpha.z - (u_gridControl.z - 1.0));
12+
vec3 color = (control.r * dotScale > u_gridControl.x) ? u_dotColor.rgb
13+
: (control.g > u_gridControl.y) ? u_lineColor.rgb * lineFade
14+
: (u_lineColor.rgb * 0.25 * lineFade) ;
15+
gl_FragColor = vec4(color, v_TexCoordAlpha.z * u_gridControl.w);
16+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
uniform mat4 u_Model;
2+
uniform mat4 u_ModelViewProjection;
3+
uniform mat2 u_PlaneUvMatrix;
4+
5+
attribute vec3 a_XZPositionAlpha;
6+
7+
varying vec3 v_TexCoordAlpha;
8+
9+
void main() {
10+
vec4 position = vec4(a_XZPositionAlpha.x, 0.0, a_XZPositionAlpha.y, 1.0);
11+
v_TexCoordAlpha = vec3(u_PlaneUvMatrix * (u_Model * position).xz, a_XZPositionAlpha.z);
12+
gl_Position = u_ModelViewProjection * position;
13+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
precision mediump float;
2+
varying vec4 v_Color;
3+
4+
void main() {
5+
gl_FragColor = v_Color;
6+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
uniform mat4 u_ModelViewProjection;
2+
uniform vec4 u_Color;
3+
uniform float u_PointSize;
4+
5+
attribute vec4 a_Position;
6+
7+
varying vec4 v_Color;
8+
9+
void main() {
10+
v_Color = u_Color;
11+
gl_Position = u_ModelViewProjection * vec4(a_Position.xyz, 1.0);
12+
gl_PointSize = u_PointSize;
13+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#extension GL_OES_EGL_image_external : require
2+
3+
precision mediump float;
4+
varying vec2 v_TexCoord;
5+
uniform samplerExternalOES sTexture;
6+
7+
8+
void main() {
9+
gl_FragColor = texture2D(sTexture, v_TexCoord);
10+
}

0 commit comments

Comments
 (0)