跳至内容
CSS3 Dot TOP
用户工具
登录
站点工具
搜索
工具
显示页面
修订记录
反向链接
最近更改
媒体管理器
网站地图
登录
>
最近更改
媒体管理器
网站地图
您的足迹:
编程:cpp:irrlicht:激光特效
编辑本页后请点击“保存”。请参阅
syntax
了解维基语法。只有在您能
改进
该页面的前提下才编辑它。如果您想尝试一些东西,请先到
playground
热身。
媒体文件
====== 3d游戏中的激光效果 ====== 激光的本质是两张相互垂直的图片。创建过程如下(以irrlicht为例)\\ void addLaser(//创建激光 irr::scene::ISceneManager * scene, const irr::core::vector3df & from, const irr::core::vector3df & dir//激光方向及长度 ){ auto node = scene->addEmptySceneNode();//创建主节点 auto length=dir.getLength(); irr::core::vector3df center(0,0,length/2);//中心点。 //因为创建的正方形原点位于中心,要将其拉伸至length,中心点自然就是length/2 auto geo = scene->getGeometryCreator();//几何体绘制工具 auto mesh = geo->createPlaneMesh(irr::core::dimension2d<f32>(1,1));//创建一个正方形 //创建一个水平的和一个垂直的矩形,贴上相同的纹理 auto n1 = scene->addMeshSceneNode( mesh,node,-1, center, irr::core::vector3df(0,0,0),//水平方向 irr::core::vector3df(1,1,length)//向z轴拉伸length倍 ); n1->setMaterialFlag(irr::video::EMF_LIGHTING, false );//不受光照 n1->setMaterialTexture( 0 , this->texture);//纹理 n1->setMaterialType(irr::video::EMT_TRANSPARENT_ALPHA_CHANNEL);//开启透明 auto n2 = scene->addMeshSceneNode( mesh,node,-1, center, irr::core::vector3df(0,0,90),//旋转90度(irr和其他引擎不一样,irr使用角度来控制旋转) irr::core::vector3df(1,1,length) ); n2->setMaterialFlag(irr::video::EMF_LIGHTING, false );//不受光照 n2->setMaterialTexture( 0 , this->texture);//纹理 n2->setMaterialType(irr::video::EMT_TRANSPARENT_ALPHA_CHANNEL);//开启透明 mesh->drop();//mesh不再使用了 //设置节点属性 node->setPosition(from);//位置 node->setRotation(dir.getHorizontalAngle());//旋转 }
保存
预览
取消
编辑摘要
当您选择开始编辑本页,即寓示你同意将你贡献的内容按下列许可协议发布:
GNU Free Documentation License 1.3
编程/cpp/irrlicht/激光特效.txt
· 最后更改: 2019/08/05 00:29 由
cgoxopx
页面工具
显示页面
修订记录
反向链接
回到顶部