我正在尝试创建一个加载3d对象的应用程序。
当我加载这个对象(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/),从blender导出,纹理不出现,对象是黑色的。截图: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);
}}向Alex致敬
发布于 2013-01-22 01:09:41
您必须为您的材质/对象添加颜色或纹理。查看此处:http://www.rozengain.com/blog/2011/12/05/rajawali-tutorial-3-materials/
要告诉你更多,我得看看OBJ的文本。
干杯
发布于 2013-01-22 16:38:07
在绘制对象之前绑定纹理吗?
在许多GPU上,纹理必须是2的幂,我已经在这里解释过了:
OpenGL, Shader Model 3.3 Texturing: Black Textures?
如果你不使用2的幂纹理,效果就是你正在体验的,一个黑色的渲染纹理。
https://stackoverflow.com/questions/14261417
复制相似问题