3

私は拡張現実のように Android の初心者であり、AR でいくつかの問題に直面しています。

私は AndAR の例を使用しています。この例では、マーカーに単純なキューブ ボックスが表示されます。

しかし、ビルド キューブではなく、自分のマーカーで自分のイメージを使用したいと考えています。

そして、マーカーごとに異なる画像を使用したいと考えています。

これは私のコードです:-キューブが生成される場所。

public class CustomObject extends ARObject {


public CustomObject(String name, String patternName,
        double markerWidth, double[] markerCenter) {
    super(name, patternName, markerWidth, markerCenter);
    float   mat_ambientf[]     = {0f, 1.0f, 0f, 1.0f};
    float   mat_flashf[]       = {0f, 1.0f, 0f, 1.0f};
    float   mat_diffusef[]       = {0f, 1.0f, 0f, 1.0f};
    float   mat_flash_shinyf[] = {50.0f};

    mat_ambient = GraphicsUtil.makeFloatBuffer(mat_ambientf);
    mat_flash = GraphicsUtil.makeFloatBuffer(mat_flashf);
    mat_flash_shiny = GraphicsUtil.makeFloatBuffer(mat_flash_shinyf);
    mat_diffuse = GraphicsUtil.makeFloatBuffer(mat_diffusef);

}
public CustomObject(String name, String patternName,
        double markerWidth, double[] markerCenter, float[] customColor) {
    super(name, patternName, markerWidth, markerCenter);
    float   mat_flash_shinyf[] = {50.0f};

    mat_ambient = GraphicsUtil.makeFloatBuffer(customColor);
    mat_flash = GraphicsUtil.makeFloatBuffer(customColor);
    mat_flash_shiny = GraphicsUtil.makeFloatBuffer(mat_flash_shinyf);
    mat_diffuse = GraphicsUtil.makeFloatBuffer(customColor);

}

private SimpleBox box = new SimpleBox();
private FloatBuffer mat_flash;
private FloatBuffer mat_ambient;
private FloatBuffer mat_flash_shiny;
private FloatBuffer mat_diffuse;

/**
 * Everything drawn here will be drawn directly onto the marker,
 * as the corresponding translation matrix will already be applied.
 */
@Override
public final void draw(GL10 gl) {
    super.draw(gl);

    gl.glMaterialfv(GL10.GL_FRONT_AND_BACK, GL10.GL_SPECULAR,mat_flash);
    gl.glMaterialfv(GL10.GL_FRONT_AND_BACK, GL10.GL_SHININESS, mat_flash_shiny);    
    gl.glMaterialfv(GL10.GL_FRONT_AND_BACK, GL10.GL_DIFFUSE, mat_diffuse);  
    gl.glMaterialfv(GL10.GL_FRONT_AND_BACK, GL10.GL_AMBIENT, mat_ambient);

    //draw cube
    gl.glColor4f(0, 1.0f, 0, 1.0f);
    gl.glTranslatef( 0.0f, 0.0f, 12.5f );


    box.draw(gl);
}
@Override
public void init(GL10 gl) {
    // TODO Auto-generated method stub

}

この問題を克服するために私を助けてください。

ありがとう。

4

1 に答える 1