初始化
This commit is contained in:
commit
5efd5b9c40
129 files changed
+16739
No files matched your search
@@ -0,0 +1,60 @@
|
||||
---
|
||||
title: egret3d 用视频video做纹理贴图
|
||||
tags: []
|
||||
id: '267'
|
||||
categories:
|
||||
- - 分享
|
||||
date: 2018-01-29 17:50:02
|
||||
---
|
||||
|
||||
前段时间学习了一下egret3d,然后有些奇妙的想法,如果用视频video来做纹理贴图可不可以呢?于是就尝试了一下,效果还不错。
|
||||
|
||||
思路也很简单,创建一个立方体,然后把立方的纹理设置成一个视频video,主要代码如下
|
||||
|
||||
```
|
||||
public createGameScene() {
|
||||
|
||||
this.createVideoTexture();
|
||||
|
||||
this.loaderSkyBox();
|
||||
}
|
||||
//创建视频纹理
|
||||
private createVideoTexture() {
|
||||
this.video = new egret3d.VideoTexture(640,264);
|
||||
this.video.source = "resource/oceans-clip.mp4";
|
||||
}
|
||||
|
||||
// 加载资源
|
||||
private loaderSkyBox() {
|
||||
this.queueLoader = new egret3d.QueueLoader();
|
||||
this.queueLoader.load("resource/background.jpg");
|
||||
this.queueLoader.addEventListener(egret3d.LoaderEvent3D.LOADER_COMPLETE, this.onSkyBoxTexture, this);
|
||||
}
|
||||
|
||||
// 资源加载完成 创建立方体
|
||||
private onSkyBoxTexture(e: egret3d.LoaderEvent3D) {
|
||||
// 设置背景
|
||||
let panelIamge: egret3d.ITexture = this.queueLoader.getAsset("resource/background.jpg");
|
||||
this.view.backImage = panelIamge;
|
||||
|
||||
// 创建立方体和cube贴图
|
||||
this.ge = new egret3d.CubeGeometry(200, 200, 200);
|
||||
this.mat = new egret3d.TextureMaterial(panelIamge);
|
||||
this.mat.diffuseTexture = this.video;
|
||||
|
||||
this.mesh = new egret3d.Mesh(this.ge,this.mat);
|
||||
this.view.addChild3D(this.mesh);
|
||||
|
||||
// 更新摄像机信息
|
||||
this.cameraCtl.distance = 1000;
|
||||
this.cameraCtl.rotationX = 45;
|
||||
this.cameraCtl.rotationY = 45;
|
||||
|
||||
this.cameraCtl.update();
|
||||
|
||||
}
|
||||
```
|
||||
|
||||
效果->[传送门](https://demo.dengtongyu.com/pages/videocude/)
|
||||
|
||||

|
||||
Reference in new issue
Block a user