初始化

This commit is contained in:
dengtongyu committed 2020-11-23 18:59:26 +08:00
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/)
![视频贴图](https://image.dengtongyu.com/blog/2018/01/下载.png)