博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
away3d 4.1 环境反射总结
阅读量:6332 次
发布时间:2019-06-22

本文共 2101 字,大约阅读时间需要 7 分钟。

 

在三维中,当我们的环境要反射在物体上的时候我们需要给物体添加反射贴图或开启环境反射。away3d无法自动识别周围创建物体的环境,所以物体的反射要用BitmapCubeTexture建立一个环境贴图,然后在通过EnvMapMethod类的方法添加到物体的材质上

这里我们要用到BitmapCubeTexture

 

看看BitmapCubeTexture的API

(posX:BitmapData, negX:BitmapData, posY:BitmapData, negY:BitmapData, posZ:BitmapData, negZ:BitmapData)

简单的说就是

(右:BitmapData, 左:BitmapData, 上:BitmapData, 下:BitmapData, 后:BitmapData, 前:BitmapData)

 

 (envMap:, alpha:Number = 1)

this.cubeTextures = new BitmapCubeTexture(new this.EnvPosXGarage().bitmapData,                     new this.EnvNegXGarage().bitmapData,                     new this.EnvPosYGarage().bitmapData,                     new this.EnvNegYGarage().bitmapData,                     new this.EnvPosZGarage().bitmapData,                     new this.EnvNegZGarage().bitmapData);                        this.environmentReflectionMetrial= new EnvMapMethod(this.cubeTextures)this.sphereMetrial.addMethod(this.environmentReflectionMetrial)

 

那既然环境可以反射到物体上,那物体肯定也是可以反射到环境上,比如镜子,物体可以反射到镜子上面

 

away3d 为我们提供了许多方法,这些方法可以在away3d.textures下找到,例如 CubeReflectionTexture  PlanarReflectionTexture

 

//反射贴图            this.planarReflectionTexture=new PlanarReflectionTexture()            //反射方法                        var planeReflectionMethod:PlanarReflectionMethod = new PlanarReflectionMethod(planarReflectionTexture);            //添加反射方法到材质上            this.sphereMatrail.addMethod(planeReflectionMethod);

 

      //通过矩阵反射到平面        planarReflectionTexture.applyTransform(sphereMesh.sceneTransform);

 

private function renderScene(event:Event):void        {            cameraLight.position = viewport.camera.position;            viewport.render();            planarReflectionTexture.render(viewport);
        //必须时刻更新
this.selfController.update();            this.orbitController.update();        }

 

 如果我们单纯的把 PlanarReflectionTexture贴到球上,是实现不了的,只能部分实现反色

效果将如下

 

 也就是说 先在4.1版本 有:

PlanarReflectionTexture+PlanarReflectionMethod
CubeReflectionTexture + 无CubeReflectionMethod
这是4.1新功能

因为away3d4.1版本对CubeReflectionTexture 的环境反射没实现,所以暂时整理到这 ,如果想反射环境还是得EnvMapMethod

等官方更新下一个版本估计就出来了

 

 

 

 

 

转载于:https://www.cnblogs.com/bulolo/archive/2012/12/16/2820901.html

你可能感兴趣的文章
第二十一章流 3用cin输入
查看>>
在workflow中,无法为实例 ID“...”传递接口类型“...”上的事件“...” 问题的解决方法。...
查看>>
获取SQL数据库中的数据库名、所有表名、所有字段名、列描述
查看>>
Orchard 视频资料
查看>>
简述:预处理、编译、汇编、链接
查看>>
调试网页PAIP HTML的调试与分析工具
查看>>
路径工程OpenCV依赖文件路径自动添加方法
查看>>
玩转SSRS第七篇---报表订阅
查看>>
WinCE API
查看>>
SQL语言基础
查看>>
对事件处理的错误使用
查看>>
最大熵模型(二)朗格朗日函数
查看>>
深入了解setInterval方法
查看>>
html img Src base64 图片显示
查看>>
[Spring学习笔记 7 ] Spring中的数据库支持 RowMapper,JdbcDaoSupport 和 事务处理Transaction...
查看>>
FFMPEG中关于ts流的时长估计的实现(转)
查看>>
Java第三次作业
查看>>
【HDOJ 3652】B-number
查看>>
android代码混淆笔记
查看>>
Codeforces Round #423 (Div. 2, rated, based on VK Cup Finals) C. String Reconstruction 并查集
查看>>