首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rajawali中具有可编程颜色的纹理

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

Stack Overflow用户
提问于 2015-03-13 01:14:10
回答 1查看 531关注 0票数 1

在安卓系统中,除了纹理之外,所有的功能对我的Rajawali都很有效。我想以编程方式加载一个透明的图像作为纹理,具有棋盘图案,其中每个黑色方块实际上是完全透明的,而每个白色方块只是白色。我想使用它作为一个对象的纹理,否则具有漫反射和镜面反射颜色属性,可以通过编程更改。因此,如果用户输入了蓝色,我希望对象显示为蓝白色模式。我该怎么做呢?rajawali教程没有真正的帮助,因为对于纹理rajawali在上一次更新中改变了很多。此外,Rajawali examples应用程序也没有真正的帮助,因为它们似乎都在处理环境地图。我尝试的是:

代码语言:javascript
复制
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格式,但也不起作用。

我还尝试了一种不同的方法:

代码语言:javascript
复制
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);

但这也没有起作用。有谁有主意吗?

EN

回答 1

Stack Overflow用户

发布于 2015-05-13 23:17:57

你必须将该纹理添加为.obj文件的子级,如果你不知道有多少个子级有你的.obj和它们的名称,使用:

代码语言:javascript
复制
"your3DobjectName".numChildren(), 

然后使用简单的

代码语言:javascript
复制
for(int i = 0; i < "your3DobjectName".numChildren(); i++)
{ 
   String name = "your3DobjectName".getChildAt(i).name(); 
   Log.d("rajawali", "Name: "+name);
}

这样你就会知道有多少个孩子,以及你的孩子的名字在你的obj中声明

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29016168

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档