Skip to content

案例展示

水波纹材质

<template>
  <div id="TO"></div>
</template>

<script setup>
import { onMounted } from 'vue';

onMounted(() => {
  let TO = new ThingOrigin("fileModel", document.getElementById("TO"), {
    helper: {
      axes: {
        active: false,
      },
      grid: {
        active: false,
      },
    }
  })

  const waterGeometry = TO.model.initPlaneGeometry(100, 100);

  let water = TO.material.setWaterSkin(
    waterGeometry,
    100,
    100,
    `${import.meta.env.BASE_URL}img/materials/waternormals.jpg`
  );
  water.rotation.x = -Math.PI / 2;
  TO.scene.add(water);

  TO.toUpdate.material.push(water.material);

});


</script>

<style scoped>
#TO {
  width: 100%;
  height: 400px;
  position: relative;
}
</style>

API 介绍

material.setWaterSkin

方法签名返回值描述
setWaterSkin(geometry: PlaneGeometry, width: number, height: number, url: string, waterColor?: string | number | Color, sunDirection?: Vector3, sunColor?: string | number | Color)Water给模型设置水波纹材质(需要将色调映射设置为 NoToneMapping)

参数说明:

参数名类型是否必选描述
geometryPlaneGeometry模型
widthnumber-
heightnumber-
urlstring-
waterColorstring | number | Color水颜色
sunDirectionVector3太阳方向
sunColorstring | number | Color太阳颜色