babylonJs 水材质

babylonjs 3.0(及以上提供了水材质),我们可以通过代码实现特别好看的水材质.

  1. 需要单独导入特殊材质文件,materials.js(最后会提供源代码)
<script src="./babylon.js"></script>
<script src="./babylonjs.materials.js"></script>
  1. 创建基础场景
let engine = new BABYLON.Engine(canvas, true)let scene = new BABYLON.Scene(engine)let camera = new BABYLON.ArcRotateCamera('ArcRotateCamera', 0, 1, 10, new BABYLON.Vector3(0, 0, 0), scene)camera.setTarget(BABYLON.Vector3.Zero())camera.attachControl(canvas, false)camera.lowerRadiusLimit = 10let light = new BABYLON.HemisphericLight('light1', new BABYLON.Vector3(0, 1, 0), scene)let ground = BABYLON.Mesh.CreateGround('ground1', 6, 6, 2, scene)engine.runRenderLoop(function () {scene.render()
})window.addEventListener("resize", function () {engine.resize()
})
  1. 生成一个ground,作为水底
let ground = BABYLON.Mesh.CreateGround('ground1', 20, 20, 2, scene)let groundMaterial=new BABYLON.StandardMaterial("groundMaterial",scene)
groundMaterial.diffuseTexture=new BABYLON.Texture("1.jpg",scene)
ground.material=groundMaterial

  1. 生成水面片,并创建水材质

let water=BABYLON.Mesh.CreateGround('ground1', 20, 20, 2, scene)//生成水let waterialMaterial=new BABYLON.WaterMaterial("WaterMaterial",scene)water.material=waterialMaterial

  1. 水材质的样子有点奇怪,接下来我们来调整它的属性
 //设置水面的纹理贴图waterialMaterial.bumpTexture = new BABYLON.Texture("waterbump.png", scene)//设置风力,决定了水波运动速度waterialMaterial.windForce = 30//设置风向xwaterialMaterial.windDirection.x=0.2//设置风向ywaterialMaterial.windDirection.y=0.3//设置水的波浪高度waterialMaterial.waveHeight =1//设置水纹理高度waterialMaterial.bumpHeight = 1//设置波浪的长度waterialMaterial.waveLength = 1//设置波浪运行速度waterialMaterial.waveSpeed=30//设置水的颜色waterialMaterial.waterColor=new BABYLON.Color3(0,0,0.5)waterialMaterial.colorBlendFactor=0//增加地板到水材质中,才能正常显示水waterialMaterial.addToRenderList(ground)waterialMaterial.material = water
  1. 展示效果

  2. 全部代码

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>template</title><style>* {padding: 0;margin: 0;}body {overflow: hidden;}canvas {width: 100vw;height: 100vh;}</style>
</head><body><canvas id="canvas"></canvas></body></html><script src="./babylon.js"></script>
<script src="./babylonjs.materials.js"></script><script>let engine = new BABYLON.Engine(canvas, true)let scene = new BABYLON.Scene(engine)let camera = new BABYLON.ArcRotateCamera('ArcRotateCamera', 0, 1, 500, new BABYLON.Vector3(0, 0, 0), scene)camera.setTarget(BABYLON.Vector3.Zero())camera.attachControl(canvas, false)camera.lowerRadiusLimit = 10let light = new BABYLON.HemisphericLight('light1', new BABYLON.Vector3(0, 1, 0), scene)engine.runRenderLoop(function () {scene.render()})window.addEventListener("resize", function () {engine.resize()})//生成水底let ground = BABYLON.Mesh.CreateGround('ground1', 512, 512, 32, scene)//生成水底材质let groundMaterial = new BABYLON.StandardMaterial("groundMaterial", scene)groundMaterial.diffuseTexture = new BABYLON.Texture("1.jpg", scene)ground.material = groundMaterial//生成水面片let water = BABYLON.Mesh.CreateGround('ground1', 512, 512, 32, scene)//生成水let waterialMaterial = new BABYLON.WaterMaterial("WaterMaterial", scene)water.material = waterialMaterial//设置水面的纹理贴图waterialMaterial.bumpTexture = new BABYLON.Texture("waterbump.png", scene)//设置风力,决定了水波运动速度waterialMaterial.windForce = 30//设置风向xwaterialMaterial.windDirection.x=0.2//设置风向ywaterialMaterial.windDirection.y=0.3//设置水的波浪高度waterialMaterial.waveHeight =1//设置水纹理高度waterialMaterial.bumpHeight = 1//设置波浪的长度waterialMaterial.waveLength = 1//设置波浪运行速度waterialMaterial.waveSpeed=30//设置水的颜色waterialMaterial.waterColor=new BABYLON.Color3(0,0,0.5)waterialMaterial.colorBlendFactor=0//增加地板到水材质中,才能正常显示水waterialMaterial.addToRenderList(ground)waterialMaterial.material = water</script>

码云地址 https://gitee.com/wyYym/babylon

联系方式 QQ:1684430131

