【问题标题】:three.js fog not rendering?三.js雾不渲染?
【发布时间】:2019-12-12 23:40:58
【问题描述】:

我正在尝试为我的场景添加雾,但它不会渲染?

我已经进行了一些搜索,但我的问题似乎没有答案。这是问题的截图

这是代码演示:https://jsfiddle.net/7orbmn4t/

var scene = new THREE.Scene();
scene.background = new THREE.Color(0xcce0ff);
scene.fog = new THREE.Fog(0xff0000, 10, 500);

var camera = new THREE.PerspectiveCamera(
  90,
  window.innerWidth / window.innerHeight,
  0.1,
  1000
);

camera.rotation.x = 0.7853;
camera.position.set(0, 0, 15);
var renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);

scene.add( new THREE.AmbientLight( 0xffffff ) );

var geometry = new THREE.PlaneBufferGeometry(100, 100, 0);
var material = new THREE.MeshLambertMaterial({
  color: 0x898989,
  fog: true
});
var plane = new THREE.Mesh(geometry, material);
scene.add(plane);

renderer.render(scene, camera);
document.body.appendChild(renderer.domElement);

【问题讨论】:

  • 灰色部分是指雾吗?它太不透明了,对吗?
  • 感谢您的回复。灰色部分不是雾,它是一个平面物体

标签: javascript three.js


【解决方案1】:

材质中的fog 标志仅指定材质是否受到雾的影响material.fog

它不会产生雾。为此,您需要先创建雾:Fog

【讨论】:

  • 感谢您的回复!我已经添加了雾:scene.fog = new THREE.Fog(0xff0000, 10, 500);
  • 抱歉,我没看到。将雾更改为 new THREE.Fog(0xff0000, 10, 50); 对我来说有所不同:jsfiddle.net/tb91dnok
  • 谢谢 :) 它奏效了。一定是因为雾范围
猜你喜欢
  • 2013-10-17
  • 2012-08-10
  • 2013-02-18
  • 2020-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-01
相关资源
最近更新 更多