内容简介:第一次尝试中,我使用了我比较熟悉的 PixiJS ,虽然 PixiJS 是 2D 渲染引擎,但是截止本文发布, 官方还没有提供 v5 的 api 。我在之前的项目中已经使用过
第一次尝试中,我使用了我比较熟悉的 PixiJS ,虽然 PixiJS 是 2D 渲染引擎,但是 pixi-projection 插件提供了 PixiJS 未来版本中 2d 和 3d 投影。
截止本文发布, 官方还没有提供 v5 的 api 。
我在之前的项目中已经使用过 Sprite2d
、 Container2d
、 setAxisY
、 AFFINE.AXIS_X
等 api 实现过 2d 投影效果,效果还不错,有兴趣的可以戳这里查看 。
所以这次我想用 Camera3d
、 Container3d
、 Sprite3d
、 position3d
、 euler
等 3d 投影的 api 实现这次 3D 卡片的效果。
效果
效果图如下,在线预览戳这里 。如果觉得效果惨不忍睹,就直接跳过下面的代码部分看总结吧,或者等我写完下一篇使用 three.js CSS3DRenderer 实现效果 的总结。
实现过程
首先建立一个相机(Camera3d),然后通过 Container3d
和 Sprite3d
将 3d 元素加入到相机,再通过 euler
和 position3d
来调整布局,最后通过改变元素的位置和投影,或者改变相机的位置来实现动画。以下核心代码省略了位置和旋转中心的设置。
核心代码
引入组件
import * as PIXI from 'pixi.js'; import 'pixi-projection'; import {TweenMax} from "gsap/TweenMax"; 复制代码
camera3d 初始化
const camera = new PIXI.projection.Camera3d(); camera.setPlanes(350,-5000,5000); // 参数依次为 焦距、z 轴最近距离, z 轴最远距离 app.stage.addChild(camera); 复制代码
竖直背景初始化
const card_bg_vertical = new PIXI.projection.Sprite3d(PIXI.loader.resources['bg_0.jpg'].texture); camera.addChild(card_bg_vertical); 复制代码
地面初始化
this.card_ground = new PIXI.projection.Container3d(); this.card_ground.euler.x = -Math.PI/180*10; // 给地面添加透视 camera.addChild(this.card_ground); const card_ground_bg:PIXI.projection.Sprite3d = new PIXI.projection.Sprite3d(PIXI.loader.resources['bg_1.jpg'].texture); this.card_ground.addChild(card_ground_bg); 复制代码
把场景元素添加到地面
for(let i = 0; i < 10; i++){ const thing = new PIXI.projection.Sprite3d(PIXI.loader.resources['card1_thing_'+i+'.png'].texture); thing.euler.x = Math.PI/180*10; // 将父元素的透视复原 this.card_ground.addChild(thing); } 复制代码
添加动画,旋转地面闭合卡片
const cardTween = new TweenMax.to(this.card_ground.euler,2,{x:-Math.PI/180*180}); 复制代码
总结
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 使用 Jetpack 卡片库在 Wear OS by Google 谷歌上创建自定义卡片
- 解锁卡片分类全过程
- canvas压缩图片以及卡片制作
- CSS3实现卡片翻转动画效果
- 跨平台开源卡片记忆工具 anki
- Flutter实现动画卡片式Tab导航
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
大象无形:虚幻引擎程序设计浅析
罗丁力、张三 / 电子工业出版社 / 2017-4 / 65
《大象无形:虚幻引擎程序设计浅析》以两位作者本人在使用虚幻引擎过程中的实际经历为参考,包括三大部分:使用C++语言进行游戏性编程、了解虚幻引擎本身底层结构与渲染结构、编写插件扩展虚幻引擎。提供了不同于官方文档内容的虚幻引擎相关细节和有效实践。有助于读者一窥虚幻引擎本身设计的精妙之处,并能学习到定制虚幻引擎所需的基础知识,实现对其的按需定制。 《大象无形:虚幻引擎程序设计浅析》适合初步了解虚幻......一起来看看 《大象无形:虚幻引擎程序设计浅析》 这本书的介绍吧!