2011-10-04 44 views
0

我们正致力于将一些软件从Windows移植到MacOS。虚幻的纹理透明度(透过墙壁)

当我们调出带alpha通道的纹理时,完全不透明的像素按预期工作,完全透明的像素按预期工作(您可以看到后面的墙)。但是,不透明度为半透明> 0%的透明像素和不透明度为100%的透明度,渲染效果较差,并且您可以透过背后的墙看到天空盒,并且可以通过纹理和背后的墙看到天空盒。

我知道你可能需要更多的信息,我会很乐意提供。我不是在寻找一个快速解决方案,我真的只是用完了想法,需要别人来猜测什么是错的。

我会发布解决方案,正确的答案会发给谁指出我的方式。

它不是正确放置在墙上的纹理,而是放置在靠近墙壁的静态网格上。

(无法投递的图像作为这是我的第一个问题在这里)

+0

你在使用哪个特定的引擎(和版本)? (UE1,UE2,UE3?) – duskwuff

+0

虚幻引擎2 –

回答

3

你是sorting transparent objects by depth,是吗?我从你的问题收集,答案是否定的。

你不能像使用不透明物体那样渲染透明物体。你的渲染器只是一个奇特的三角形抽屉。因此,它没有真正的物体概念,甚至没有透明度。通过将透明像素与绘制透明三角形时在帧缓冲区中发生的任何事情进行混合,可以实现透明度。

它简直不知道你打算在后面的三角形后面画什么。因此,透明物体的一般方法是:

  1. 先渲染所有不透明物体。
  2. 渲染透明对象,并将其排序。此外,关闭深度写入(深度测试很好)。
+0

谢谢Nicol,你能解释为什么图像的完全透明部分能够正常工作吗? –

+0

@AndrewTarzwell:你对这些像素使用alpha测试吗? –

+0

在研究此问题时,我发现某些“#ifdef'd”代码可能尚未定义,这可能会对此问题产生影响。如果它正常工作是,ALPHA_TEST应该打开。我会知道这是否会在重建后产生影响。 –

0

这可能不是一个答案,但可能有用。 制作一个在Maya/3d MAX中应用透明纹理并导出为fbx并导入为虚幻的对象?