所有渲染器都适合纹理吗?

时间:2015-10-14 08:03:58

标签: three.js

因此,场景包括地球在其轴上旋转,月球绕地球旋转,右侧有光源,有助于模拟日食的影响。我认为这很容易,因为我们之前已经完成了阴影和转换,但我遇到了问题。

在我们的模板中,我们在顶部有以下内容:

IF @@ERROR <> 0 
    BEGIN
        RETURN 0;
    END
ELSE
    BEGIN            
        RETURN 1;
    END;

我的问题是,当我这样离开时,聚光灯不会出现在场景中。但是,正如警告的那样,如果我激活// For the assignment where a texture is required you should // deactivate the Detector and use ONLY the CanvasRenderer. There are some // issues in using waht are called Cross Domain images for textures. You // can get more details by looking up WebGL and CORS using Google search. // if ( Detector.webgl ) // var renderer = new THREE.WebGLRenderer(); // else var renderer = new THREE.CanvasRenderer(); ,纹理将无法正常工作。

但我需要纹理和聚光灯。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

你自己很困惑。 Detector.webgl仅在浏览器上检查WebGL的支持。如果当前浏览器支持WebGL和CanvasRenderer(如果没有WebGL支持),则下面的代码使用WebGL渲染器。

   if ( Detector.webgl )
       var renderer = new THREE.WebGLRenderer();
     else
       var renderer = new THREE.CanvasRenderer();

使用WebGL - 加载纹理将遇到跨域问题。最好在Web服务器或本地服务器上执行代码,例如Windows的http://www.wampserver.com/en/或Mac的https://www.mamp.info/en/。或者像https://github.com/tapio/live-server这样的npm-package。

据我所知,CSSCanvasRender不支持阴影。我会请你的任务负责人澄清一下。