android - Rajawali 中具有可编程颜色的纹理

标签 android opengl-es rajawali

Android 中的 Rajawali 对我来说一切都很好,纹理除外。 我想以编程方式加载一个透明图像作为纹理,具有棋盘图案,其中每个黑色方 block 实际上是完全透明的,而每个白色方 block 都是白色的。 我想将其用作对象上的纹理,否则该对象具有可以通过编程方式更改的漫反射和镜面反射颜色属性。因此,如果用户输入了蓝色,我希望对象显示蓝白色图案。 我怎样才能做到这一点? 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);

但这也行不通。 有人有想法吗?

最佳答案

你必须添加那个纹理作为一个 child ,一个 .obj 文件的 child ,如果你不知道有多少 child 有你的 .obj 和他们的名字,使用:

"your3DobjectName".numChildren(), 

然后使用一个简单的

for(int i = 0; i < "your3DobjectName".numChildren(); i++)
{ 
   String name = "your3DobjectName".getChildAt(i).name(); 
   Log.d("rajawali", "Name: "+name);
}

这样你就可以知道在你的obj有多少 child 和 child 的名字

关于android - Rajawali 中具有可编程颜色的纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29016168/

相关文章:

android - 如何在谷歌地图上找到两点之间的最佳路线然后突出显示它?

java - Android的MediaPlayer是如何通过检查原生代码来工作的?

ios - 用于多重采样的 OpenGL ES 快照在 iOS 中提供奇怪的颜色

opengl-es - OpenGL ES 2.0 : Attribute vs Layout?

android - Android OpenGL ES 上的光线对象拾取

java - 底页 + Android MotionLayout 实现

android - 使用系统权限静默卸载应用程序

iphone - 在 Free Flight 示例应用程序 (ARDrone) 中使用 ARDrone 捕获静止图像

java - 在 Rajawali 中渲染线框对象

android - 如何使用 RajawaliVR 或 Rajawali 播放 360 视频