首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cocos3D中α通道材料的织构

Cocos3D中α通道材料的织构
EN

Stack Overflow用户
提问于 2014-07-16 13:07:05
回答 1查看 407关注 0票数 1

我有一个网格(平面与一些改性剂)的材料分配给它在搅拌机,和纹理的材料使用半透明的PNG图像。

当导出到POD文件时,网格在PVRShaman中看起来仍然像在搅拌机中那样半透明,但是当我将它导入Cocos3D作为时,它看起来就像图像本身仍然是半透明的,但在背景中它背后也有一种蓝色的颜色。

知道为什么会这样吗?

在Blender中的设置似乎没有问题,因为我可以在导出后正确地显示它,但是在Cocos3D方面有什么问题呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-17 21:38:24

你可能是在和预倍增的阿尔法打交道。为了提高效率,Xcode (和iOS图像加载器)假设alpha将预先乘以每个纹理中的颜色,并在应用程序打包和纹理加载期间实际修改纹理。这是Xcode和iOS中一个众所周知的问题。

尝试更改PNG文件的名称,使其具有ppng文件扩展名。这将导致Xcode在构建时跳过文件操作,并导致Cocos3D对映像使用非Apple文件加载器。

有关此问题的更多信息,请参见CC3Texture类的注释或CC3MaterialCC3MeshNodetexture属性。

编辑

事实证明,这是包含透明度的两个节点的呈现顺序的问题。蓝色的颜色来自于天框后面的场景背景。感兴趣的对象是在天窗前呈现的,它还具有一种包含透明度的纹理。通常情况下,Cocos3D会首先自动渲染不透明物体,然后以与摄像机距离相反的顺序呈现半透明物体。在这种情况下,skybox包含透明(有一个alpha通道),并且在感兴趣的对象之后呈现。这通常是一个很好的做法,以确保用于天框的纹理是不透明的,并且不包含alpha透明度。

还可以通过将skybox的zOrder属性设置为正值(默认为零),强制首先呈现skybox(甚至半透明的skybox)。zOrder属性可用于修复透明对象的呈现顺序。对于完全不透明的对象,它不是必需的(也没有任何影响)。

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

https://stackoverflow.com/questions/24781610

复制
相关文章

相似问题

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