首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >物体上的光反射盘3-js

物体上的光反射盘3-js
EN

Stack Overflow用户
提问于 2017-01-26 13:12:50
回答 1查看 1.6K关注 0票数 0

我正在用三个js创建一个地球场景,除了地球物体表面出现的巨大的令人讨厌的反射盘之外,其他的东西都运行得很好。有什么想法可以删除反射,或者至少在很大程度上减少反射?

照明-

代码语言:javascript
复制
//renderer
    renderer = new THREE.WebGLRenderer( { canvas : spaceCanvas} );
    renderer.setSize( 672, 472 );
    renderer.shadowMap.enabled = true;
    renderer.shadowMap.renderReverseSided = false;
//mainScene
    mainScene = new THREE.Scene();
    mainCamera = new THREE.PerspectiveCamera( 45, window.innerWidth /window.innerHeight, 0.01, 2000 );
    mainCamera.position.z = 2.25;
//Lighting
    var ambLight    = new THREE.AmbientLight( 0x222222 );
    var light   = new THREE.DirectionalLight( 0xffffff, 1 );
    light.position.set(5,3,5);
    light.castShadow = true;
    light.shadow.camera.near = 0.01;
    light.shadow.camera.far = 15;
    light.shadow.camera.fov = 45;
    light.shadow.camera.left = -1;
    light.shadow.camera.right =  1;
    light.shadow.camera.top =  1;
    light.shadow.camera.bottom = -1;
    /*light.shadowCameraVisible = true;*/
    light.shadow.bias = 0.001;
    light.shadow.mapSize.width = 672;
    light.shadow.mapSize.height = 472;
    mainScene.add(light, ambLight);

地球物体-

代码语言:javascript
复制
function CreateEarth(){
earth = new THREE.Object3D();
THREE.crossOrigin = "";
    var loader = new THREE.TextureLoader();
    var colorMap = loader.load("img/bodies/earth/colorMap.jpg");
    var bumpMap = loader.load("img/bodies/earth/bump.jpg");
    var specMap = loader.load("img/bodies/earth/specular.jpg");
    var earthGeometry = new THREE.SphereGeometry( 0.5, 32, 32 );
    var earthMaterial = new THREE.MeshPhongMaterial({
        map : colorMap,
        bumpMap : bumpMap,
        bumpScale : 0.05,
        specularMap : specMap,
        specular : new  THREE.Color("grey"),
        shininess: 25
    });
    earthMesh = new THREE.Mesh(earthGeometry, earthMaterial );
    earth.add(earthMesh);

function CreateEarthAtmosphere(){
    var loader = new THREE.TextureLoader();
    var cloudTexColorMap = loader.load("img/bodies/earth/cloudTexture.png");

    var atmosphereGeometry = new THREE.SphereGeometry(0.51, 32, 32);
    var atmosphereMaterial = new THREE.MeshPhongMaterial({
            map : cloudTexColorMap,
            /*alphaMap : cloudTexTransMap,*/
            side : THREE.DoubleSide,
            opacity : 0.5,
            transparent : true,
            depthWrite : false
    });
    atmosphereMesh = new THREE.Mesh(atmosphereGeometry, atmosphereMaterial);
    earthMesh.add(atmosphereMesh)
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-26 13:20:04

创建地球材质对象时,shininess: 25值可能会影响其反光度。

代码语言:javascript
复制
var earthMaterial = new THREE.MeshPhongMaterial({
        map : colorMap,
        bumpMap : bumpMap,
        bumpScale : 0.05,
        specularMap : specMap,
        specular : new  THREE.Color("grey"),
        shininess: 25 // lower this?

});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41867280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档