我一直在使用Haxe + Away3D编写一个小星球生成器,并部署到HTML5/WebGL。但是在渲染我的云时我遇到了一个奇怪的问题。我拥有行星网状物,然后云层在相同的位置稍微变大。WebGL中透明纹理的奇怪渲染行为
我使用珀林噪声函数来生成行星特征和云层,将它们写入位图并将位图应用为纹理。现在,奇怪的是,当我这个部署到iOS或C++/OSX,它呈现正是我如何想:
现在,当我部署到WebGL的,它会产生一个相同的漫反射贴图,但呈现如:
(以上是在一个非常低的分辨率,由于我是多久重新加载页面的问题依然存在,在更高的分辨率。)
的云那里,边缘看起来很好,纤细和半透明。但内部是不透明的,看起来呈现不同(每个像素是相同的颜色,只有阿尔法通道改变)
我知道这可能与如何最终编译/生成haxe代码有关,但我希望它是简单的,就像我没有设置的渲染设置或混合模式。但是因为我甚至不确定究竟发生了什么,我不知道在哪里看。
这是制作的漫反射地图。我将它覆盖在红色上,这样可以看到云。
您是否认为您生成的颜色值超过了255,255,255?也许这在编译后的JS中有不同的表现。你能确保每个像素的颜色值被钳位到0..255吗? – pixelmike 2014-10-23 20:42:12
我检查了这一点,但我将所有值都限制为1.0(255)。我甚至倾倒了每个像素和grep'd。 – Shadda 2014-10-24 23:46:13