흰색 배경에 열린 글로에 컬러 텍스처 브러시를 표시하려면 어떻게해야합니까?

StackOverflow https://stackoverflow.com/questions/1419202

  •  07-07-2019
  •  | 
  •  

문제

나는 개방형을 사용하여 흰색 배경에 텍스처 브러시를 선택한 색상으로 그리고 싶습니다.

CG를 사용하여 텍스처로 바꾸는 비트 맵 이미지가 있습니다. 이 비트 맵은 대부분 검은 색이지만 중앙에 "브러시"로 사용하려는 흰색 원이 있습니다. 다시 말해, 최종 컴포지트에서 검은 부분이 사라지기를 원하지만 흰색 부분은 Glcolor를 사용하여 설정 한 색상을 취할 수 있습니다.

내가 얻을 수있는 가장 좋은 것은 블렌드 매개 변수 (GL_SRC_ALPHA, GL_ONE)를 사용하여 불투명 한 밝은 색상을 설정 한 후 회색 (순수한 흰색 배경이 아님)의 희미한 컬러 라인입니다. 그러나 배경을 순수한 흰색으로 설정하면 선이 보이지 않습니다.

적어도 현재 상황에서는 원래 텍스처의 검은 가장자리가 나타나지 않습니다. 대부분의 다른 블렌드 조합은 회색에도 나타나지 않거나 검은 가장자리를 포함한 전체 브러시를 볼 수 없습니다.

검은 질감 가장자리를 전혀 보여주지 않고 순수한 흰색으로 밝은 색상을 보여주기 위해 내 질감 및/또는 GL 상태를 어떻게 설정 해야하는지 설명 할 사람이 있습니까? 이것은 초보자 질문 일지 모르지만 블렌드 수학을 통해 작업하려고 시도했지만 여전히 색상이 어떻게 함께 인식되는지 이해하지 못합니다.

브러시로 사용하는 이미지는 다음과 같습니다.

대체 텍스트 http://www.coldcoffeeandjuice.com/opaquebrush.png

배경이 회색이고 glcolor4f가 (1, 0, 0, 1)과 예를 들어 순수한 빨간색으로 설정되며 브러시는 연속 된 GL_Points에 사용됩니다. 이것에 대한 좋은 점은 브러시 이미지의 흰색 부분만이 색상 빨간색을 보여준다는 것입니다. 나쁜 부분은 내가 순수하고 밝고 싶은 빨간색이 배경 (?) 및/또는 브러시의 흰색 (?)과 혼합되어 창백하다는 것입니다. . 이것은 위에 주어진대로 블렌드 매개 변수를 사용합니다 (src_alpha, one).

alt text
(원천: Coldcoffeeandjuice.com)

순수한 붉은 색 (감사합니다 페인트 브러시)을 감안할 때 다음은 다음과 같습니다.

alt text
(원천: Coldcoffeeandjuice.com)

누구든지 내가 잘못하고있는 일을 이해하도록 도와 줄 수 있습니까?

감사!

도움이 되었습니까?

해결책

좋아, 그래서 당신은 브러시 모양의 마스크를 사용하여 주어진 색상 (이 경우 "빨간색")을 배경에 "페인트"하려고합니다.

"페인트"를 렌더링하기 전에 다음을 수행해야합니다.

  1. 먼저 브러시에 모양에 해당하는 알파 채널이 있는지 확인하십시오. 즉, 알파 채널은 포기 한 브러시 이미지와 비슷해 보일 것입니다.

  2. 이 상태로 렌더링하십시오 (위키 마크 업을 주변에 얻으려면 주석 공간) :

// Make the current material colour track the current color
glEnable( GL_COLOR_MATERIAL );

// Multiply the texture colour by the material colour.
glTexEnvf( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE );

// Alpha blend each "dab" of paint onto background
glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );

또한보십시오:
http://www.opengl.org/documentation/specs/man_pages/hardcopy/gl/html/gl/collematerial.html

http://www.khronos.org/opengles/documentation/opengles1_0/html/gltexenv.html

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top