2

私はaway3dにかなり慣れていません。陰影のあるオブジェクトで基本的なシーンをまとめた後、なぜそれらが互いに影を付けないのか疑問に思いました。

私の例では、平面の上に立方体があり、両方の上に指向性ライトがあります。立方体をその下の平面に影を落とすにはどうすればよいですか?

この例は、away3d3.6を使用して記述されています

package  {

import flash.display.MovieClip;
import flash.events.*;
import away3d.containers.View3D;
import away3d.primitives.Cube;
import away3d.primitives.Plane;
import away3d.lights.DirectionalLight3D;
import away3d.materials.PhongColorMaterial;
import away3d.materials.ColorMaterial;
import flash.geom.Vector3D;


public class Test7 extends MovieClip {

    public var view:View3D;
    public var light:DirectionalLight3D;

    public var cube:Cube;
    public var plane:Plane;     

    public function Test7() {
        // constructor code
        view = new View3D();
        view.x = 200;
        view.y = 200;
        view.z = 150;

        light = new DirectionalLight3D();
        light.direction = new Vector3D(0, -1, 0);
        light.brightness = 5;
        view.scene.addLight(light);

        plane = new Plane();
        plane.material = new PhongColorMaterial(0xCCCCCC);
        plane.width = 1000;
        plane.height = 1000;
        plane.segmentsH = 
        plane.segmentsW = 10;
        plane.y = -100;
        view.scene.addChild(plane);

        cube = new Cube();
        cube.rotationX = 45;
        cube.rotationY = 45;
        cube.segmentsD = 
        cube.segmentsH = 
        cube.segmentsW = 10;
        cube.material = new PhongColorMaterial(0x330099);
        view.scene.addChild(cube);

        addChild(view);
        addEventListener(Event.ENTER_FRAME, render);            
    }

    public function render(e:Event):void {
        view.render();
    }
}

}

4

2 に答える 2

1

リアルタイムでのシャドウの計算はCPUには重すぎるため、GPUが必要です(Away 3D 4.0+)グラフィカルエディタを使用して、シャドウ、拡散照明、グローバルイルミネーション、アンビエントオクルージョンなどをテクスチャにベイクする必要があります。グローバルイルミネーションの事前計算には、リアルタイムで1 \ 30秒ではなく、かなりの時間がかかる可能性があるため、これにより、超高品質の静的照明が得られます。シーンをよりダイナミックにするには環境キューブマップをモデルまたはプリミティブライティングに追加できます。

これが事前に計算されたシャドウを使用したデモです:http: //alternativaplatform.com/ru/demos/temple/ そしてこれはenvマップを使用したものです:http: //alternativaplatform.com/swf/demos/mobilephone/mobilephone.swf

于 2012-11-09T05:19:15.340 に答える
0

マテリアルにshadowMethodを追加する必要があるようです。

http://away3d.com/livedocs/away3d/4.0/away3d/materials/DefaultMaterialBase.html#shadowMethod

http://away3d.com/livedocs/away3d/4.0/away3d/materials/methods/FilteredShadowMapMethod.html

このデモを見て、どのように実装されているかを確認してください

デモ: http: //infiniteturtles.co.uk/projects/away3d4/examples/Intermediate_PerelithKnightMD2/Intermediate_PerelithKnightMD2.html

ソース: http: //infiniteturtles.co.uk/projects/away3d4/examples/Intermediate_PerelithKnightMD2/srcview/

于 2012-09-27T10:34:58.590 に答える