? 가산같은 그런건가요 그런거라고 하면, 우선 디폴트 프레임버퍼에 렌더링 할 경우 블렌딩 옵션을 SRCALPHA ONEMINUSSRCALPHA 로 키시고, 처음에 출력 알파가 1로 해서 백그라운드 출력, 그리고 알파가 다른 쉐이더나 아니면 uniform 으로 알파 치를 변경해서 위에 덮을 텍스쳐를 렌더링하세요 - dc App
저런 상황에서 마찬가지로 background가 있다고 쳤을 때 (그림상 검은색 부분이 background가 된다고 생각하면) offscreen buffer 를 만들어서 해당 버퍼에 마스크가 포함된 영상 부분인 foreground를 따로 렌더링하는 방법밖에 없을까?
익명(121.174)2019-04-11 18:02
답글
또 반전이 안된 마스크 (파란색 영역) 의 경우는 내가 생각해본게, 위에서 말한것처럼 우선 영상 전체를 rgb는 ONE으로, alpha는 ZERO로 둔 뒤에, 마스크 영역을 그릴 때 srcRGB = ZERO, dstRGB = ONE, srcAlpha = ONE, dstAlpha = ONE_MINUS_SRC_ALPHA 로 두면 해결이 될 것 같은데, 반전이 된 마스크의 경우는 어떻게 렌더링해야할지 모르겠음..
익명(121.174)2019-04-11 18:07
답글
아 blendEquationSeparate 이런게 있구나. 반전된 마스크 영역같은 경우는 우선 전체 영역을 한번 그리고, blendEquationSeparate를 FUNC_SUBTRACT로 둬서 그 부분만 한번 더 그려주면 될려나
? 가산같은 그런건가요 그런거라고 하면, 우선 디폴트 프레임버퍼에 렌더링 할 경우 블렌딩 옵션을 SRCALPHA ONEMINUSSRCALPHA 로 키시고, 처음에 출력 알파가 1로 해서 백그라운드 출력, 그리고 알파가 다른 쉐이더나 아니면 uniform 으로 알파 치를 변경해서 위에 덮을 텍스쳐를 렌더링하세요 - dc App
감사. 그런데 해결책을 보고 다시 생각해보니 원 글에서는 문제를 약간 덜 설명했었네
https://imgur.com/a/rOCcXzG
실제 문제는 이렇게 마스크가 여러개 있을 수 있는 상황인데, (그림 상 총 3개, 빨간색은 반전 마스크) 이런건 어떻게 해결할 수 있을까
저런 상황에서 마찬가지로 background가 있다고 쳤을 때 (그림상 검은색 부분이 background가 된다고 생각하면) offscreen buffer 를 만들어서 해당 버퍼에 마스크가 포함된 영상 부분인 foreground를 따로 렌더링하는 방법밖에 없을까?
또 반전이 안된 마스크 (파란색 영역) 의 경우는 내가 생각해본게, 위에서 말한것처럼 우선 영상 전체를 rgb는 ONE으로, alpha는 ZERO로 둔 뒤에, 마스크 영역을 그릴 때 srcRGB = ZERO, dstRGB = ONE, srcAlpha = ONE, dstAlpha = ONE_MINUS_SRC_ALPHA 로 두면 해결이 될 것 같은데, 반전이 된 마스크의 경우는 어떻게 렌더링해야할지 모르겠음..
아 blendEquationSeparate 이런게 있구나. 반전된 마스크 영역같은 경우는 우선 전체 영역을 한번 그리고, blendEquationSeparate를 FUNC_SUBTRACT로 둬서 그 부분만 한번 더 그려주면 될려나