|
|
最近更新:
●
wan925446570阁下在 讨论区里
回复“怎么配置away3d 4.0运行环境啊?...”(15:12:45)
●
wan925446570阁下在 讨论区里
回复“怎么配置away3d 4.0运行环境啊?...”(10:01:38)
●
DDM君阁下在 讨论区里
回复“怎么配置away3d 4.0运行环境啊?...”(19:07:43)
|
|
|
浏览主题:ReflectionView的相关问题
ReflectionView的相关问题
CC (2009-06-29 23:53:14)
ReflectionView类可以让整个场景中的displayobject3d都产生倒影。 如何设置才能使场景中的某些物体显示倒影,某些物体不显示倒影呢??谢谢
 |
(2009-06-30 10:16:50) |
嗯.....为什么大家都喜欢ReflectionView呢,我觉得是一挺不靠普的功能呢 汗.....因为是继承死板的BasicView,所以是没有办法直接安排谁产生倒影谁不产生。
|
 |
(2009-06-30 15:37:03) |
那还有什么办法实现部分物体的倒影呢?
|
 |
(2009-07-01 14:51:30) |
因为对这个研究很少,在下暂时也想不出什么有效的方法。 建议您看看ReflectionView里面的代码,原理其实就是多了一个倒着的viewport而已。
|
 |
(2009-07-03 10:27:54) |
不要用ReflectionView,用BasicView。
//前面代码略,这里取得已经载入的图片 var bitmap:Bitmap = loader.getBitmap( image ); //取得图片数据 var bmp:BitmapData = bitmap.bitmapData; //创建新的图片数据,注意高度是原先的2倍 var bd:BitmapData = new BitmapData(bmp.width, bmp.height*2 , false, 0); //写入原始的图片数据 bd.draw(bmp);
//画倒影 var alpha:Number = 0.3; var flipMatrix:Matrix = new Matrix(1, 0, 0, -1, 0, bmp.height*2 + 4); bd.draw( bmp, flipMatrix, new ColorTransform(alpha, alpha, alpha, 1, 0, 0, 0, 0) );
//渐变效果 var holder:Shape = new Shape();
var gradientMatrix:Matrix = new Matrix(); gradientMatrix.createGradientBox( bmp.width, bmp.height, -Math.PI/2); holder.graphics.beginGradientFill( GradientType.LINEAR, [ 0, 0 ], [ 1, .7 ], [ 0, 0xFF ], gradientMatrix); holder.graphics.drawRect(0, 0, bmp.width, bmp.height); holder.graphics.endFill(); var m:Matrix = new Matrix(); m.translate(0, bmp.height); bd.draw( holder, m );
//用重新生成的图片数据替换原始的 bitmap.bitmapData = bd;
var bitmapHolder:Sprite = new Sprite(); bitmapHolder.addChild( bitmap ); // 创建一个材质 var material:MovieMaterial = new MovieMaterial( bitmapHolder ); //创建一个plane,此plane已经带倒影 var plane:Plane = new Plane( material, bmp.width, bmp.height*2)
|
|
|