如果想让添加到场景中的所有材质属性都同意的话,可以使用scene的 overrideMaterial 属性来覆盖。
示例浏览地址:https://ithanmang.gitee.io/threejs/home/201806/20180625/01-overrideMaterial.html
可以看到本来是随机颜色添加到scene的立方体的颜色和plane 的材质颜色都发生了改变。
示例代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>使用材质覆盖属性</title>
<style>
body {
margin: 0;
overflow: hidden;
}
</style>
<script src="../../libs/jquery-1.9.1.js"></script>
<script src="../../libs/build/three.min.js"></script>
<script src="../../libs/examples/js/libs/dat.gui.min.js"></script>
<script src="../../libs/examples/js/libs/stats.min.js"></script>
</head>
<body>
<div id="WebGL-output"></div>
<div id="Stats-output"></div>
<script>
$(function () {
var stats = initStats();
var scene = new THREE.Scene();
// 定义线性雾,密度随着距离的增加而线性增长
scene.fog = new THREE.Fog( 0xffffff, 0.015, 100);
// 覆盖属性
scene.overrideMaterial = new THREE.MeshLambertMaterial({
color : 0xF39600,wireframe:true });
var camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 0.1, 10000