������
7.1. ������������� ��������

������������� �������� �������� ���������: ������ �� �������, ������ ������� ����� ������ ������� ��������������, ������ ���� ����������. �� ����� ����, � ���� ����������� ����� ������������ ����� (���������������) ����� ������ �������, ������������ ������������ ����� ����� ����� ����� ������ ������, ��� �� 0.5 �������.

������������� � ������������� �������� ���������� ������ ��-�� ����, ��� ������� ���������, ������� �� ��������. ��� ������ ���������� ������� (�� ����, ��� ���� ����������), ��� ������ ����� ��� ��������. ������ ������� ����� ������������� ���� �� ����������� ������� 1280x1024, � ��� ����� ��� ������� ��� 3D engine 320x200 ��� 640x480.

����������� ������������� �������� �� �������� ������. ����������� ����, ��� �� ������ �����. ������ �� �������� �������� �� � ������-�� �������� start_y, ��� ��� ��� ��������������� (��������, �������������) � ��� ���������� ����� �� ����� �����. ������ �� ������ ���������. � ���������� �������� ��������� ��������� ������������, ������� �������� ��������� � ����� ������� ����� A � ���� ���� �� �������, �� ������ ������ ������������ ���������� ������ � ����� ��������� ������� ���

sx_start += dx_start;
sx_end += dx_end;

������ ������������� �������� ��-�� ����� ������ ����������, ��� ��� sx_start ���������������� ��� A.sx, A.sx ������������ ����� y = A.sy, � �������� �� �������� � ������-�� ������������ ��������. ������, �� ���� �� �������� � FAQ'� ������� ������������� �������� �� ��������, ��� ��� ��� ������ ������ sx_start � sx_end ������ ����������� �� ������ �������.

������ ������� ��� ������� sx_start �������� ���

sx_start = A.sx + dx_start * (current_sy - A.sy),

� ��� ����� ������ ����� �� ���� ������ �� ������ ���������, � �� ������ �������� sx_start = A.sx. ��������, ���

sx_start = A.sx + dx_start * (ceil(A.sy) - A.sy);
sx_end = A.sx + dx_end * (ceil(A.sy) - A.sy);

�� �� ����� �������� ���� ������� � �� ���� ���������� �����������, ������� �� ����� ��������������� �� ������ (�������� u, v, ������������� ��� ����); � �� �� ����� ���� ������� ��� �������� � ����� �� �����.

// ...
u_start += du_start * (ceil(start_y) - start_y);
u_end += du_end * (ceil(start_y) - start_y);
// ...

�� �, ����������, �������� �������� ���� � ��� ������, ������� �� ������������ � ��������. �� ����, ceil(start_y).

��� � ���. �� �������� ������ ��� �� ������ ������, � ����� ����� ��������� ����� � �������� ������� ��� �����������, �������� ������ ��� ������� ��� ��������� ��������� (� ���� �������).



 � ����� ������


demo.design
3D programming FAQ