2016-10-06 1 views
2

Img를 3D webgl 캔버스 응용 프로그램의 배경에 추가하려고 시도 중입니다. 그러나 작동하지 않는 이유가 무엇인지, 놓친 것이 있습니까? 필요한 모든 초기화 단계가 있다고 생각합니다.background img for canvas webgl

initBkgnd(); 
    gl.clearColor(0.0, 0.0, 0.0, 1.0); 
    gl.enable(gl.DEPTH_TEST); 
    tick(); 


function tick() { 
    requestAnimFrame(tick); 
    drawScene(); 
    initBkgnd(); 
    animate(); 
} 

function initBkgnd() { 
    backTex = gl.createTexture(); 
    backTex.Img = new Image(); 
    backTex.Img.onload = function() { 
     handleBkTex(backTex); 
    } 
    backTex.Img.src = "textures/stars.jpg"; 
} 

function handleBkTex(tex) { 
    gl.bindTexture(gl.TEXTURE_2D, tex); 
    gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, true); 
    gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, tex.Img); 
    gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST); 
    gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST); 
    gl.bindTexture(gl.TEXTURE_2D, null); 
} 
+0

당신이 "작동하지 않는"무엇을 의미합니까 여기 대답, 변화? –

+0

아무 일도 일어나지 않았습니다. img가 보이지 않습니다 – arii

+0

ieda @gre_gor? 아무런 오류가 나타나지 않습니다 – arii

답변

1

괜찮습니다.

initBkgnd(); 
gl.clearColor(0.0, 0.0, 0.0, 1.0); 

gl.clearColor(0.0, 0.0, 0.0, 0.0); 
initBkgnd(); 

와 캔버스 요소 유구에 추가 :

<canvas id="myCanvas" style="background: url('textures/stars.jpg')" width="1400" height="800"></canvas>