diff options
author | John Hoford <hoford@google.com> | 2015-02-28 01:10:50 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2015-02-28 01:10:50 +0000 |
commit | 72632a9113398547891f33d40c941e95ee72f179 (patch) | |
tree | faa78362257469f5856e16ce46c5fae0147a7dc0 /java/tests | |
parent | d2b14a75e1eb9eeadb94ef919fbba93e2e3a0624 (diff) | |
parent | 63060734ef7f8f8a3980178174decdd27e1d7f03 (diff) | |
download | rs-72632a9113398547891f33d40c941e95ee72f179.tar.gz |
am 63060734: am 97b5ebf6: am 640279e7: Merge "add better support for landscape mode + minor cleanups"
* commit '63060734ef7f8f8a3980178174decdd27e1d7f03':
add better support for landscape mode + minor cleanups
Diffstat (limited to 'java/tests')
4 files changed, 44 insertions, 47 deletions
diff --git a/java/tests/VrDemo/res/layout-land/activity_vr.xml b/java/tests/VrDemo/res/layout-land/activity_vr.xml index 3ab5662f..67039238 100644 --- a/java/tests/VrDemo/res/layout-land/activity_vr.xml +++ b/java/tests/VrDemo/res/layout-land/activity_vr.xml @@ -23,34 +23,36 @@ android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".VrActivity"> <view - android:layout_width="0dp" android:layout_height="match_parent" + android:layout_width="0dp" class="com.example.android.rs.vr.VrView" android:id="@+id/view" android:layout_weight="1"/> <LinearLayout - android:layout_width="match_parent" - android:layout_height="wrap_content" + android:layout_width="wrap_content" + android:layout_height="match_parent" android:orientation="vertical"> - <LinearLayout - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:orientation="horizontal"> <TextView android:id="@+id/title" android:text="@string/volume_name" - android:layout_width="0dp" - android:layout_height="match_parent" + android:layout_width="match_parent" + android:layout_height="wrap_content" android:layout_weight="1.0" android:gravity="center" /> - </LinearLayout> + + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:orientation="horizontal" + android:layout_weight="1.0" + > <LinearLayout - android:layout_width="match_parent" - android:layout_height="match_parent" - android:orientation="horizontal"> + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:orientation="vertical"> <ToggleButton android:layout_width="wrap_content" @@ -106,6 +108,6 @@ android:text="@string/save" android:onClick="saveClick" /> </LinearLayout> - + </LinearLayout> </LinearLayout> </LinearLayout> diff --git a/java/tests/VrDemo/src/com/example/android/rs/vr/VrActivity.java b/java/tests/VrDemo/src/com/example/android/rs/vr/VrActivity.java index aa64d2ac..4fe8f8e2 100644 --- a/java/tests/VrDemo/src/com/example/android/rs/vr/VrActivity.java +++ b/java/tests/VrDemo/src/com/example/android/rs/vr/VrActivity.java @@ -18,6 +18,8 @@ package com.example.android.rs.vr; import android.app.Activity; import android.app.ProgressDialog; +import android.content.pm.ActivityInfo; +import android.content.res.Configuration; import android.os.AsyncTask; import android.os.Bundle; import android.renderscript.RenderScript; @@ -103,6 +105,11 @@ public class VrActivity extends Activity { Log.v(LOGTAG,"done"); mVrView.setVolume(mRs, v); progressDialog.dismiss(); + if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { + setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); + } else { + setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); + } } } diff --git a/java/tests/VrDemo/src/com/example/android/rs/vr/engine/vr.rs b/java/tests/VrDemo/src/com/example/android/rs/vr/engine/vr.rs index 997bb102..43fb794c 100644 --- a/java/tests/VrDemo/src/com/example/android/rs/vr/engine/vr.rs +++ b/java/tests/VrDemo/src/com/example/android/rs/vr/engine/vr.rs @@ -19,7 +19,7 @@ #pragma rs_fp_relaxed
#define FLOAT_MAX 3.4028234E30f
-#define JITTER_LENGTH 3456
+#define JITTER_LENGTH 3457
float jitter[JITTER_LENGTH];
float3 s;
@@ -31,6 +31,7 @@ rs_matrix4x4 matrix4; rs_matrix3x3 matrix3;
uchar4 base_color;
static float3 mLight;
+static float rscale;
// material color
rs_allocation opacity;
@@ -38,7 +39,7 @@ rs_allocation color_map; static void fillJitter() {
for (int i = 0; i < JITTER_LENGTH; i++) {
- jitter[i] = rsRand(1.0f);
+ jitter[i] = (rsRand(rscale)+rsRand(rscale)+rsRand(rscale))/3;
}
}
@@ -53,28 +54,15 @@ void setup_vectors() { base_color.g = 0;
base_color.b = 0;
base_color.a = 255;
- fillJitter();
- float3 mLightRelitvePos = (float3) {0, 0.7071f, -0.7071f}; // light relitve to camera
+
+ float3 mLightRelitvePos = (float3) {0.f, 0.7071f, -0.7071f}; // light relitve to camera
mLight = mLightRelitvePos.x + dx + mLightRelitvePos.y * dy + mLightRelitvePos.z * dz;
mLight = normalize(mLight);
+ rscale = 1.5f/length(dz);
+ fillJitter();
}
-// old simple version
-static float triLinear_old(short v_0_0_0, short v_0_0_1, short v_0_1_0, short v_0_1_1,
- short v_1_0_0, short v_1_0_1, short v_1_1_0, short v_1_1_1,
- float3 delta) {
- float v_0_0 = v_0_0_0 + delta.x * (v_0_0_1 - v_0_0_0);
- float v_0_1 = v_0_1_0 + delta.x * (v_0_1_1 - v_0_1_0);
- float v_1_0 = v_1_0_0 + delta.x * (v_1_0_1 - v_1_0_0);
- float v_1_1 = v_1_1_0 + delta.x * (v_1_1_1 - v_1_1_0);
- float v_0 = v_0_0 + delta.y * (v_0_1 - v_0_0);
- float v_1 = v_1_0 + delta.y * (v_1_1 - v_1_0);
- float v = v_0 + delta.z * (v_1 - v_0);
- return v;
-}
-
-// This seemed to improve over above
-static float triLinear(float v_0_0_0, float v_0_0_1, float v_0_1_0, short v_0_1_1,
+static float triLinear(float v_0_0_0, float v_0_0_1, float v_0_1_0, float v_0_1_1,
float v_1_0_0, float v_1_0_1, float v_1_1_0, float v_1_1_1,
float3 delta) {
float v_0_0 = mix(v_0_0_0, v_0_0_1, delta.x);
@@ -173,14 +161,14 @@ uchar4 __attribute__ ((kernel)) draw_z_buffer(float2 in, uint32_t x, uint32_t y) float sdx = rsGetElementAt_float2(zbuff, max(0, (int) x - 1), y).x - in.x;
float sdy = rsGetElementAt_float2(zbuff, x, max(0, (int) y - 1)).x - in.x;
float dot_prod = sqrt(1 / (1 + (sdy * sdy + sdx * sdx) * zoomFactor));
- float opf = op / 255.f;
+ float opf = op * (1/255.f);
uchar4 color = rsGetElementAt_uchar4(color_map, intensity * 2);
uchar4 mat = rsGetElementAt_uchar4(color_map, intensity * 2 + 1);
float4 fcolor = convert_float4(color);;
- float ambient = mat.x / 255.f;
- float specular = mat.y / 255.f;
- float diffuse = mat.z / 255.f;
+ float ambient = mat.x * (1/255.f);
+ float specular = mat.y * (1/255.f);
+ float diffuse = mat.z * (1/255.f);
float lop = (ambient + diffuse * dot_prod) * light * opf;
light -= opf;
total_color += fcolor * lop;
@@ -189,7 +177,7 @@ uchar4 __attribute__ ((kernel)) draw_z_buffer(float2 in, uint32_t x, uint32_t y) }
}
}
- p += dz * rsRand(2.f);
+ p += dz * jitter[(x+(y<<11))%JITTER_LENGTH];
if (light > 0) {
for (int k = 0; k < izlen - 1; k++) {
@@ -281,9 +269,9 @@ uchar4 __attribute__ ((kernel)) draw_z_buffer(float2 in, uint32_t x, uint32_t y) // Eye point in this space is in the direction (0,0,-1)
// Spec * Math.pow(R_z , P) lets use power == 2 (cheap)
- float ambient = mat.x / 255.f; // ambient
- float specular = mat.y / 255.f; // specular not used right now
- float diffuse = mat.z / 255.f; // diffuse
+ float ambient = mat.x * (1/255.f); // ambient
+ float specular = mat.y * (1/255.f); // specular not used right now
+ float diffuse = mat.z * (1/255.f);// diffuse
float lop = (ambient + diffuse * dot_prod + specular * pow(spec, 10)) * light * opf;
light -= opf;
total_color += fcolor * lop;
diff --git a/java/tests/VrDemo/src/com/example/android/rs/vr/loaders/Mandelbulb.java b/java/tests/VrDemo/src/com/example/android/rs/vr/loaders/Mandelbulb.java index 7d058914..9b160396 100644 --- a/java/tests/VrDemo/src/com/example/android/rs/vr/loaders/Mandelbulb.java +++ b/java/tests/VrDemo/src/com/example/android/rs/vr/loaders/Mandelbulb.java @@ -31,13 +31,13 @@ import com.example.android.rs.vr.engine.Volume; public class Mandelbulb { private static final String LOGTAG = "RawLoader"; private static final String simpleLook = "simple"; - private static final int[][] simpleOpacity = {{120, 0x0}, {126, 0xFF}}; + private static final int[][] simpleOpacity = {{120, 0x0}, {140, 0xFF}}; private static final int[][] simpleColor = { - {200, 0x44AA44, 30, 70, 0}, - {230, 0xAA44AA, 30, 70, 0}, - {255, 0xAAAAAA, 30, 70, 0}}; + {200, 0x44AA44, 70, 30, 0}, + {230, 0xAA44AA, 70, 30, 0}, + {255, 0xAAAAAA, 70, 30, 0}}; - private static final int SIZE = 512; + private static final int SIZE = 256; public static final String NAME = "A Mandelbulb"; public static Volume buildRSVolume(RenderScript rs, |