0
的后视镜像

我的类扩展Renderer(org.rajawali3d.renderer.Renderer)修正文本上Object3D

继类函数从活动叫做:

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

我需要的因素object3D.setDoubleSided(true);,这是工作的罚款。

从前视图中看到的文字是正确的,但是当从背面看到对象时,文本自然会反映出来。

下面是一个单元:

Mirrored text observed from rear view

如何文本进行修正,因为它应该是从前后看法可读?任何文章来解决文本镜像?

回答

0

我想通了,object3D.setDoubleSided(false)创建了一个重复的对象,并在y轴处将其旋转180度。现在它运行良好。

编辑:旋转的一面显示黑暗,然后原来。增加阿尔法不工作。任何人都可以引导进一步?