2012-07-19 5 views
1

검은 색 바탕에 반투명의 검은 색 삼각형을 그리려합니다. 여기 WebGL blendFunc 버그 또는 오해?

enter image description here

내 샘플이다 : http://codewithoutborders.com/posted/blend.html

blendFunc 설정하고 (선 151)가 활성화되어

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

버퍼가 블랙 클리어된다 (라인 129)

gl.clearColor(0.0, 0.0, 0.0, 1.0); 
gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); 

쉐이더는 세미 투명 필름으로 채 웁니다. t 블랙 (라인 10) : 워드 프로세서 오른쪽 검은 색

result = {foreground}*sourceAlpha + {background}*(1-sourceAlpha) 
     = (0,0,0,.5)*.5 + (0,0,0,1)*.5 
     = (0,0,0,.75) 

것을 주장하기 때문에

gl_FragColor = vec4(0.0, 0.0, 0.0, .5); 

나는 삼각형이 검은 색으로 기대?

회색은 어디서 오는가?

답변

2

(얼마나 당황. 삼분 게시 후 내 자신의 질문에 대답,하지만 중요한 탈모 전)

회색은 3/4 - '펀칭'돌파 보여주는 HTML 페이지의 흰색 배경에서 온다 투명한 구멍. 그렇지 않으면 검은 캔버스. 태그에

style="background:black;" 

추가

문제를 해결한다.

또한 canvas.getContext를 사용하여 알파 없음 ("실험-에서 WebGL을", {알파 : 거짓})과 캔버스를 만들 수 있습니다

+3

[G 맨의 댓글이, 아래있는 더 나은 수정] – gman

+0

훌륭해, 고마워! – Spongman