Search This Blog

Wednesday, October 28, 2009

Screen door transparency

Screen door transparency는 glPolygonStipple()로 polygon stipple pattern을 성정하고 transparent primitive를 polygon stippling enable (glEnable( GL_POLYGON_STIPPLE ))하여 transparent primitive를 rendering하여 transparency effect를 얻는 방법이다. Stipple pattern에 설정된 bit의 숫자가 translucency와 opacity level을 결정한다. 더 많은 bit를 설정하는 것은 더 opaque한 object를 만들고 더 적은 수의 bit를 설정하는 것은 더 transparent한 object를 만든다. Screen door transparency는 이것이 order independent하기 때문에 종종 선호 된다. 이 방식에서 primitives는 back-to-front order로 render될 필요가 없다.

Screen door effect를 위해 사용되는 전형적인 half tone은 다음과 같다.

const GLubyte halftone[] =
{
0xaa, 0xaa, 0xaa, 0xaa,
0x55, 0x55, 0x55, 0x55,
0xaa, 0xaa, 0xaa, 0xaa,
0x55, 0x55, 0x55, 0x55,
0xaa, 0xaa, 0xaa, 0xaa,
0x55, 0x55, 0x55, 0x55,
0xaa, 0xaa, 0xaa, 0xaa,
0x55, 0x55, 0x55, 0x55,
0xaa, 0xaa, 0xaa, 0xaa,
0x55, 0x55, 0x55, 0x55,
0xaa, 0xaa, 0xaa, 0xaa,
0x55, 0x55, 0x55, 0x55,
0xaa, 0xaa, 0xaa, 0xaa,
0x55, 0x55, 0x55, 0x55,
0xaa, 0xaa, 0xaa, 0xaa,
0x55, 0x55, 0x55, 0x55,
0xaa, 0xaa, 0xaa, 0xaa,
0x55, 0x55, 0x55, 0x55,
0xaa, 0xaa, 0xaa, 0xaa,
0x55, 0x55, 0x55, 0x55,
0xaa, 0xaa, 0xaa, 0xaa,
0x55, 0x55, 0x55, 0x55,
0xaa, 0xaa, 0xaa, 0xaa,
0x55, 0x55, 0x55, 0x55,
0xaa, 0xaa, 0xaa, 0xaa,
0x55, 0x55, 0x55, 0x55,
0xaa, 0xaa, 0xaa, 0xaa,
0x55, 0x55, 0x55, 0x55,
0xaa, 0xaa, 0xaa, 0xaa,
0x55, 0x55, 0x55, 0x55,
0xaa, 0xaa, 0xaa, 0xaa,
0x55, 0x55, 0x55, 0x55
};

No comments:

Post a Comment

Blog Archive