~cpp
| a1 b1 c1 | | b2 c2 | | b1 c1 | | b1 c1 |
D = | a2 b2 c2 | = a1 | | - a2 | | + a3 | |
| a3 b3 c3 | | b3 c3 | | b3 c3 | | b2 c2 |
~cpp
| i j k |
ⓐXⓑ = | Xa Ya Za |
| Xb Yb Zb |
~cpp T(-x1, -y1, -z1) Rx(φ) Ry(-θ) Rz(α) Ry(θ) Rx(-φ) T(x1, y1, z1) 절라 복잡해 보인다. 근데 직접 손으로 따라 해보면 별루 안 복잡하다.
~cpp
V = T( -Xe, -Ye, -Ze) Rz(파이/2-θ) Rx(φ-파이) Myz
| -sinθ -cosφcosθ -sinφcosθ 0 |
| cosθ -cosφsinθ -sinφsinθ 0 |
= | 0 sinφ -cosφ 0 |
| 0 0 1 |
| 방식 | 설명 |
| GL_ZERO | 원본 색상을 0,0,0,0 으로한다 |
| GL_ONE | 원본 색상을 그대로 사용한다 |
| GL_DST_COLOR | 원본 색상과 대상 색상을 곱한다 |
| GL_ONE_MINUS_DST_COLOR | 원본 색상과 ((1,1,1,1)-대상 색상)을 곱한다 |
| GL_SRC_ALPHA | 원본 색상에 원본 알파 값을 곱한다 |
| GL_ONE_MINUS_SRC_ALPHA | 원본 색상에 (1-원본 알파값)을 곱한다 |
| GL_DST_ALPHA | 원본 색상에 대상 알파 값을 곱한다 |
| GL_ONE_MINUS_DST_ALPHA | 원본 색상에 ((1,1,1,1)-대상 색상 알파값)을 곱한다 |
| GL_SRC_ALPHA_SATURATE | 원본 색상에 원본알파 값과 (1-대상 알파값)중 작은 것을 곱한다 |
| 방식 | 설명 |
| GL_ZERO | 대상 색상을 0,0,0,0 으로한다 |
| GL_ONE | 대상 색상을 그대로 사용한다 |
| GL_SRC_COLOR | 대상 색상과 원본 색상을 곱한다 |
| GL_ONE_MINUS_SRC_COLOR | 대상 색상과 ((1,1,1,1)-원본 색상)을 곱한다 |
| GL_SRC_ALPHA | 대상 색상에 원본 알파 값을 곱한다 |
| GL_ONE_MINUS_SRC_ALPHA | 대상 색상에 (1-원본 알파값)을 곱한다 |
| GL_DST_ALPHA | 대상 색상에 대상 알파 값을 곱한다 |
| GL_ONE_MINUS_DST_ALPHA | 대상 색상에 ((1,1,1,1)-대상 색상 알파값)을 곱한다 |
| GL_SRC_ALPHA_SATURATE | 대상 색상에 원본알파 값과 (1-대상 알파값)중 작은 것을 곱한다 |
~cpp
Define the LoadBMPfile(char *filename) function
declare GLuint tex[n]
declare AUX_RGBImageRec *texRec[n]
assign LoadBMPFile("filename.bmp") to each texRec[i]
glGenTextures(count,&tex[0])
glBindTexture(GL_TEXTURE_2D,tex[i])
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
glTexImage2D(GL_TEXTURE_2D,0,3,texRec[i]->sizeX
,texRec[i]->sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE,texRec[i]->data);
if(texRec[i])
if(texRec[i]->data)
free(texRec[i]->data);
free(texRec[i]);
glEnable(GL_TEXTURE_2D);
glTexEnvi(GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE,GL_MODULATE);
Example of using the texturemapping
glBindTexture(GL_TEXTURE_2D, tex[0]);
DrawQuad(1,1,1,normal);