2013-01-10 77 views
0

我試圖做一個加載3d對象的應用程序。Rajawali - 從模型obj加載紋理錯誤

當我加載這個對象(http://rgcouto.net/alexandre/COKE/fineObj/)時,一切正常。 截圖:http://rgcouto.net/alexandre/COKE/Screenshot_2013-01-10-15-04-42.png

但是當我嘗試加載我的對象(http://rgcouto.net/alexandre/COKE/myObj/),從攪拌機出口,質地不會出現,對象是暗.. 屏幕截圖:http://rgcouto.net/alexandre/COKE/Screenshot_2013-01-10-15-02-27.png

我做錯了什麼? 我必須做些什麼才能使我的物體具有質感?

我交融文件:http://rgcouto.net/alexandre/COKE/blend/

我的渲​​染器:

public class ObjRenderer extends RajawaliRenderer { 
    private static final String TAG = "renderer"; 
    private BaseObject3D mObjectGroup; 
    Number3D mAccValues; 

    public ObjRenderer(Context context) { 
     super(context); 
     setFrameRate(60); 
     mAccValues = new Number3D(); 

} 

protected void initScene() { 

    // mLight = new DirectionalLight(1, -1, 1); 
    // mLight.setPower(.9f); 
    DirectionalLight light = new DirectionalLight(0, 0, 1); 
    light.setPower(1); 

    // light.setPosition(0, 20, -20); 
    // light.setLookAt(0, 0, 0); 

    mCamera.setPosition(0, 0, -14); 
    mCamera.setLookAt(0, 0, 0); 

    ObjParser objParser = new ObjParser(mContext.getResources(), 
      mTextureManager, R.raw.camaro_obj); 
    objParser.parse(); 
    mObjectGroup = objParser.getParsedObject(); 
    Log.d(TAG, "carreguei"); 
    DiffuseMaterial material = new DiffuseMaterial(); 
    material.setUseColor(true); 
    mObjectGroup.setMaterial(material); 
    mObjectGroup.addLight(light); 

    // mObjectGroup.setScale(3); 
    addChild(mObjectGroup); 

    // mCameraAnim = new RotateAnimation3D(Axis.Y, 360); 
    // mCameraAnim.setDuration(8000); 
    // mCameraAnim.setRepeatCount(Animation3D.INFINITE); 
    // mCameraAnim.setTransformable3D(mObjectGroup); 
} 

public void onSurfaceCreated(GL10 gl, EGLConfig config) { 
    super.onSurfaceCreated(gl, config); 
    // mCameraAnim.start(); 
} 

public void onDrawFrame(GL10 glUnused) { 
    super.onDrawFrame(glUnused); 
    mObjectGroup.setRotY(mObjectGroup.getRotY() + 1); 
    // mObjectGroup.setRotation(mAccValues.y, mAccValues.x, mAccValues.z); 
}} 

問候 亞歷

回答

1

在繪製對象之前綁定紋理嗎?

在許多GPU的紋理必須是2的冪,因爲我已經解釋過這裏:

OpenGL, Shader Model 3.3 Texturing: Black Textures?

,如果你不使用2質感的功率的效果是你所遇到的一個,黑色呈現的紋理。