私はas3でPapervision3Dでaroungをだましています。私は現在、BitmapEffectLayerに固執しています。オブジェクトにエフェクトを追加したい場合、エフェクトのあるオブジェクトは常にすべてのものの前にレンダリングされます。つまり、cordinatシステム内の別のオブジェクトの背後にあるにもかかわらず、それはそのフレームの前に描画されます。 いくつかのソースコードを参考にしてください。as3のPapervision3Dでの問題
spherer = new Sphere(shadedMaterial, 120, 20, 14);
//spherer.x = 0;
//spherer.y = 0;
//spherer.z = 0;
displayEarth = new DisplayObject3D();
displayEarth.x =0;
displayEarth.y = 0;
displayEarth.z = 0;
displayEarth.addChild(spherer);
smallSphere = new Sphere(flatMaterial, 10, 10, 10);
smallSphere.x = 0;
smallSphere.z = 130;
smallSphere.y = 00;
displayEarth.addChild(smallSphere);
//scene.addChild(smallSphere);
scene.addChild(light);
var partMaterial:ParticleMaterial = new ParticleMaterial(0x000000, 1.0, ParticleMaterial.SHAPE_CIRCLE);
var part:Particle = new Particle(partMaterial, 3, 0, -150, 30);
var part2:Particle = new Particle(partMaterial, 3, 0,0,135);
var partsHolder:Particles = new Particles();
partsHolder.addParticle(part);
parrr.push(part);
partsHolder.addParticle(part2);
parrr.push(part2);
var effectLayer:BitmapEffectLayer = new BitmapEffectLayer(viewport, stage.stageWidth, stage.stageHeight, true, 0x000000, BitmapClearMode.CLEAR_PRE);
effectLayer.drawLayer.blendMode = BlendMode.OVERLAY;
effectLayer.addDisplayObject3D(smallSphere);
viewport.containerSprite.addLayer(effectLayer);
displayEarth.addChild(partsHolder);
scene.addChild(displayEarth);
effectLayer.addEffect(new BitmapLayerEffect(new BlurFilter(2,2,2)));
そして今、effectLayerに添付された「smallSphere」は、常に「球」のインフロントレンダリングされます。 ご協力いただければ幸いです! - デビッド