Próbowałem zmienić domyślny kolor tła mojego płótna z czarnego na przezroczysty / dowolny inny kolor - ale bez powodzenia.
Mój HTML:
<canvas id="canvasColor">
Mój CSS:
<style type="text/css">
#canvasColor {
z-index: 998;
opacity:1;
background: red;
}
</style>
Jak widać w poniższym przykładzie online, mam dołączoną animację do płótna, więc nie mogę po prostu wykonać krycia: 0; na dowodzie tożsamości.
Podgląd na żywo: http://devsgs.com/preview/test/particle/
Jakieś pomysły, jak nadpisać domyślną czerń?
function init() {
twoje płótno jest czerwone! Three.js zmienia go na czarny zsetClearColorHex
!Odpowiedzi:
Natknąłem się na to, kiedy zacząłem używać three.js. W rzeczywistości jest to problem z javascriptem. Obecnie masz:
w twojej
threejs
funkcji init. Zmień to na:Aktualizacja: Dzięki HdN8 za zaktualizowane rozwiązanie:
Aktualizacja # 2: Jak wskazał WestLangley w innym, podobnym pytaniu - musisz teraz użyć poniższego kodu podczas tworzenia nowej instancji WebGLRenderer w połączeniu z
setClearColor()
funkcją:Aktualizacja # 3: Mr.doob zwraca uwagę, że ponieważ
r78
możesz alternatywnie użyć poniższego kodu, aby ustawić kolor tła sceny:źródło
r78
możesz po prostu to zrobićscene.background = new THREE.Color( 0xff0000 );
Pełna odpowiedź: (testowane z r71)
Aby ustawić kolor tła, użyj:
Jeśli chcesz mieć przezroczyste tło, musisz najpierw włączyć alfa w swoim rendererze:
Zobacz dokumentację, aby uzyskać więcej informacji.
źródło
Ze względu na przejrzystość jest to również obowiązkowe:
renderer = new THREE.WebGLRenderer( { alpha: true } )
za pomocą Przezroczyste tło z three.js.źródło
Odkryłem, że kiedy tworzyłem scenę za pomocą edytora three.js, musiałem nie tylko użyć poprawnego kodu odpowiedzi (powyżej), aby ustawić renderer z wartością alfa i wyraźnym kolorem, musiałem przejść do aplikacji .json plik i znaleźć atrybut „tle” „scenę” obiekt i ustawić go na adres:
"background: null"
.Eksport z edytora Three.js miał pierwotnie ustawione na „tło”: 0
źródło
W 2020 roku przy użyciu r115 działa bardzo dobrze z tym:
const renderer = new THREE.WebGLRenderer({ alpha: true }); const scene = new THREE.Scene(); scene.background = null;
źródło
Chciałbym również dodać, że jeśli używasz edytora three.js, nie zapomnij ustawić koloru tła na wyczyść również w pliku index.html.
źródło