´óÁ¬´óÓÐÎâÌÎÒ×ÓïÑÔÈí¼þ¿ª·¢ÓÐÏÞ¹«Ë¾ °æÈ¨ËùÓÐ
»æÍ¼×Ó³ÌÐò¿ò¼Ü´úÂëÈçÏ£º
ÉÏÊö´úÂëÖС°Çå³ý»º´æ¡±ÃüÁîÊÇʹÓñ³¾°É«½«ÆÁÄ»Çå³ý£¬ËùÓÐÏÈǰ»³öÀ´µÄ¶«Î÷¶¼±»Ä¨È¥ÁË¡££¨Óйػº´æ²Ù×÷µÄÄÚÈÝ¿ÉÒԲ鿴µÚÊ®ËĽڵÄÄÚÈÝ£©
¡°¾ØÕó¸´Î»¡±ÃüÁîÊǽ«×ø±ê»¹Ôµ½Ôµã¡££¨ÓйØ×ø±êµÄÄÚÈÝ¿ÉÒԲ鿴µÚ¾Å½ÚµÄ£© ¡°½»»»»º´æ¡±ÃüÁîÊÇÔÚË«»º´æÄ£Ê½Ï²ÅÓУ¬Êǽ«ºǫ́»ÃæÏÔʾ³öÀ´¡£ ÕâÀïûÓÐÏÔʾÈÎºÎ»Ãæ£¬ÒòΪûÓмÓÈë»æÍ¼´úÂë¡£ºóÃæ¼¸½ÚÄÚÈÝÖн«Ö÷Òª½éÉÜÈçºÎÔÚÕâ¸ö×Ó³ÌÐòÖÐÌí¼ÓÓï¾äÀ´ÏÔʾЧ¹û¡£
2.1.6 È·¶¨ÏÔʾ·¶Î§
µ±×é¼þ³ß´ç¿ÉÒÔ±»Óû§ÈÎÒâµ÷Õû´óСʱ£¬ÎªÁËÈÃOpenGLÉ豸³¡¾°´óÐ¡Ò²Í¬Ê±ËæÖ®¸Ä±äÐèÒªµ÷Óᰳߴ类¸Ä±ä¡±×Ó³ÌÐò¡£
¡°³ß´ç±»¸Ä±ä¡±×Ó³ÌÐòÔÚ¡°½¨Á¢OpenGL×é¼þ¡±×Ó³ÌÐòÔËÐÐÖ®ºó¡°»æÍ¼¡±×Ó³ÌÐòÔËÐÐ֮ǰÆðÂëÔËÐÐÒ»´Î£¬ÓÈÆäÊÇÔÚ´°¿Ú»ò×é¼þµÄ´óС±»¸Ä±äµÄʱºòÔÙ´ÎÔËÐС£
µÚÒ»¡¢¶þ¾ä¡°Èç¹ûÕæ¡±ºÍ¡°¸ß¶È=1¡±·ÀÖ¹±»³ýÊý¸ß¶ÈΪ0£¬Èç¹û¸ß¶ÈΪ0¾Í½«Ëü¸ÄΪ1¡£ µÚÈý¾ä¡°ÉèÖÃÊÓ¿Ú¡±ÃüÁîÖ¸¶¨ÁËÉ豸ÖпÉÒÔÏÔʾµÄ·¶Î§¡£
µÚËľ䡰ѡÔñ¾ØÕóģʽ¡±ÃüÁî˵Ã÷½ÓÏÂÀ´½«Òª½øÐвÙ×÷µÄ×ø±ê¾ØÕóΪ¡°#ͶӰ¾ØÕ󡱡£Í¨³£½«Í¶Ó°×ø±êµÄ±ä»»¶¼·ÅÔÚÕâ¸ö¾ØÕóÖС£
µÚÎå¾ä¡°¾ØÕó¸´Î»¡±ÃüÁÉÏ´ÎÉèÖõÄ×ø±ê¾ØÕóµÄ×ø±ê»¹Ôµ½Ôµã¡£
µÚÁù¾ä¡°´´½¨ÕýͶӰ¡±ÃüÁîÊǽ¨Á¢Ò»¸öÕýͶӰµÄ×ø±ê»·¾³£¬»ÃæµÄ×î×ó±ßµÄ×ø±êֵΪ¡ª0£®5£¬×îÓÒ±ßΪ£«0£®5£¬×îÏÂÃæÎª¡ª0£®5£¬×îÉÏÃæÎª£«0£®5£¬ÀëÆÁÄ»×î½üµÄ¾àÀëΪÆÁÄ»ºóÃæ£«0£®1£¬×îÔ¶µÄ¾àÀëΪÆÁÄ»ºóÃæ£«100¡£
7
´óÁ¬´óÓÐÎâÌÎÒ×ÓïÑÔÈí¼þ¿ª·¢ÓÐÏÞ¹«Ë¾ °æÈ¨ËùÓÐ
µÚÆß¾ä¡°Ñ¡Ôñ¾ØÕóģʽ¡±ÃüÁîÓÖ½«½ÓÏÂÀ´½«Òª½øÐвÙ×÷µÄ×ø±ê¾ØÕóÉèÖÃΪ¡°#¹Û²ì¾ØÕó¡±£¬ÎÒÃǻͼµÄÄÚÈݶ¼·ÅÔÚÕâ¸ö¾ØÕóÖС£
µÚ°Ë¾ä¡°¾ØÕó¸´Î»¡±ÃüÁÉÏ´ÎÉèÖõÄ×ø±ê¾ØÕóµÄ×ø±ê»¹Ôµ½Ôµã¡£
2.1.7 OpenGL³õʼ»¯
¡°¿ò¼Ü³õʼ»¯¡±×Ó³ÌÐòÊÇΪÁ˳õʼ»¯OpenGL£¬ËüÔÚ¡°½¨Á¢OpenGL×é¼þ¡±×Ó³ÌÐòÔËÐÐÖ®ºóÖ»ÔËÐÐÒ»´Î£¬±£Ö¤Ò»Ð©³£ÓõÄOpenGLÃüÁî±»¸³ÓèÁ˱à³ÌÕßÏ£ÍûµÄ״ֵ̬¡£
È¥µô±¾×Ó³ÌÐòÖ»»á¸Ä±äOpenGLµÄÏÔʾЧ¹û£¬²»»áΣ¼°Õû¸öÓ¦ÓóÌÐòµÄÔËÐС£
µÚÒ»¾ä¡°Çå³ýÑÕÉ«»º´æ¡±ÃüÁîΪOpenGLÉ豸³¡¾°ÉèÖñ³¾°ÑÕÉ«¡££¨ÓйØÑÕÉ«µÄÄÚÈÝ¿ÉÒԲ鿴µÚËĽڵÄÄÚÈÝ£©
µÚ¶þ¾ä¡°ÉèÖÃÒõӰģʽ¡±ÃüÁî˵Ã÷ÒõӰΪ¹â»¬Ä£Ê½¡£
µÚÈý¾ä¡°Çå³ýÉî¶È»º´æ¡±ÃüÁîÖ¸¶¨Çå³ýÊÓ¿Ú·¶Î§ÀïµÄÉî¶È»º´æ¡£Ö»ÄÜʹÓÃÔÚ[0£¬1]·¶Î§ÄÚµÄÊýÖµ¡£Ëù¹Û²ìÎïÌåµÄ×îÇ°ÃæÎª0£¬×îºóÃæÎª1¡£
µÚËľ䡰ÆôÓù¦ÄÜ¡±ÃüÁî´ò¿ªÉî¶È²âÊÔµÄ״̬¿ª¹Ø
µÚÎå¾ä¡°Éî¶È²âÊÔ¡±ÃüÁîÓëµÚÈý¾ä×éºÏµÃµ½Ò»¸ö²âÊÔÌõ¼þ£¨¼´¡°<1¡±£©£¬½«ËùÓÐÂú×ãÕâ¸öÌõ¼þµÄÎïÌå¶¼ÏÔʾÔÚÆÁÄ»ÉÏ¡£
µÚÁù¾ä¡°ÉèÖÃ»ÃæÖÊÁ¿¡±ÃüÁîÉèÖÃ͸ÊÓ»ÃæµÄÏÔʾÖÊÁ¿Îª×îºÃ¡£
Á·Ï°£º
ÏÂÃæ¾Í°´²½Ö轨Á¢Ò»¸ö×î¼òµ¥µÄOpenGLÓ¦ÓóÌÐò¡£ 1£® Æô¶¯Ò×ÓïÑÔOpenGLÏòµ¼£» 2£® Ö±½Óµã»÷Íê³É°´Å¥´´½¨Ò׳ÌÐò£»
3£® ÔÚ¡°»æÍ¼¡±×Ó³ÌÐòÖбêÓС°ÔÚÕâÀï¼ÓÈëÄãµÄ´úÂ롱µÄÏÂÃæ¼ÓÈëÒÔÏ´úÂ룺 »Ô²×Ó³ÌÐò ({ 0, 0, -1 }, 100)
ÉÏÊö´úÂë±íʾÒÔ¿Õ¼ä×ø±êµã£¨X = 0£¬Y = 0£¬Z = ¡ª1£©ÎªÔ²ÐÄ£¬100Ϊ°ë¾¶»³öÒ»¸öÔ²¡£ ²Î¿¼Àý³Ì¡°µÚÒ»¿ÎÁ·Ï°.e¡± ÔËÐкó¿ÉÒÔ¿´µ½Í¼ 2ÖÐЧ¹û£º
8
´óÁ¬´óÓÐÎâÌÎÒ×ÓïÑÔÈí¼þ¿ª·¢ÓÐÏÞ¹«Ë¾ °æÈ¨ËùÓÐ
ͼ 2
µÚ¶þ½Ú¡¢¿Õ¼ä¶¨Î»
OpenGLµÄ×ø±êϵͳÓëÆÁÄ»µÄ×ø±ê²»Í¬£¬È´ºÍÈÕ³£Éú»î¿Õ¼äºÜÏàËÆ¡£ÈÃÎÒÃÇÀ´¹Û²ìһ϶þÎ¬×ø±êϵÓëÈýÎ¬×ø±êϵµÄÇø±ð¡£
ÏÂÃæÊÇÒ»¸ö»°åµÄ¶þÎ¬×ø±êϵ¡£
ͼ 3ÖеÄXÖáͨ³£½Ð×öºáÏòλÖã¬YÖáͨ³£½Ð×ö×ÝÏòλÖã¬Ê¹Óõĵ¥Î»Í¨³£ÎªÏóËØ£¬×ø±êÔµãʼÖÕÔÚ»°åµÄ×óÉϽǡ£
ͼ 3
ÏÂÃæÊÇÒ»¸öOpenGLµÄÈýÎ¬×ø±êϵµÄÔʼ״̬¡£
ͼ 4ÖеÄXÖáÔÚÖ§³Ö¿âÖнÐ×öºáÏòλÖã¬YÖáͨÔÚÖ§³Ö¿âÖнÐ×öÊúÏòλÖã¬ZÖáÔÚÖ§³Ö¿âÖнÐ×ö×ÝÏòλÖã¬Ê¹Óõĵ¥Î»Òª¸ù¾Ý³ÌÐòÀ´¶¨£¬Î´¾Òƶ¯µÄ×ø±êÔµãÔÚÆÁÄ»Öм䣬±ØÒªÊ±Ò²¿ÉÒÔ¸ù¾Ý³ÌÐò×Ô¼ºÒƶ¯×ø±êÔµãµÄλÖá£ÕýÒòΪ±È»°åµÄ¶þÎ¬×ø±êϵ¶à³öÒ»¸ùZÖᣬOpenGL²Å¿ÉÒÔ»³öÒ»¸öÈýάµÄͼÐΡ£
9
´óÁ¬´óÓÐÎâÌÎÒ×ÓïÑÔÈí¼þ¿ª·¢ÓÐÏÞ¹«Ë¾ °æÈ¨ËùÓÐ
ͼ 4
¿Õ¼ä×ø±êÿ´ÎÒÆ¶¯µÄ¾àÀë¼°Ðýת½Ç¶È¶¼ÊÇÀۼӵġ£ ±ÈÈ磺
×ø±êÆ½ÒÆ (0,1, 0) ×ø±êÆ½ÒÆ (1, 0,0)
×ø±êÐýת (10, 1, 0, 0) ×ø±êÐýת (10, 0, 1, 0)
×îºóµÃµ½µÄ×ø±êÔµã¾ÍÊÇ£¨1£¬1£¬0£©£¬ÐýתµÄ½Ç¶ÈΪºáÏòλÖÃÏÈÏòÓÒÐýת10¶ÈÈ»ºóÊúÏòλÖÃÔÙÏòÉÏÐýת10¶È¡£
Á·Ï°£º
ÏÂÃæ¾Íͨ¹ý»Ò»¸öµÄÈý½ÇÐÎÀ´Àí½â¿Õ¼äµÄ¶¨Î»¡£ 1£® Æô¶¯Ò×ÓïÑÔOpenGLÏòµ¼£» 2£® µã»÷Íê³É°´Å¥´´½¨³ÌÐò£»
3£® ÔÚ¡°»æÍ¼¡±×Ó³ÌÐò±¸×¢ÖбêÓС°' ÔÚÕâÀï¼ÓÈëÄãµÄ´úÂ롱µÄÏÂÃæ¼ÓÈëÒÔÏ´úÂ룺 ×ø±êÆ½ÒÆ (0, 0, -1)
½«×ø±êÔµãÏòÆÁÄ»ÀïÃæÒÆ¶¯Ò»¸öµ¥Î»µÄ¾àÀ룬ֻÓÐÔÚÆÁÄ»ÀïÃæ²ÅÄÜÏÔʾ³öÀ´£¬·ñÔòÎÞ·¨ÏÔʾ¡£0ΪÆÁĻλÖá£
¿ªÊ¼» (#Èý½ÇÐÎ)
ÉèÖýÓÏÂÀ´µÄ¡°ÉèÖõ㡱ÃüÁîÊÇÒª»³öÒ»¸öÈý½ÇÐΡ£ ÉèÖõã (0, 100, 0)
µ±Ç°×ø±êX = 0£¬Y = 100£¬Z = 0£¬Êµ¼Ê×ø±êΪX = 0£¬Y = 100£¬Z = ¡ª1£¬Èý½ÇÐεÄ×î
10