式姫で遊ぶ日記

three.js でgltf を読み込むと暗く見える

ただのメモです。
three.jsに限った話ではないそうですが、ほかのファイル形式と共存させたい場合は、materialのcolorを1より大きく作り直すのが今のところ手っ取り早くできるかと思います。

もともとシーンに光源、カメラが一緒に入っているかと思いますが例えばここでは削除してあるとして、scene の0番目の子要素に物が入ってるとします。

var gloader = new THREE.GLTFLoader();
gloader.load( loadobj.filePath, function(data){
	var scn = data.scene;
	var obj = scn.children[0];
	for (let i = 0; i < obj.children.length; i++){
	 	var m = new THREE.MeshLambertMaterial(); //必要に応じて変える
		m.copy( obj.children[i].material );
		m.side = THREE.DoubleSide;
		m.opacity = 1;
		m.color.r= 10; //もともと(r,g,b)=(1,1,1)の場合
		m.color.g= 10;
		m.color.b= 10;
		obj.children[i].material = m;
	}
}