1

Away3D で球状のムービー ビューアを使用していますが、VideoMaterial テクスチャを 3D プリミティブに適用すると問題が発生します。ビデオは、スケーリングまたは大幅に圧縮されているように、非常にピクセル化されているように見えます。動画から単一の静止画の BitmapMaterial を適用すると問題なく表示されるので、動画の解像度は問題ではないと思います。

コンストラクターを呼び出すときに「fixedHeight」と「fixedWidth」を指定することで解決策を提案している[このディスカッション][1]を見つけましたが、これらの引数は効果がないようで、APIでも見つかりません。[API で][3]「lockH」および「lockW」と呼ばれるものが表示されますが、どちらも効果がないようです。

VideoMaterial を構築するコードは次のとおりです。

//basic intro setup stuff and then...
var videoURL:String = "assets/clip.flv";
this.primitive = new Sphere({material:"blue:#cyan", radius:50000, rotationX:100, segmentsW:30, segmentsH:30});
//more code to setup the rest of the scene, and implement some texture switching, then...
this.primitive.material = new VideoMaterial({file:videoURL, lockH:1000, lockW:2000});

参考までに、私はこの例を出発点として構築しており、Eclipse Indigo で Away3D 3.6 & Flex 4.5.1 を使用しています。

[1]: [3]:

4

2 に答える 2

2

ピクセル化を取り除くには、 に設定smoothtrueます。smoothing=trueこれは明らかに解像度を上げませんが、ネイティブと同じようにアンチエイリアシングを有効にBitmapDataします (内部的にはまさにそれが行われます)。

全画面表示で環境として使用される球体でビデオまたはビットマップ マテリアルを使用する場合は、非常に高解像度のビデオ/ビットマップが必要になります。一度に見ることができるのは、球体の表面の最大 3 分の 1 だけであり、幅が 1000 ピクセルを超える画面領域をカバーしているため、動画が表示されないようにするには、少なくとも 3000 ピクセルの幅が必要であることがわかります。ストレッチの問題に苦しむ。

于 2011-08-27T08:57:25.170 に答える
0

これが「普通」だと言うのが怖いです。これは主に、アクション スクリプト コードの効率性と、ハードウェア アクセラレーションとアンチエイリアシングの欠如に関係しています。率直に言って、actionscript はこの種の激しい計算用に作成されていないため、品質を損なうことなくビデオをプリミティブに変換することは基本的に不可能です。

とはいえ、希望はあります。Away3d やその他の 3D エンジン (Alternativa など) が既に実装に取り​​組んでいる基本的なハードウェア アクセラレーション 3D レンダラー (コードネーム "Molehill") を備えた新しい Flash Player が「間もなく」(または私が聞いたように) 登場します。これは、ビデオがアンチエイリアス処理されて滑らかになることを意味しますが、試したことがないので確認できません。

于 2011-08-12T02:40:56.370 に答える