HTML5   发布时间:2022-04-25  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了html5 – 2d Context vs WebGL用于渲染视频大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我目前正在使用CanvasRenderingContext2D.draw Image()将来自RTC媒体流的视频绘制到画布上.不幸的是,这占用了相当多的cpu资源.

使用WebGLRenderingContext执行此操作会更高效吗? (硬件加速?)如果是,那么一个人如何处理这个问题,最好不要创建一个间的视频元素?

解决方法

如果您已经在3d空间中,则不需要2d Context使用WebGL来渲染视频.

“不幸的是,这占用了相当多的cpu资源” – 我邀请您使用特殊画布来接收rtc媒体流.如果画布在身体的某个地方可见,则需要双倍(cpu)作业.

视频纹理的示例(此代码取自visual-js项目)您需要稍微调整…请参阅:

function VIDEO_TEXTURE (monitor_ ) {

    var ROOT = this;
    ROOT.LOADED = function() {};

    ROOT.video = document.getElementById( monitor_ );
    var DIV_CONTENT_STREAMS = document.getElementById( 'HOLDER_STREAMS' );

    ROOT.videoImage = document.createElement('canvas');
    ROOT.videoImage.id = monitor_ + "IMAGE_";
    ROOT.videoImage.setAttribute('width','640px' );
    ROOT.videoImage.setAttribute('height','480px' );
    DIV_CONTENT_STREAMs.appendChild(ROOT.videoImagE);

    ROOT.videoImageContext = ROOT.videoImage.getContext( '2d' );
    ROOT.videoImageContext.fillStyle = '#0000FF';
    ROOT.videoImageContext.fillRect( 0,ROOT.videoImage.width,ROOT.videoImage.height );

    ROOT.videoTexture = new THREE.Texture( ROOT.videoImage );
    ROOT.videoTexture.minFilter = THREE.LinearFilter;
    ROOT.videoTexture.magFilter = THREE.LinearFilter;

    ROOT.movieMaterial = new THREE.MeshBasicMaterial( {
        map: ROOT.videoTexture,overdraw: true,side: THREE.DoubleSide 
    });
    var movieGeometry = new THREE.PlaneGeometry( 1000,1000,1,1 );
    ROOT.movieScreen = new THREE.Mesh( movieGeometry,ROOT.movieMaterial );

    ROOT.movieScreen.position.set(0,500,1000);
    scene.add(ROOT.movieScreen);

    ROOT.AUTO_updatE = function() {

        //ROOT.video.play();
        if ( ROOT.video.readyState === ROOT.video.HAVE_ENOUGH_DATa ) 
        {
            ROOT.videoImageContext.drawImage( ROOT.video,ROOT.videoImage.height );
            if ( ROOT.videoTexture ) 
                ROOT.videoTexture.needsupdate = true;
        }

    };
    console.log('Video 3d canvas texture created.');
    PROGRAm.AUTO_updatE.push(ROOT);




}


// Usage : 

 VIDEO_MATERIAL = new VIDEO_TEXTURE(tag_element_video_rtc_remotE)

试着看看:
https://maximumroulette.com/welcome/3d_slot/

webGL2开源git project

例子 :
https://maximumroulette.com/webgl2/examples.html

大佬总结

以上是大佬教程为你收集整理的html5 – 2d Context vs WebGL用于渲染视频全部内容,希望文章能够帮你解决html5 – 2d Context vs WebGL用于渲染视频所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。