摘要:使用將能夠利用硬件加速從而提高渲染性能。這個渲染器比渲染器有更好的性能。聲明構(gòu)造器是一個可選對象,包含用來定義渲染器行為的屬性。所用的渲染上下文對象。設(shè)置背景色和背景色透明度渲染器渲染器不使用來繪制場景,而使用相對較慢的。
渲染器api WebGL渲染器(WebGLRenderer)
WebGL渲染器使用WebGL來繪制您的場景,如果您的設(shè)備支持的話。使用WebGL將能夠利用GPU硬件加速從而提高渲染性能。這個渲染器比 Canvas渲染器(CanvasRenderer) 有更好的性能。
聲明var renderer = new THREE.WebGLRenderer();構(gòu)造器(Constructor)
WebGLRenderer( parameters )
parameters 是一個可選對象,包含用來定義渲染器行為的屬性。當(dāng)沒有設(shè)置該參數(shù)時,將使用默認(rèn)值。
canvas: 一個用來繪制輸出的 Canvas 對象。
context: 所用的 渲染上下文(RenderingContext) 對象。
precision : 著色器的精度。可以是"highp", "mediump" 或 "lowp". 默認(rèn)為"highp",如果設(shè)備支持的話。
alpha : 是否可以設(shè)置背景色透明 , 默認(rèn)為 false.
premultipliedAlpha — Boolean, 默認(rèn)為 true.
antialias: 是否開啟反鋸齒, 默認(rèn)為 false.
stencil — Boolean, 默認(rèn)為 true.
preserveDrawingBuffer: 是否保存繪圖緩沖, 默認(rèn)為 false.
depth — Boolean, 默認(rèn)為 true.
logarithmicDepthBuffer — Boolean, 默認(rèn)為 false.
var renderer=new THREE.WebGLRenderer({ antialias:true, //是否開啟反鋸齒 precision:"highp", //著色精度選擇 alpha:true, //是否可以設(shè)置背景色透明 premultipliedAlpha:false, stencil:false, preserveDrawingBuffer:true, //是否保存繪圖緩沖 maxLights:1 //maxLights:最大燈光數(shù) });常用屬性 domElement
一個用來繪制輸出的 Canvas 對象。
該對象通過構(gòu)造函數(shù)中的渲染器所自動創(chuàng)建(如果沒有提供的話);你只需要將其添加到您的網(wǎng)頁中。
渲染器最重要的方法,使用相機渲染一個場景。
render ( scene, camera, renderTarget, forceClear )
如果指定了renderTarget,則渲染到上面,否則渲染到通常的canvas上。
如果forceClear為true, 顏色、深度和模板繪制緩沖將在渲染前被清除,即使渲染器的autoClear屬性為false。
即使forceClear被設(shè)置為true,我們?nèi)匀豢梢酝ㄟ^設(shè)置.autoClearColor, .autoClearStencil 或 .autoClearDepth 屬性為false來阻止特定的緩存被清除。
調(diào)整輸出canvas尺寸(寬度,高度),要考慮設(shè)備像素比,并且設(shè)置視口(viewport)以匹配該尺寸。如果設(shè)置 updateStyle 為true,則顯式添加像素到輸出canvas的樣式中。
var renderer = new THREE.WebGLRenderer(); renderer.setSize(window.innerWidth,window.innerHeight); document.body.appendChild(renderer.domElement);setClearColor ( color, alpha )
設(shè)置清除的顏色和透明度。
// 創(chuàng)建一個具有紅色背景的渲染器 var renderer = new THREE.WebGLRenderer(); renderer.setSize( 200, 100 ); renderer.setClearColor( 0xff0000 );應(yīng)用
//開啟Three.js渲染器:WebGLRenderer //聲明全局變量 var renderer; function initThree(){ //獲取容器的寬高 width = document.getElementById("canvas3d").clientWidth; //獲取畫布「canvas3d」的寬 height = document.getElementById("canvas3d").clientHeight; //獲取畫布「canvas3d」的高 //聲明渲染器對象:WebGLRenderer renderer=new THREE.WebGLRenderer({ antialias:true, //是否開啟反鋸齒 precision:"highp", //著色精度選擇 alpha:true, //是否可以設(shè)置背景色透明 premultipliedAlpha:false, stencil:false, preserveDrawingBuffer:true, //是否保存繪圖緩沖 maxLights:1 //maxLights:最大燈光數(shù) }); //指定渲染器的高寬(和畫布框大小一致) renderer.setSize(width, height ); //追加canvas 元素到canvas3d元素中。 document.getElementById("canvas3d").appendChild(renderer.domElement); //設(shè)置canvas背景色(clearColor)和背景色透明度(clearAlpha) renderer.setClearColor(0x000000,0.5); }Canvas渲染器(CanvasRenderer)
Canvas渲染器不使用WebGL來繪制場景,而使用相對較慢的Canvas 2D Context API。兼容性高
var renderer = new THREE.CanvasRenderer();
檢查瀏覽器兼容性
function webglAvailable() { try { var canvas = document.createElement( "canvas" ); return !!( window.WebGLRenderingContext && ( canvas.getContext( "webgl" ) || canvas.getContext( "experimental-webgl" ) ) ); } catch ( e ) { return false; } } if ( webglAvailable() ) { renderer = new THREE.WebGLRenderer(); } else { renderer = new THREE.CanvasRenderer(); }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/94016.html
摘要:和使用的坐標(biāo)系是右手坐標(biāo)系。與都是指到照相機位置在深度平面的位置,而照相機不應(yīng)該拍攝到其后方的物體,因此這兩個值應(yīng)該均為正值。 Three.js是一個3D JavaScript庫。Three.js封裝了底層的圖形接口,使得程序員能夠在無需掌握繁冗的圖形學(xué)知識的情況下,也能用簡單的代碼實現(xiàn)三維場景的渲染。 一個典型的Three.js程序至少要包括渲染器(Renderer)、場景(Sc...
摘要:學(xué)習(xí)學(xué)習(xí)筆記介紹是一種繪圖協(xié)議,它把和結(jié)合在一起,通過增加的一個綁定,可以為提供硬件加速渲染。環(huán)境搭建為了以后的學(xué)習(xí)方便,首先是搭建一個萬能框架,所有的開發(fā)都可以在此框架上進(jìn)行。 WebGL學(xué)習(xí)----Three.js學(xué)習(xí)筆記(1) webgl介紹 WebGL是一種3D繪圖協(xié)議,它把JavaScript和OpenGL ES 2.0結(jié)合在一起,通過增加OpenGL ES 2.0的一個Ja...
摘要:入門這部分內(nèi)容的目標(biāo)是簡單地介紹,我們首先講如何用來實現(xiàn)一個旋轉(zhuǎn)的立方體。具體的實例將會給出,以防你卡住或者需要幫助。透視投影照相機的構(gòu)造函數(shù)是,其中是可視角度為,通常是容器的寬高比是近斷距離,是遠(yuǎn)端距離。 入門 這部分內(nèi)容的目標(biāo)是簡單地介紹three.js,我們首先講如何用three.js來實現(xiàn)一個旋轉(zhuǎn)的立方體。具體的實例將會給出,以防你卡住或者需要幫助。 在html文件中引入thr...
摘要:學(xué)習(xí)筆記使用粒子系統(tǒng)模擬時空隧道本例的運行結(jié)果如圖時空隧道演示地址的粒子系統(tǒng)的粒子系統(tǒng)主要是依靠精靈體來創(chuàng)建的,要實現(xiàn)中的粒子系統(tǒng)創(chuàng)建,一般有兩種方式。 WebGL three.js學(xué)習(xí)筆記 使用粒子系統(tǒng)模擬時空隧道 本例的運行結(jié)果如圖:showImg(https://img-blog.csdnimg.cn/20190426222855492.png?x-oss-process=ima...
閱讀 3688·2021-11-19 09:56
閱讀 1468·2021-09-22 15:11
閱讀 1127·2019-08-30 15:55
閱讀 3371·2019-08-29 14:02
閱讀 2911·2019-08-29 11:07
閱讀 433·2019-08-28 17:52
閱讀 3172·2019-08-26 13:59
閱讀 436·2019-08-26 13:53