তিন.জেএস সহ স্বচ্ছ পটভূমি


113

কোডটি কাজ করে তবে থ্রি.জেএস সহ ক্যানভাসে স্বচ্ছ পটভূমি সেট করতে আমার একটি সমস্যা হচ্ছে। আমি ব্যবহার করি:

Background.renderer.setClearColor(0xffffff, 0);

তবে এরপরে পটভূমিটি কালো হয়ে যায়। আমি কীভাবে এটিকে স্বচ্ছ হতে পরিবর্তন করব?


কোড:

   var camera, scene, renderer;
   var mouseX = 0, mouseY = 0;
   var p;

   var windowHalfX = site.Width / 2;
   var windowHalfY = site.Height / 2;

   Background.camera = new THREE.PerspectiveCamera( 35, site.Width / site.Height, 1, 2000 );
   Background.camera.position.z = 300;
   //camera.position.y = 200;

   // scene
   Background.scene = new THREE.Scene();

   // texture
   var manager = new THREE.LoadingManager();
   manager.onProgress = function ( item, loaded, total ) {
      console.log('webgl, twice??');
      //console.log( item, loaded, total );
   };


   // particles
   var p_geom = new THREE.Geometry();
   var p_material = new THREE.ParticleBasicMaterial({
      color: 0xFFFFFF,
      size: 1
   });

   // model
   var loader = new THREE.OBJLoader( manager );
   loader.load( site.base_url + '/assets/models/head.obj', function ( object ) {

      object.traverse( function ( child ) {

         if ( child instanceof THREE.Mesh ) {

            // child.material.map = texture;

            var scale = 6;

            $(child.geometry.vertices).each(function() {
               p_geom.vertices.push(new THREE.Vector3(this.x * scale, this.y * scale, this.z * scale));
            })
         }
      });

      Background.scene.add(p)
   });

   p = new THREE.ParticleSystem(
      p_geom,
      p_material
   );

   Background.renderer = new THREE.WebGLRenderer();
   Background.renderer.setSize( site.Width, site.Height );
   Background.renderer.setClearColor(0xffffff, 0);

   $('.particlehead').append(Background.renderer.domElement);
   $('#content').on('mousemove', onDocumentMouseMove);
   site.window.on('resize', onWindowResize);

   function onWindowResize() {
      windowHalfX = site.Width / 2;
      windowHalfY = site.Height / 2;
      //console.log(windowHalfX);

      Background.camera.aspect = site.Width / site.Height;
      Background.camera.updateProjectionMatrix();

      Background.renderer.setSize( site.Width, site.Height );
   }

   function onDocumentMouseMove( event ) {
      mouseX = ( event.clientX - windowHalfX ) / 2;
      mouseY = ( event.clientY - windowHalfY ) / 2;
      //console.log(mouseX)
   }

   Background.animate = function() { 

      //console.log('animate2');
      Background.ticker = TweenMax.ticker;
      Background.ticker.addEventListener("tick", Background.animate);

      render();
   }

   function render() {
      Background.camera.position.x += ( (mouseX * .5) - Background.camera.position.x ) * .05;
      Background.camera.position.y += ( -(mouseY * .5) - Background.camera.position.y ) * .05;

      Background.camera.lookAt( Background.scene.position );

      Background.renderer.render( Background.scene, Background.camera );
   }

   render();

উত্তর:


232

আপনি যদি তিন.জেএসে স্বচ্ছ পটভূমি চান তবে আপনার কনস্ট্রাক্টরের কাছে alphaপ্যারামিটারে পাস হওয়া দরকার WebGLRenderer

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

আপনি ডিফল্ট মানটিতে পরিষ্কার রঙ ছেড়ে দিতে পারেন।

renderer.setClearColor( 0x000000, 0 ); // the default

three.js r.71


@ ওয়েস্টল্যাংলে এই কৌশলটি ব্যবহার করার সময় কি আমাদের একটি পারফরম্যান্স ড্রপ দেখতে হবে? এটা লক্ষণীয়?
tfrascaroli

1
@tfrascaroli আপনি কি দেখেছেন?
ওয়েস্টল্যাংলে

আমি চেষ্টা করার আগে মন্তব্য পোস্ট। এখন যেহেতু আমি এটি চেষ্টা করেছি, এটি দেখে মনে হচ্ছে না, তবে আমি যে জ্যামিতিটি দিচ্ছি তা সত্যিই ছোট। আমি জিজ্ঞাসা করছিলাম কারণ আমি বড় প্রকল্পগুলিতে এটি ব্যবহার করার পরিকল্পনা করছিলাম। যাইহোক, এটির কোনও প্রভাব আছে বলে মনে হয় না বা কমপক্ষে আমার প্রকল্পের মধ্যেও এটি সম্পর্কিত নয়।
tfrascaroli

2
এটিকে বলা হয় সলিটেশন। "কেবল এই কোড লাইনটি পেস্ট করুন"। থ্রি জেজে প্রায়শই এই জাতীয় স্মিথ সহজে খুঁজে পাওয়া যায় না। ধন্যবাদ ভাই
মেসেরবিল

@ ওয়েস্টল্যাংলে কীভাবে আমি ছায়ার প্রভাব সহ পটভূমি চিত্র সেট করতে পারি? VolumetericLightShader stackoverflow.com/questions/46864037/...
আন্ডারস্কোর
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.