2013-07-20 3 views
2

나는 webGL에서 일하고있다. OpenGL을 처음 접했습니다. 블렌딩 기능에 문제가 있습니다.OpenGL 블렌딩은 검정색을 검정색으로 회색으로 렌더링합니까?

gl.enable(gl.BLEND) 
gl.blendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA) 

나는 색상 [0,0,0,1]와 목적지 배경 위에 색 [0,0,0,0.5]와 소스 사각형을 렌더링 : 내 옵션처럼 보인다. 내가 읽은 모든 것을 바탕으로 결과는 검은 색이 될 것으로 기대합니다. 대신 약 25 % 흰색으로 보입니다. 여기에 red and black rectangles with alpha values ranging from 0.0 to 1.0을 렌더링 할 때 얻는 결과가 있습니다.

View live demo and source here. 블렌딩 기능을 오해하고 있습니까? 그렇다면 어떻게해야합니까? 감사!

+3

[가 WebGL을에서 HTML 배경으로 혼합]의 중복 가능성 (http://stackoverflow.com/questions/11521035/blending-with-html-background- in-webgl) –

+0

예, 그게 전부입니다! 배경 색상을 렌더링하는 캔버스 자체를 투명하게 설정합니다. 캔버스 스타일을'background : black'으로 설정하여 문제를 해결할 수 있습니다. 감사! – Cosmologicon

답변

0

당신은 알파에 대해 별도의 함수를 지정해야합니다

gl.enable(gl.BLEND); 
gl.blendEquation(gl.FUNC_ADD); 
gl.blendFuncSeparate(
    gl.SRC_ALPHA, 
    gl.ONE_MINUS_SRC_ALPHA, 
    gl.ONE, 
    gl.ONE_MINUS_SRC_ALPHA 
);