Changing three.js background to transparent or other color

后端 未结 6 1203
误落风尘
误落风尘 2020-11-28 02:55

I\'ve been trying to change what seems to be the default background color of my canvas from black to transparent / any other color - but no luck.

My HTML:

         


        
相关标签:
6条回答
  • 2020-11-28 03:32

    I came across this when I started using three.js as well. It's actually a javascript issue. You currently have:

    renderer.setClearColorHex( 0x000000, 1 );
    

    in your threejs init function. Change it to:

    renderer.setClearColorHex( 0xffffff, 1 );
    

    Update: Thanks to HdN8 for the updated solution:

    renderer.setClearColor( 0xffffff, 0);
    

    Update #2: As pointed out by WestLangley in another, similar question - you must now use the below code when creating a new WebGLRenderer instance in conjunction with the setClearColor() function:

    var renderer = new THREE.WebGLRenderer({ alpha: true });
    

    Update #3: Mr.doob points out that since r78 you can alternatively use the code below to set your scene's background colour:

    var scene = new THREE.Scene(); // initialising the scene
    scene.background = new THREE.Color( 0xff0000 );
    
    0 讨论(0)
  • 2020-11-28 03:39

    I found that when I created a scene via the three.js editor, I not only had to use the correct answer's code (above), to set up the renderer with an alpha value and the clear color, I had to go into the app.json file and find the "Scene" Object's "background" attribute and set it to: "background: null".

    The export from Three.js editor had it originally set to "background": 0

    0 讨论(0)
  • 2020-11-28 03:40

    In 2020 using r115 it works very good with this:

    const renderer = new THREE.WebGLRenderer({ alpha: true }); const scene = new THREE.Scene(); scene.background = null;

    0 讨论(0)
  • 2020-11-28 03:45

    I'd also like to add that if using the three.js editor don't forget to set the background colour to clear as well in the index.html.

    background-color:#00000000
    
    0 讨论(0)
  • 2020-11-28 03:47

    For transparency, this is also mandatory: renderer = new THREE.WebGLRenderer( { alpha: true } ) via Transparent background with three.js

    0 讨论(0)
  • 2020-11-28 03:56

    A full answer: (Tested with r71)

    To set a background color use:

    renderer.setClearColor( 0xffffff ); // white background - replace ffffff with any hex color
    

    If you want a transparent background you will have to enable alpha in your renderer first:

    renderer = new THREE.WebGLRenderer( { alpha: true } ); // init like this
    renderer.setClearColor( 0xffffff, 0 ); // second param is opacity, 0 => transparent
    

    View the docs for more info.

    0 讨论(0)
提交回复
热议问题