ArrayList<GVRMaterial> makeMaterials(GVRContext ctx) { float[][] colors = new float[][] { { 1.0f, 0.0f, 0.0f, 0.8f }, { 0.0f, 1.0f, 0.0f, 0.8f }, { 0.0f, 0.0f, 1.0f, 0.8f }, { 1.0f, 0.0f, 1.0f, 0.8f }, { 1.0f, 1.0f, 0.0f, 0.8f }, { 0.0f, 1.0f, 1.0f, 0.8f } }; ArrayList<GVRMaterial> materials = new ArrayList<GVRMaterial>(); for (int i = 0; i < 6; ++i) { GVRMaterial mtl = new GVRMaterial(ctx, GVRMaterial.GVRShaderType.Phong.ID); mtl.setDiffuseColor(colors[i][0], colors[i][1], colors[i][2], colors[i][3]); materials.add(mtl); } return materials; }
@Override protected void gainedFocus() { getRenderData().getMaterial().setMainTexture(textures.get(HOVER)); }
private GVRMaterial createCustomMaterial(GVRContext context, String textureFile) throws IOException { GVRMaterial litMaterial = new GVRMaterial(context, GVRMaterial.GVRShaderType.Phong.ID); litMaterial.setVec4("diffuse_color", 1.0f, 1.0f, 1.0f, 1.0f); litMaterial.setVec4("ambient_color", 0.5f, 0.5f, 0.5f, 0.0f); litMaterial.setVec4("specular_color", 1.0f, 1.0f, 1.0f, 1.0f); litMaterial.setVec4("emissive_color", 0.0f, 0.0f, 0.0f, 0.0f); litMaterial.setFloat("specular_exponent", 10.0f); GVRTexture texture = context.getAssetLoader().loadTexture(new GVRAndroidResource(context, textureFile)); litMaterial.setTexture("diffuseTexture", texture); return litMaterial; }
@Override public boolean visit(GVRComponent comp) { GVRRenderData rd = (GVRRenderData) comp; GVRMaterial mtl = rd.getMaterial(); if (mtl.hasUniform("u_opacity")) { rd.getMaterial().setOpacity(0.0f); } else if (mtl.hasUniform("diffuse_color")) { float[] c = mtl.getDiffuseColor(); mtl.setDiffuseColor(c[0], c[1], c[2], 0.0f); } return true; } };
private GVRSceneObject addEnvironment() { mEnvTex = mGVRContext.getAssetLoader().loadCubemapTexture(new GVRAndroidResource(mGVRContext, R.raw.envmap)); GVRMaterial mtl = new GVRMaterial(mGVRContext, GVRMaterial.GVRShaderType.Cubemap.ID); mtl.setMainTexture(mEnvTex); GVRSceneObject env = new GVRCubeSceneObject(mGVRContext, false, mtl); env.getRenderData().disableLight(); env.getTransform().setScale(100, 100, 100); return env; }
public GVRSceneObject createBlurScene(GVRScene scene, GVRTexture texture) { final GVRSceneObject blurryQuad = new GVRSceneObject(mContext, 2.0f, 2.0f, texture, GVRMaterial.GVRShaderType.OES.ID); GVRCamera camera = scene.getMainCameraRig().getCenterCamera(); GVRMaterial horzBlurMtl = new GVRMaterial(mContext, new GVRShaderId(HorzBlurShader.class)); horzBlurMtl.setFloat("u_resolution", 1024.0f); camera.addPostEffect(horzBlurMtl); GVRMaterial vertBlurMtl = new GVRMaterial(mContext, new GVRShaderId(VertBlurShader.class)); vertBlurMtl.setFloat("u_resolution", 1024.0f); camera.addPostEffect(vertBlurMtl); blurryQuad.getTransform().setPositionZ(-0.1f); return blurryQuad; }
private GVRSceneObject getColorBoard(float width, float height) { GVRMaterial material = new GVRMaterial(mGVRContext, GVRMaterial.GVRShaderType.Color.ID); material.setVec4("u_color", UNPICKED_COLOR_R, UNPICKED_COLOR_G, UNPICKED_COLOR_B, UNPICKED_COLOR_A); GVRSceneObject board = new GVRSceneObject(mGVRContext, width, height); board.getRenderData().setMaterial(material); // material.setVec4("u_color", UNPICKED_COLOR_R, // UNPICKED_COLOR_G, UNPICKED_COLOR_B, UNPICKED_COLOR_A); return board; }
GVRMaterial outlineMaterial = new GVRMaterial(mGVRContext, outlineID); outlineMaterial.setVec4(OutlineShader.COLOR_KEY, 0.4f, 0.1725f, 0.1725f, 1.0f); outlineMaterial.setFloat(OutlineShader.THICKNESS_KEY, 2.0f); mGVRContext, mDiffuseTexturePath)); GVRMaterial material = new GVRMaterial(mGVRContext, GVRShaderType.Texture.ID); material.setMainTexture(texture);
private GVRMaterial getMaterial() { GVRMaterial material = new GVRMaterial(gvrContext, new GVRShaderId(SphereShader.class)); material.setTexture(SphereShader.TEXTURE_KEY, gvrContext.getAssetLoader().loadTexture(new GVRAndroidResource(gvrContext, mTexture))); material.setFloat("blur", 0); material.setFloat(SphereShader.ANIM_TEXTURE, 0.0f); material.setTexture(SphereShader.SECUNDARY_TEXTURE_KEY, gvrContext.getAssetLoader().loadTexture(new GVRAndroidResource(gvrContext, mResultTexture))); material.setVec3(SphereShader.TRANSITION_COLOR, 1, 1, 1); material.setVec3(SphereShader.EYE_KEY, 0, 0, 0); // Light config GVRTexture hdriTexture = gvrContext.getAssetLoader().loadTexture(new GVRAndroidResource(gvrContext, R.drawable.hdri_reflex)); material.setTexture(SphereShader.HDRI_TEXTURE_KEY, hdriTexture); return material; }
public static GVRSceneObject createGround(GVRContext context, float x, float y, float z) { GVRTexture texture = context.getAssetLoader().loadTexture(new GVRAndroidResource(context, R.drawable.orange)); GVRMaterial material = new GVRMaterial(context, GVRMaterial.GVRShaderType.Phong.ID); GVRSceneObject groundObject = new GVRCubeSceneObject(context, true, texture); groundObject.getRenderData().setMaterial(material); groundObject.getRenderData().getMaterial().setTexture("diffuseTexture", texture); groundObject.getRenderData().getMaterial().setMainTexture(texture); groundObject.getTransform().setScale(15.0f, 0.5f, 15.0f); groundObject.getTransform().setPosition(x, y, z); // Collider GVRMeshCollider meshCollider = new GVRMeshCollider(context, groundObject.getRenderData().getMesh()); groundObject.attachCollider(meshCollider); // Physics body GVRRigidBody body = new GVRRigidBody(context, 0.0f, COLLISION_GROUP_GROUND); body.setRestitution(0.5f); body.setFriction(1.0f); groundObject.attachComponent(body); return groundObject; }
private void createRenderData() { GVRMesh mesh = gvrContext.getAssetLoader().loadMesh(new GVRAndroidResource(gvrContext, R.raw.circle_menu)); GVRTexture texture = gvrContext.getAssetLoader().loadTexture(new GVRAndroidResource(gvrContext, R.drawable.circle_normal)); textures = AccessibilityTexture.getInstance(gvrContext); GVRMaterial material = new GVRMaterial(gvrContext); GVRRenderData renderData = new GVRRenderData(gvrContext); material.setMainTexture(texture); material.setColor(LOST_FOCUS_COLOR); renderData.setMaterial(material); renderData.setMesh(mesh); attachRenderData(renderData); }
private void applyShader(GVRSceneObject object) { if (object != null && object.getRenderData() != null && object.getRenderData().getMaterial() != null) { GVRMaterial shader = new GVRMaterial(gvrContext, new GVRShaderId(AccessibilitySceneShader.class)); GVRTexture texture = object.getRenderData().getMaterial().getMainTexture(); object.getRenderData().setMaterial(shader); object.getRenderData().getMaterial().setFloat(AccessibilitySceneShader.BLUR_INTENSITY, 1); object.getRenderData().getMaterial().setTexture(AccessibilitySceneShader.TEXTURE_KEY, texture); } }
private void createTeaPotObject() { try { //modelShader = new ModelShader(gvrContext); GVRMesh teapotMesh = gvrContext.getAssetLoader().loadMesh( new GVRAndroidResource(gvrContext, "teapot.obj")); GVRTexture teapotTexture = gvrContext.getAssetLoader().loadTexture( new GVRAndroidResource(gvrContext.getContext(), "teapot_tex1.jpg")); teapot = new GVRSceneObject(gvrContext, teapotMesh); GVRMaterial material = new GVRMaterial(gvrContext, new GVRShaderId(ModelShader.class)); material.setTexture(ModelShader.TEXTURE_KEY, teapotTexture); teapot.getRenderData().setMaterial(material); teapot.getRenderData().setDepthTest(false); teapot.getRenderData().setRenderingOrder(GVRRenderingOrder.OVERLAY); teapot.getRenderData().setCullFace(GVRRenderPass.GVRCullFaceEnum.None); } catch (IOException e) { e.printStackTrace(); } }
@Override public void onInit(GVRContext gvrContext) throws Throwable { mScene = gvrContext.getMainScene(); mCamera = mScene.getMainCameraRig(); mCamera.getTransform().setPosition(0.0f, 6.0f, 20f); mCursor = MainHelper.createGaze(gvrContext, 0.0f, 0.0f, 0.0f); mBallProto = new GVRSphereSceneObject(gvrContext, true, new GVRMaterial(gvrContext, GVRMaterial.GVRShaderType.Phong.ID)); initScene(gvrContext, mScene); initLabels(gvrContext, mScene); addPhysicsWorld(gvrContext, mScene); mScene.getEventReceiver().addListener(this); gvrContext.getInputManager().selectController(mControllerSelector); }
public GVRSceneObject createSceneObject(int idleImageRes, int hoverImageRes) { GVRSceneObject obj = new GVRSceneObject(getGVRContext()); GVRTexture idle = getGVRContext().getAssetLoader().loadTexture(new GVRAndroidResource(getGVRContext(), idleImageRes)); GVRTexture hover = getGVRContext().getAssetLoader().loadTexture(new GVRAndroidResource(getGVRContext(), hoverImageRes)); obj.attachRenderData(new GVRRenderData(getGVRContext())); obj.getRenderData().setMaterial(new GVRMaterial(getGVRContext(), new GVRShaderId(MenuImageShader.class))); obj.getRenderData().setMesh(getGVRContext().createQuad(CHILD_WIDTH, CHILD_HEIGHT)); obj.getRenderData().getMaterial().setTexture(MenuImageShader.STATE1_TEXTURE, idle); obj.getRenderData().getMaterial().setTexture(MenuImageShader.STATE2_TEXTURE, hover); obj.getRenderData().getMaterial().setFloat(MenuImageShader.TEXTURE_SWITCH, IDLE_STATE); addChildObject(obj); return obj; }
ArrayList<GVRRenderData> renderDatas = currentDisplayedModel.getModel(context) .getAllComponents(GVRRenderData.getComponentType()); GVRMaterial outlineMaterial = new GVRMaterial(context, new GVRShaderId(OutlineShader.class)); case 1: for (GVRRenderData rdata : renderDatas) { GVRMaterial noMaterial = new GVRMaterial(context, new GVRShaderId(NoTextureShader.class)); rdata.setMaterial(noMaterial); rdata.setDrawMode(4); outlineMaterial.setVec4(OutlineShader.COLOR_KEY, 0.4f, 0.1725f, 0.1725f, 1.0f); outlineMaterial.setFloat(OutlineShader.THICKNESS_KEY, 2.0f); for (GVRRenderData rdata : renderDatas) { rdata.setMaterial(outlineMaterial);
private void addCustomMovableCube(GVRContext gvrContext) { GVRSceneObject root = new GVRSceneObject(gvrContext); GVRMaterial red = new GVRMaterial(gvrContext, new GVRShaderId(GVRPhongShader.class)); GVRMaterial blue = new GVRMaterial(gvrContext, new GVRShaderId(GVRPhongShader.class)); GVRMaterial green = new GVRMaterial(gvrContext, new GVRShaderId(GVRPhongShader.class)); GVRMaterial alphaRed = new GVRMaterial(gvrContext, new GVRShaderId(GVRPhongShader.class)); red.setDiffuseColor(1, 0, 0, 1); blue.setDiffuseColor(0, 0, 1, 1); green.setDiffuseColor(0, 1, 0, 1); alphaRed.setDiffuseColor(1, 0, 0, 0.5f); cubeBehind.getRenderData().getMaterial().setOpacity(0.5f); cubeBehind.getRenderData().setRenderingOrder(GVRRenderingOrder.TRANSPARENT); root.addChildObject(cubeBehind);
2.5f, -1, Z, 2.5f, 0, Z, 1.5f, 0, Z, 1.5f, 1, Z, 1.5f, -1, Z}; GVRMaterial redMaterial = new GVRMaterial(gvrContext, GVRMaterial.GVRShaderType.Phong.ID); GVRMaterial blueMaterial = new GVRMaterial(gvrContext, GVRMaterial.GVRShaderType.Phong.ID); GVRMesh mesh = new GVRMesh(gvrContext); GVRRenderData rd = new GVRRenderData(gvrContext); redMaterial.setDiffuseColor(1, 0, 0, 1); redMaterial.setLineWidth(4.0f); blueMaterial.setDiffuseColor(0, 0, 1, 0.5f); blueMaterial.setLineWidth(8.0f);
private GVRSceneObject getColorMesh(float scale, GVRMesh mesh) { GVRMaterial material = new GVRMaterial(getGVRContext(), GVRMaterial.GVRShaderType.Color.ID); material.setColor(1.0f, 0.0f, 1.0f); GVRSceneObject meshObject = new GVRSceneObject(getGVRContext(), mesh); meshObject.getTransform().setScale(scale, scale, scale); meshObject.getRenderData().setMaterial(material); return meshObject; } }
@Override protected void gainedFocus() { if (!select) { getRenderData().getMaterial().setFloat(ButtonShader.TEXTURE_SWITCH, HOVER_STATE); } }