2013-01-10 3 views
0

3D 개체를로드하는 애플리케이션을 만들려고합니다.Rajawali - 모델 obj 오류의 텍스처로드

이 개체를로드 할 때 (http://rgcouto.net/alexandre/COKE/fineObj/) 모두 정상적으로 작동합니다. 스크린 샷 : 내가 믹서기에서 내 보낸 내 객체 (http://rgcouto.net/alexandre/COKE/myObj/를)로드하려고 할 때 http://rgcouto.net/alexandre/COKE/Screenshot_2013-01-10-15-04-42.png

하지만, 질감이 나타나지 않고 목적은 ... 어두운 스크린 샷 : 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

개체를 그리기 전에 텍스처를 바인딩합니까? 이미 여기에서 설명하는 것처럼 텍스처는 2의 거듭 제곱이어야합니다 많은 GPU에서

:

OpenGL, Shader Model 3.3 Texturing: Black Textures?

당신이 텍스처의 전력을 사용하지 않으면 효과는 발생한 일이다 , 검은 렌더링 된 질감.