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?