Loving Coding & Visual Design

Cube使用ShadedMaterial材质的黑三角型问题


在PV3d里面立方体原型Cube中使用ShadedMaterial材质的时候,如果立方体所有面都使用同一shader,渲染结果的时候,每个面会出现单个黑色三角形的问题。
myShader = new PhongShader(light);
myShadedMaterial = new ShadedMaterial(myBitmapMaterial,myShader);
mlist = new MaterialsList();
mlist.addMaterial(myShadedMaterial, "all");

根据nabble上的解释:解决办法只能给每个面指定单独的Shader。经测试问题解决。

另外,要解决两平面相对垂直时,视角中出现的三角形突起,如下图:

可以修改小平面useOwnContainer属性来解决。
plane.useOwnContainer=true;

但是发现如果有多个平行平面垂直于一平面的时候,useOwnContainer会导致平行平面之间视角失真的问题,看来还得找其他办法。如图,注意深蓝色平面。


正常情况


失真情况

更新:是Z-fighting的问题,用ViewportLayer和QuadrantRenderEngine来解决。具体如下
import org.papervision3d.render.QuadrantRenderEngine;
import org.papervision3d.view.layer.util.ViewportLayerSortMode;
...
viewport.containerSprite.sortMode = ViewportLayerSortMode.INDEX_SORT;
renderer = new QuadrantRenderEngine(QuadrantRenderEngine.ALL_FILTERS);
...
viewport.getChildLayer(target).layerIndex = 1;
viewport.getChildLayer(floor).layerIndex = -100;



下一页


最 近 文 章

  1. 基于FLASH的免费三维字体生成工具 - Fri, 08 May 2009 03:13:00 +0000
  2. Away3D测试 - Thu, 19 Mar 2009 09:25:00 +0000
  3. 测试Alternativa3D - Wed, 18 Mar 2009 05:29:00 +0000
  4. 中国电信在搞TMDde什么鬼? - Mon, 09 Mar 2009 07:58:00 +0000
  5. UTF8的BOM让FirFox一片空白 - Sat, 07 Mar 2009 18:57:00 +0000
  6. Blender导出Dae文件到Papervision3D的方法 - Thu, 05 Mar 2009 02:03:00 +0000
  7. 再次遭受黑客代码嵌入 - Fri, 27 Feb 2009 02:23:00 +0000
  8. 我是FLash三维实时渲染的忠实粉丝 - Sat, 21 Feb 2009 13:08:00 +0000
  9. 神秘的lightbox.js错误 - Thu, 19 Feb 2009 17:04:00 +0000
  10. Javascript与swf对象交互的问题 - Tue, 10 Feb 2009 08:51:00 +0000