@Override protected void setShaderParams(Camera camera) { super.setShaderParams(camera); if (mParticleShader == null) { RajLog.e("[" + getClass().getName() + "] You need to set a particle material first."); throw new RuntimeException("You need to set a particle material first."); } mParticleShader.setCameraPosition(camera.getPosition()); mParticleShader.setPointSize(mPointSize); }
@Override protected void parse(InputStream is) throws ParsingException { BufferedReader buffer = new BufferedReader(new InputStreamReader(is)); String line; try { while ((line = buffer.readLine()) != null) { String repl = line.replaceAll(REGEX_CLEAN, REPLACE_EMPTY); if (repl.length() == 0 || repl.charAt(0) == COMMENT) continue; readLine(buffer, line); } buffer.close(); } catch (Exception e) { throw new ParsingException(e); } // -- get lights Stack<Model> lights = mFbx.objects.getModelsByType(FBXValues.MODELTYPE_LIGHT); int numLights = lights.size(); RajawaliRenderer.setMaxLights(numLights == 0 ? 1 : numLights); Stack<ALight> sceneLights = new Stack<ALight>(); for (int i = 0; i < numLights; ++i) { Model l = lights.get(i); // -- really need to add more light types sceneLights.add(buildLight(l)); } if (numLights == 0) { ALight light = new DirectionalLight(); light.setPosition(2, 0, -5); light.setPower(1); sceneLights.add(light); } // -- check fog // TODO: add fog support /* * if(mFbx.version5.fogOptions.fogEnable != null && mFbx.version5.fogOptions.fogEnable == 1) { FogOptions * fogOptions = mFbx.version5.fogOptions; mRenderer.setFogEnabled(true); Camera cam = mRenderer.getCamera(); * cam.setFogEnabled(true); cam.setFogNear(fogOptions.fogStart); cam.setFogColor(fogOptions.fogColor.color); * mRenderer.setBackgroundColor(fogOptions.fogColor.color); } */ // -- get meshes Stack<Model> models = mFbx.objects.getModelsByType(FBXValues.MODELTYPE_MESH); try { for (int i = 0; i < models.size(); ++i) { buildMesh(models.get(i), sceneLights); } } catch (TextureException tme) { throw new ParsingException(tme); } // -- get cameras Stack<Model> cameras = mFbx.objects.getModelsByType(FBXValues.MODELTYPE_CAMERA); Model camera = null; for (int i = 0; i < cameras.size(); ++i) { if (cameras.get(i).hidden == null || !cameras.get(i).hidden.equals("True")) { camera = cameras.get(i); break; } } if (camera != null) { // TODO: FIX Camera cam = mRenderer.getCurrentCamera(); cam.setPosition(camera.position); cam.setX(mRenderer.getCurrentCamera().getX() * -1); cam.setRotation(camera.properties.lclRotation); Vector3 lookAt = camera.lookAt; // lookAt.x = -lookAt.x; cam.setLookAt(lookAt); cam.setNearPlane(camera.properties.nearPlane); cam.setFarPlane(camera.properties.farPlane); cam.setFieldOfView(camera.properties.fieldOfView); } }