E D R , A S I H C RSS

3DGraphics Foundation Summary


1. �� 1 �� 그���� 기��

1.1. ���� 기��

1.1.1. ����계

  • ������ ����계 : ����� �������� �� �� 그 ����계��. ����� Z, ��� X, ����� Y, 그���������� �� ��.
  • �� ����계 : 공간개�� �기 ��기 ���� 그���������� �� ������. ��� Z, ����� X, ����� Y
  • ����계 : ���� ������ ������ �� ������. ������������ 거�� ρ, z�� 각 θ, x�� 각 φ �� 구������. 걸 그���� ���� ,
    • x = ρsinθcosφ
    • y = ρsinθsinφ
    • z = ρcosθ

1.1.2. ����

  • ��.. ���� ��거 ����. �� 고������ 거��. ���거�� �개 ��..
  • ���� ������.. �������� �겠��. �� 그����까 �� �����.
  • �� ⓐXⓑ ��게 ������. ���� ���� ⓐ���� ����ⓑ���� 180���� ������ ������� ������ ������. �� 개�����--;
  • ������ ��기 : |ⓐXⓑ| = |ⓐ||ⓑ|sinθ
  • ���� ���� : �� ���� ���� ������ ����

1.1.3. ����

  • 3X3�� ������

~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 |

  • ������ ���� ������ �����기(i,j,k�� 각각 x,y,z������ ��������)

~cpp 
         | i   j   k  |
 ⓐXⓑ = | Xa  Ya  Za | 
         | Xb  Yb  Zb |

  • �� ���� ����? �� ���� 거..

1.2. �� ����계 3���� ����

  • �� ����계? 그�기 ��게 ����, ������ �������� �������� ��기� �������, ���� ������ ����� 그걸�� ���� 거��.
  • 3���� ������ ������ x,y,z 그��고 w���� 값�� ����� ����. 그� 1�� ���� ����.

1.2.1. ������ �� �������� ���� �기(�� ������ ��������?)

  • ���� ������ ��게 ���� ������.
  • ���� xz���������� x�� �������� ���� ������.
  • ���� z�����게 y�� �������� ���� ������.
  • ���� ���� z�� �������� ������.
  • ���� ���� ��� ��
  • ���� ���� ���� ��� ��
  • ���� ���� ���� ���� ��� ��
  • �� �������� �� 곱

~cpp 
 T(-x1, -y1, -z1) Rx(φ) Ry(-θ) Rz(α) Ry(θ) Rx(-φ) T(x1, y1, z1)
 ���� ���� ����. 근�� ���� ������ ����  ���� ������.

1.3. ������ ������

  • ������ : �� ���� ���� �
  • ������ ������ x값�� ����값�� x(min), ���� x(max), y값�� ����값�� y(min), ���� y(max) �� ��.
  • �������� ��각�� ����,���� X(min), X(max), Y(min), Y(max) �� ��.
  • /����� 구�� 공��
    • delx = (X(max) - X(min)) / (x(max) - x(min))
    • dely = (Y(max) - Y(min)) / (y(max) - y(min))
    • x(c) = (x(max) + x(min)) / 2
    • y(c) = (y(max) + y(min)) / 2
    • X(c) = (X(max) + X(min)) / 2
    • Y(c) = (Y(max) + Y(min)) / 2
    • c1 = X(c) - x(c) * delx
    • c2 = Y(c) - y(c) * dely

    • X = delx * x + c1
    • Y = dely * y + c2

1.4. Polygon Mesh ���� 구��


1.4.1. ���

  • �� ������.
  • ����각�� mesh ���� ������ ����.
  • ���� ��각�� ���� �� ������ �게 ��������.
  • ���� ������ 공���� ��각���� ���� ������ ����.
  • mesh ���� ��꾸거�� ���������� ����.

1.4.2. Explicit Polygons Mesh

  • ���� vertex table�� ���� ��각�� 꼭���� ������ ������ ���� ��
  • ������ ���� �� �� ������, ������� �� ����.
  • ���� P1 ��각�� ���� Vertex���� ����계 ���� ������ v1,v3,v4,v6�� v1->v3->v4->v6 ��게 ���게 �������� 구�� ����.
  • ����
    • �� ����� ������ 그������.
    • �� ������ 공���고 ���� ��각�� ��기� ����.
    • ���� ����� ���� ������.

1.4.3. Explicit Edges Mesh

  • �� ����군. ������

2. 3���� 그����

2.1. 3���� 그����?

  • �� ���� ����과 곡���� ���� �������� ������ �� �������� ������ 'Wire frame ��'
  • �� ���� 그��� ������고 ���� ���� ���� ���� ��, ��거 �고������ Shading �고������ ����� �� ����감 ��게 그 ���� ������ 'Surfaced ��'
  • ������ 고�� �� ���� ������ 'Solid ��'
  • �� �� ������ : 깊����

2.1.1. ����

  • 3������ 2�������� ������ ��� 기���� ��
  • �������� (Parallel projection, orthogonal projection) : ���� �� ���� �� ����. 깊감... ������.
  • ��근���� (Perspective projection) : ���� ���� �� ��(��근감 ����) 깊������ ����.

2.1.2. ��/ ��거

  • ��그�� �� �� ���기

2.1.3. ��

  • �� �� ����(Ray-Tracing �� ����)

2.1.4. ����

  • ����� : 계���� ���� ����감 ����
  • ������� : 계���� ���� ����감 ����

2.2. ��각�과 ��근����

  • ������계(Xw,Yw,Zw) -> ��각����계(Xe,Ye,Ze) -> ������ ����계(X,Y)

2.2.1. ��각

  • ��각������ ���� ����������계�� ��.
  • Xe, Ye, Ze, 1 = Xw, Yw, Zw, 1 V : V�� ������계�� ��각����계�� ��꾸기 ������
  • ���� V 구�기
    • ������계�� ���� O�� ���� E�� ����������. T( -Xe, -Ye, -Ze )
    • y�� ���������� xy�������� ����과 ����������. Z�� �������� (��/2-θ) ���� (θ�� x�� 각)
    • z ���������� ���� ���� x�� �������� (φ-��) ���� (φ�� z�� 각)
    • x�� ������ ��꾼��.
    • ��(��깐 ����� ���������� ���� ������ ����. ��과 �������.)

~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 |

2.2.2. ��근����

  • �� �� ������.. 그���� ��..
  • X = d*x/z + c1, Y = d*y/z + c2 (d�� ����과 ������ ���� 거��, �������� ��� 2c1, ���� 2c2)

3. ���(Blend)

  • ��갈���� ������������ ���� ���� ������ ���길�� ������.
  • ����(source) : �� 그���� ��
  • �(destination) : ������ ������ �� 그���� ���� ��
  • ������ �� : glEnable(GL_BLEND), glBlendFunc(���� ���� ������ 계���� 계���� ����, ���� ������ 계���� 계���� ����)
����(�) ������
  • ���� ���� � 계�� ����
���� ��
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-��값)�� ���� 곱��

4. TextureMapping

  • ������ ���� 과

~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);




5. Thread

  • ���� ���� ����������
  • ������ ㅇ ������
  • ������ �� ���� ���� ����.
  • ������ �� ������ ������.
3DGraphicsFoundation
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:22:14
Processing time 0.0359 sec