Android 中的 Rajawali 对我来说一切都很好,除了纹理。我想以编程方式将透明图像加载为纹理,并带有棋盘图案,其中每个黑色方块实际上都是完全透明的,而每个白色方块都是白色的。我想将它用作对象上的纹理,否则它具有可以通过编程方式更改的漫反射和镜面反射颜色属性。因此,如果用户输入了蓝色,我希望对象显示蓝白色图案。我怎样才能做到这一点?rajawali 教程并没有真正帮助,因为对于纹理,rajawali 在上次更新中发生了很大变化。此外,Rajawali 示例应用程序并没有真正的帮助,因为它们似乎都在处理环境地图。我尝试的是例如:
protected void initScene() {
objParser = new LoaderOBJ(mContext.getResources(), mTextureManager, R.raw.stdblock_obj);
try{
Texture jetTexture = new Texture("jetTexture", R.drawable.chessboardtexture);
mTextureManager.getInstance().addTexture(jetTexture);
semiglossMaterial.addTexture(jetTexture);
semiglossMaterial.setColorInfluence(0);
}catch(TextureException e){
e.printStackTrace();
}
}
对象被渲染,但没有任何纹理。棋盘图像的大小确实是 2 的幂,它位于右侧文件夹 R.raw.stdblock_obj 中。这是一个 jpg 图像,但我也尝试了 png 也不起作用。
我还尝试了另一种方法:
semiglossMaterial.enableLighting(true);
semiglossMaterial.setDiffuseMethod(new DiffuseMethod.Lambert());
phongMethod.setShininess(iShininess); semiglossMaterial.addTexture(new Texture("jetTexture",R.drawable.chessboardtexture));
semiglossMaterial.addTexture(new AlphaMapTexture("alphaMapTex", R.drawable.simpletexture3));
semiglossMaterial.setColorInfluence(0);
但这也没有用。任何人的想法?