トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   立体工作室【スクリプト系以外の3D】
     3D表現すると画像が劣化する
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
HIKAHIKA
Åê¹ÆNo.47009
投稿日時: 2011-2-17 12:30
新米
居住地:
投稿: 9
使用環境:
MacOS10.6, WinXP SP3
Flash CS5
3D表現すると画像が劣化する
この話題は一応3Dに関することなんですが、コーディング話題に属するのかちょっとわからなかったのでこちらに投稿させていただきます。

表示オブジェクトにzプロパティ、rotationX、rotationYなどを設定(Matrix3Dが設定される)すると配置した画像が少しぼやけたり数ピクセル拡大して劣化してしまいます。
劣化させずに表示したいのですがどうしたらよいでしょう?

画像はpngで保存してライブラリに読み込んでクラス名をtestに設定しています、サイズは200x130で作成しましたがどのサイズでもいいです。
以下のようにdrawTrianglesで試してみてもやっぱりダメでした、何か解決策はないでしょうか、よろしくお願いいたします。作業環境:Flash CS5、MAC OS 10.6

使うフレームは1フレームだけでメインタイムライン1フレーム目に記入


//通常
var testBmp01:Bitmap=new Bitmap(new test(0,0));
addChild(testBmp01);
testBmp01.x=10;
testBmp01.y=50;

//zプロパティ追加
var testBmp02:Bitmap=new Bitmap(new test(0,0));
testBmp02.smoothing=true;
addChild(testBmp02);
testBmp02.x=220;
testBmp02.y=50;
testBmp02.z=0;

//drawTriangles
var testSpr:Sprite = new Sprite();
var testGraphics:Graphics = testSpr.graphics;
var testTexture:BitmapData = new test(0, 0);
var zahyou:Vector.<Number> = new Vector.<Number>();
var pointNum:Vector.<int> = new Vector.<int>();
var number01:Vector.<Number> = new Vector.<Number>();
addChild(testSpr);
testSpr.x=430;
testSpr.y=50;
testSpr.z=0;

zahyou.push(0, 0);
zahyou.push(200, 0);
zahyou.push(0, 130);
zahyou.push(200, 130);

pointNum.push(0, 1, 2);
pointNum.push(1, 2, 3);

number01.push(0, 0);
number01.push(1, 0);
number01.push(0, 1);
number01.push(1, 1);
testGraphics.beginBitmapFill(testTexture);
testGraphics.drawTriangles(zahyou, pointNum, number01);
ひろゆき
Åê¹ÆNo.47010
投稿日時: 2011-2-17 12:43
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: 3D表現すると画像が劣化する
まず、スムージングをかけても、解消する問題なのか、それでも解消しない問題なのか、
切り分ける必要があるでしょう。

また、劣化の程度については、見て確認するしかないので、
どこかにサンプルを上げるなりなんなりされる必要があるように思います。


----------------
質問する際は、回答者に具体的な情報を与えてください。

HIKAHIKA
Åê¹ÆNo.47027
投稿日時: 2011-2-20 0:36
新米
居住地:
投稿: 9
使用環境:
MacOS10.6, WinXP SP3
Flash CS5
Re: 3D表現すると画像が劣化する


写真のサイズは230x153で再度試してみました。
左が通常、真ん中がzプロパティに0を追加、右がdrawTrianglesで描いたものです。

ようく見ると若干ぼやけて見えると思います、スムージングをかけてもダメでした。これはASの仕様なのでしょうか?
ひろゆき
Åê¹ÆNo.47028
投稿日時: 2011-2-20 0:58
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: 3D表現すると画像が劣化する
確認をされるのであれば、230×154の画像で確認すべきです。

また、スクリプトを記述されたのであれば、省略せずに記載すべきです。

また、誰しもが端から結論を知っている訳ではないので、
ASの仕様かどうか、結論を出せないこともあります。

もし、そのような都合主義で質問されておられるのであれば、
フォーラムは、便利屋さんやサポートセンターなどではありませんので、
他人を巻き込まずに、ご自分で仮説や推測を組み立て検証してください。


----------------
質問する際は、回答者に具体的な情報を与えてください。

ひろゆき
Åê¹ÆNo.47029
投稿日時: 2011-2-20 2:11
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: 3D表現すると画像が劣化する
320*240の画像で検証 (画像のプロパティでスムージングにチェック/クラス・リンケージ: Photo)
スクリプトは、メインタイムライン第1フレームのみに記述。
余計なものは一切なし。


[caseA]
ムービークリップ内に画像を配置。ムービークリップのインスタンス名をphotoとして、
ステージに配置。

(その1) にじみなし
スクリプトは一切なし。

(その2) にじみあり
photo.z = 0;


[caseB]
ステージ上には、何も配置しない。

(その1) にじみなし
var photo:BitmapData = BitmapData(new Photo(320, 240));
var vertices:Vector.<Number> = new Vector.<Number>();
vertices.push(0, 0);
vertices.push(320, 0);
vertices.push(0, 240);
vertices.push(320, 240);
var indices:Vector.<int> = new Vector.<int>();
indices.push(0, 1, 2);
indices.push(1, 2, 3);
var uvtData:Vector.<Number> = new Vector.<Number>();
uvtData.push(0, 0);
uvtData.push(1, 0);
uvtData.push(0, 1);
uvtData.push(1, 1);
var container:Shape = new Shape();
addChild(container);
container.graphics.beginBitmapFill(photo, null, false, false);
container.graphics.drawTriangles(vertices, indices, uvtData);
container.graphics.endFill();

(その2) にじみあり
var photo:BitmapData = BitmapData(new Photo(320, 240));
var vertices:Vector.<Number> = new Vector.<Number>();
vertices.push(0, 0);
vertices.push(320, 0);
vertices.push(0, 240);
vertices.push(320, 240);
var indices:Vector.<int> = new Vector.<int>();
indices.push(0, 1, 2);
indices.push(1, 2, 3);
var uvtData:Vector.<Number> = new Vector.<Number>();
uvtData.push(0, 0);
uvtData.push(1, 0);
uvtData.push(0, 1);
uvtData.push(1, 1);
var container:Shape = new Shape();
addChild(container);
container.graphics.beginBitmapFill(photo, null, false, true);
container.graphics.drawTriangles(vertices, indices, uvtData);
container.graphics.endFill();



サンプル」(あとで削除します)


----------------
質問する際は、回答者に具体的な情報を与えてください。

HIKAHIKA
Åê¹ÆNo.47110
投稿日時: 2011-2-27 15:54
新米
居住地:
投稿: 9
使用環境:
MacOS10.6, WinXP SP3
Flash CS5
Re: 3D表現すると画像が劣化する
わざわざサンプルまで載せていただいてありがとうございます。
参考になりました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops