Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Three.js js模型上的点光源和PlaneGeometry不一样_Three.js - Fatal编程技术网

Three.js js模型上的点光源和PlaneGeometry不一样

Three.js js模型上的点光源和PlaneGeometry不一样,three.js,Three.js,我有PlaneGeometry square和从Blender导出的同一个square在点光源下,PlangeGeometry的行为很奇怪——当点光源真正靠近square的中心时,square会变得更暗。这种情况不会发生在model square上 这是我的几何体材质设置: var map = THREE.ImageUtils.loadTexture( "dirt.png"); map.wrapS = map.wrapT = THREE.RepeatWrapping; map.anisotrop

我有PlaneGeometry square和从Blender导出的同一个square在点光源下,PlangeGeometry的行为很奇怪——当点光源真正靠近square的中心时,square会变得更暗。这种情况不会发生在model square上

这是我的几何体材质设置:

var map = THREE.ImageUtils.loadTexture( "dirt.png");
map.wrapS = map.wrapT = THREE.RepeatWrapping;
map.anisotropy = 16;
var material = new THREE.MeshLambertMaterial( { ambient: 0xbbbbbb, map: map, side: THREE.DoubleSide } );
var object = new THREE.Mesh( new THREE.PlaneGeometry( SQUARE_SIZE, SQUARE_SIZE, 1, 1 ), material );
这是我导入的模型js摘录:

"materials" : [ {
    "DbgColor" : 15658734,
    "DbgIndex" : 0,
    "DbgName" : "dirt",
    "blending" : "NormalBlending",
    "colorAmbient" : [0.800000011920929, 0.800000011920929, 0.800000011920929],
    "colorDiffuse" : [0.800000011920929, 0.800000011920929, 0.800000011920929],
    "colorSpecular" : [0.5, 0.5, 0.5],
    "depthTest" : true,
    "depthWrite" : true,
    "mapDiffuse" : "dirt.png",
    "mapDiffuseWrap" : ["repeat", "repeat"],
    "shading" : "Lambert",
    "specularCoef" : 50,
    "transparency" : 1.0,
    "transparent" : false,
    "vertexColors" : false
}],

我可以使平面几何图形像导入的模型一样工作吗?

这里解释了发生这种情况的原因:

你有两个选择:

  • 改用
    MeshPhongMaterial
    ,或
  • 增加几何体的细分,如下所示:

    新的三个平面几何体(正方形,正方形,10,10)

  • 第一个选择是更好的


    three.js r.66

    phong比lambert消耗的CPU多吗?不,稍微多消耗一点GPU。