0

この投稿に基づいて、3D モデルのレンダリングに関する小さなコードを書いています: http://active.tutsplus.com/tutorials/3d/quick-tip-displaying-a-3d-model-with-papervision3d/

無料の DAE ファイル (car_shell_001.dae) とテクスチャ (vehicle_texture.jpg) をダウンロードしました。

例からコードをコピーし、ファイル ポインターを自分のファイルに変更しました。コードは次のとおりです。

public class Tarini extends BasicView
    {
        [Embed(source="Assets/car_shell_001.dae", mimeType="application/octet-stream")]
        private var bikeModelClass:Class;

        [Embed(source="./Assets/vehicle_texture.jpg")]
        private var bikeTextureClass:Class;

        private var bikeModelDAE:DAE;

        public function Tarini() 
        {
            this.loaderInfo.addEventListener ( Event.COMPLETE, onFullyLoaded ) ;
        }

        private function onFullyLoaded(e:Event):void 
        {
                var bitmap:Bitmap = new bikeTextureClass ( ) ;

                var bitmapMaterial:BitmapMaterial = new BitmapMaterial ( bitmap.bitmapData ) ;

                var materialsList:MaterialsList = new MaterialsList ( ) ;
                materialsList.addMaterial ( bitmapMaterial, "all" ) ;

                var byteArray:ByteArray = new bikeModelClass ( ) ;

                bikeModelDAE = new DAE ( ) ;
                bikeModelDAE.load ( byteArray, materialsList ) ;

                this.scene.addChild ( bikeModelDAE ) ;

                this.camera.z = 500;

                this.startRendering ( ) ;
        }

    }

これはとてもシンプルで気に入っています。mxmlc でコンパイルしましたが、コンパイル エラーは発生しませんでした。生成された SWF を開くと、ブラウザーの中央に非常に小さなレンディションが表示されます。

どうしたの?何らかの方法で寸法を強制する必要がありますか? Dae と jpg ファイルが役立つと思われる場合は、教えてください :)

4

1 に答える 1

0

3D エンジンと 3D エディターの間で測定単位が異なることは非常に一般的です (実際にはエディター間で観察できます: たとえば Blender から立方体をエクスポートし、Sketchup/3dsmax などで確認するだけです)。

あなたができる最も簡単なことは、初期化後にモデルをスケールアップすることです:

bikeModelDAE.scale = 10;//or any other value that works best for you

別の有効なオプションは、カメラのズーム/フォーカス オプションで遊ぶことです。表示するモデルしかない場合は、どちらの方法 (オブジェクト スケール、カメラ プロパティ) も使用できますが、モデルが複数ある場合は、モデル間で同様のスケールを使用することを確認することをお勧めします。

少し話が逸れますが、Papervision が 2010 年以降更新されていないことはご存知だと思います。たとえば、 Away3Dなど、まだ開発中のエンジンを試すことをお勧めします。

于 2013-02-10T10:12:25.053 に答える