0

ma classe étend Renderer(org.rajawali3d.renderer.Renderer)texte Fix miroir sur la vue arrière de Object3D

Après fonction de la classe est appelée à partir de l'activité:

public void makeText(float[] openGLPpoint, int color, String text,float depth) 
{ 
double adjust_angle_o = 0; 
Material mSphereMaterial = new Material(); 
Bitmap bitmap= setTextInImage(text); 
Texture t = new Texture("text",bitmap); 
mSphereMaterial.addTexture(t); 
Object3D object3D = new Plane(0.3f,0.1f,100,100); 
    object3D.setMaterial(mSphereMaterial); 
    object3D.setDoubleSided(true); 
    object3D.setColor(color); 
    if(!depth >= 1) 
    { 
     adjust_angle_o = 0.2; 
    } 
    object3D.setPosition(openGLPpoint[0], 
      openGLPpoint[1], 
      openGLPpoint[2]-adjust_angle_o); 
    getCurrentScene().addChild(object3D); 
} 


public Bitmap setTextInImage(String text){ 
    Bitmap src = 
      BitmapFactory.decodeResource(mContext.getResources(),R.drawable.label_bg_sm); 
    Bitmap dest = 
      Bitmap.createBitmap(src.getWidth(), 
        src.getHeight(), 
        Bitmap.Config.ARGB_8888); 

    Canvas cs = new Canvas(dest); 
    Paint tPaint = new Paint(); 
    tPaint.setTextSize(50 * mContext.getResources().getDisplayMetrics().density); 
    tPaint.setColor(Color.GREEN); 
    tPaint.setStyle(Paint.Style.FILL_AND_STROKE); 
    tPaint.setFakeBoldText(true); 
    cs.drawBitmap(src, 0f, 0f, null); 
    float height = tPaint.measureText("yY"); 
    float width_o = tPaint.measureText(text+" m"); 
    float x_coord = (src.getWidth() - width_o)/2; 

    // 15f is to put space between top edge and the text 

    cs.drawText(text+" m", x_coord, height+15f, tPaint); 
    return dest; 
} 

J'ai besoin du facteur object3D.setDoubleSided(true);, ce qui fonctionne très bien.

Le texte est correct vu de face mais lorsque l'objet est vu de l'arrière, le texte reflète naturellement.

Ce qui suit est un jeu d'enfant:

Mirrored text observed from rear view

Comment corriger le texte, car il doit être lisible à la fois vues avant et arrière? Des articles pour corriger le mirroring de texte?

Répondre

0

Je l'ai compris, object3D.setDoubleSided(false) créé un objet en double et l'a fait pivoter 180 à l'axe y. Cela a bien fonctionné maintenant.

Éditer: Le côté tourné montre sombre, puis l'original. L'alpha croissante ne fonctionne pas. Quelqu'un peut-il guider plus loin?