BabylonJs系列-6.纹理

643 阅读1分钟

BabylonJs系列-6.纹理

纹理可以修改物体本身的颜色,或者给物体覆盖图片,添加一些透明/透视效果。这里只列举一些简单的API,可以自行尝试效果。
todo 添加demo

API

  • wireframe,镂空
  • diffuseColor,直接给材质赋值颜色,这个是上一节的内容
  • alpha,直接给材质赋值透明度
  • diffuseTexture,漫反射纹理,加载一个new BABYLON.Texture就可以了,要是静态图片
  • diffuseTexture.vOffset,垂直翻转百分比
  • diffuseTexture.uOffset,水平翻转百分比
  • iffuseTexture.hasAlpha,是否有透明度
  • backFaceCulling,是否背景切除

使用

纹理一般是配合材质一起使用,将纹理添加到材质,材质再应用到模型上面

1. 镂空效果

需要配合有骨骼的模型,使用该API会显示模型骨骼。

var materialSphere1 = new BABYLON.StandardMaterial("texture1", scene);
materialSphere1.wireframe = true;
2. 透明效果
var materialSphere1 = new BABYLON.StandardMaterial("texture1", scene);
materialSphere1.alpha = 0.1;
3. 覆盖图片

使用Babylon自带的Texture可以加载图片,再将图片添加到材质上

var materialSphere3 = new BABYLON.StandardMaterial("texture3", scene);
materialSphere3.diffuseTexture = new BABYLON.Texture(图片url, scene);
4. 图片纹理的位移
var materialSphere4 = new BABYLON.StandardMaterial("texture4", scene);
materialSphere4.diffuseTexture = new BABYLON.Texture(图片地址, scene);
materialSphere4.diffuseTexture.vOffset = 0.5;//Vertical offset of 50%
materialSphere4.diffuseTexture.uOffset = 0.5;//Horizontal offset of 50%
5. 图片纹理使用透明

这个挺有用的,如果threejs例子中有图片透明的效果,换到Babylon就是这个配置。

var materialSphere5 = new BABYLON.StandardMaterial("texture5", scene);
materialSphere5.diffuseTexture = new BABYLON.Texture("http://10.101.16.11:5000/static/file/test2.png", scene);
materialSphere5.diffuseTexture.hasAlpha = true;//图片透明计算
6.png纹理+背面展示
var materialSphere6 = new BABYLON.StandardMaterial("texture6", scene);
materialSphere6.diffuseTexture = new BABYLON.Texture(图片地址, scene);
materialSphere6.diffuseTexture.hasAlpha = true;//Have an alpha
materialSphere6.backFaceCulling = false;//Show all the faces of the element