babylonJs 水材质相关推荐

  1. UE4材质篇--水材质

    一个重要矢量的表达式-Fresnel 定义:菲涅尔(Fresnel) 表达式根据表面法线与摄像机方向的标量积来计算衰减.当表面法线正对着摄像机时,输出值为0.当表面法线垂直于摄像机时,输出值为1.结果 ...

  2. 虚幻引擎水材质制作_UE5

    ps:先把之前记录的扔上来,事后再补充和整理. 水材质 法线 颜色:菲涅尔 深度 模拟法线:通过点乘模拟光影效果叠加在颜色上 勾选直射光源的大气太阳光选项后 光的方向可以转换为 节点中的向量 点乘顶点 ...

  3. 我的世界手机版javaui材质包_VortexShader1.0水材质包下载_我的世界VortexShader1.0水模组材质包下载 v1.0.0.35545...

    水材质包是一款第一人称视角的模拟类游戏,玩家们能够来尝试各种不同的玩法,让你在游戏中创造各种各样不同的景观.游戏中玩家们可以面对许许多多有趣的生物进行互动,也能够逐渐探索这个世界背后的秘密. 水材质包 ...

  4. 【UE】简易的水材质

    引擎版本:4.26 效果 步骤 1. 创建一个材质,命名为"M_Water" 2. 打开"M_Water",将混合模式设为半透明, 光照模式设为表面半透明体积, ...

  5. 【Babylonjs】材质

    五.材质 使用材质可以使你能够覆盖物体网格的颜色和纹理,它们需要在被光线照射下才能被看到.一种材质可以用来覆盖你所希望改变的物体的网格. 对光线的反应 不管材质是颜色还是质地,它对光的反应都有不同的方 ...

  6. cr材质库怎么安装_cr5.0安装没有材质库

    回答: sketchup材质库怎么安装?sketchup在使用软件的过程中,常常因为设计的需要,需要导入原来软件中没有的材质库,比如:亮光木材.抛光砖以及磨砂玻璃等材质库.那么,sketchup材质库 ...

  7. 室外建筑表现3Dmax和vray常用材质参数设置

    一. 木纹材质调整方法: 1. 木纹材质的肌理调整: A.使用过度色通道贴图后加入凹凸通道贴图,使木纹有凹凸感,肌理更明显凹凸通道强度通常为30% B.材质球的高光强度(specular level: ...

  8. A3D8的水–WaterMaterial for Alternativa3D 8

    2019独角兽企业重金招聘Python工程师标准>>> 更多内容可看:cls技术站 国外牛人 写了一个 Alternativa3D 8 的水材质, 本人一向秉着"能偷懒的时 ...

  9. Windows 8 Directx 开发学习笔记(九)材质定义及混合光照效果实现

    在真实环境中,同一个物体在不同光源照射下的颜色并不一样,因为物体本身并没有颜色,而是它会反射不同颜色的光.物体对不同颜色光的吸收率.反射率,加上光泽度.透明度等其他物理属性组合在一起,定义了这个物体的 ...

最新文章

  1. 写底部样式一定要加的属性
  2. Day 8 面向对象
  3. Java socket中关闭IO流后,发生什么事?(以关闭输出流为例)
  4. eclipse中anroid adk添加
  5. 电磁波传播相位是否会变化_相位常数β与波数k是一回事吗?
  6. windows笔记-【内核对象线程同步】概述
  7. 802.1D生成树STP协议
  8. java中String的特点,字面对象和构造方法的区别
  9. java打印出日历_java控制台打印本月的日历
  10. 树莓派安装OpenCV2教程 (详细教程)
  11. web前端课程设计——K.X的博客
  12. MyBatis中foreach传入参数为Poji装饰类,list、数组的不同写法
  13. 欧洲花费210亿欧元新建大型对撞机,我国要跟进吗?
  14. GPRS PDP APN
  15. python自相关函数提取基音周期_基音周期的提取
  16. 【活动回顾】机智云亮相2020中国移动全球伙伴合作大会
  17. MQ 消息丢失、重复、积压问题,如何解决?
  18. 计算机键盘句号,句号怎么打_键盘句号怎么打_句号怎么打在电脑上-Guide信息网...
  19. 第五天 01-ftp服务器使用及arp欺骗获取ftp账号密码
  20. Python爬取天猫店铺的企业名1:根据店铺名获得店铺链接

热门文章

  1. Tars-C++服务的CI/CD
  2. python 工作流workflow_基于BPMN2.0的工作流(Workflow)
  3. php libjpeg,Linux 安装php-5.2.17出现 libjpeg.(a|so) not found
  4. Git命令教程(自己整理的知识)
  5. 进制转换器——章节实验作业(C语言链栈)
  6. axure文件如何加密_最全产品设计工具整理,你都掌握了吗?
  7. 护卫神·云查杀系统V4.0-安全检测部分
  8. html+css+js仿写星巴克网页
  9. java eden 1 eden 2_java.lang.OutOfMemoryError: PermGen space
  10. 被讨厌的勇气:“自我启发之父”阿德勒的哲学课