0

meine Klasse erweitert Renderer(org.rajawali3d.renderer.Renderer)Fixtext auf Rückansicht Object3D Spiegelung

in der Klasse Nach Funktion von Aktivität aufgerufen wird:

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; 
} 

Ich brauche den Faktor object3D.setDoubleSided(true);, was in Ordnung arbeitet.

Der Text ist korrekt, wenn man ihn von der Vorderseite betrachtet, aber wenn das Objekt von der Rückseite gesehen wird, spiegelt sich der Text natürlich.

Es folgt ein Kinderspiel:

Mirrored text observed from rear view

Wie kann der Text korrigiert werden, da es von beiden Vorder- und Rückansicht lesbar sein sollte? Irgendwelche Artikel, um Textspiegelung zu beheben?

Antwort

0

Ich fand es heraus, object3D.setDoubleSided(false) erstellt ein doppeltes Objekt und drehte es um 180 Y-Achse. Es hat jetzt gut funktioniert.

Bearbeiten: Die gedrehte Seite zeigt dunkel dann das Original. Steigende Alpha funktioniert nicht. Kann jemand weiter führen?