ÁúÔ´ÆÚ¿¯Íø http://www.qikan.com.cn
»ùÓÚOpenGLµÄ½ÝÁªÊ½¹ßÐÔµ¼º½ÏµÍ³Èýά·¾¶Öؽ¨¼¼ÊõÑо¿
×÷ÕߣºÆë¶¦Àû
À´Ô´£º¡¶¿Æ¼¼´´Ðµ¼±¨¡·2011ÄêµÚ17ÆÚ
Õª Òª:¼òÊöÁËʹÓÃOpenGL¼¼ÊõÉè¼ÆÊµÏÖ½ÝÁªÊ½¹ßÐÔµ¼º½ÏµÍ³Èýά·¾¶Öؽ¨µÄ¹ý³Ì¡£¶Ô½ÝÁªÊ½¹ßÐÔµ¼º½ÏµÍ³½øÐй켣Êý¾ÝµÄ¼Ó¹¤ÕûÀí¡¢Â·¾¶ÇúÏßµÄÈýά¹Û²ì¼°Öؽ¨¡¢Èýά·¾¶µÄ¹¤³Ìͼ±íʾºÍ·¾¶ÇúÏ߷ֶεİ뾶±êʶ¡£ÀûÓÃCADÈí¼þ½øÐлæÍ¼Éè¼ÆºÍÔìÐÍ·ÖÎöµÄ½á¹û±íÃ÷,²ÉÓÃ×ÔÖ÷ʽµÄ½ÝÁªÊ½¹ßÐÔµ¼º½ÏµÍ³½øÐз¾¶Öؽ¨ÔÚ¼ì²âÔ˶¯²ÎÊý·½ÃæµÄÖØÒªÐÔ¡£ ¹Ø¼ü´Ê:OpenGL¼¼Êõ·¾¶Öؽ¨CAD»æÍ¼
ÖÐͼ·ÖÀàºÅ:TN967 ÎÄÏ×±êʶÂë:A ÎÄÕ±àºÅ:1674-098X(2011)06(b)-0003-02 1 ÒýÑÔ
½ÝÁªÊ½¹ßÐÔµ¼º½ÏµÍ³ÊǰÑÍÓÂÝÒǺͼÓËٶȼƵȹßÐÔÔª¼þÖ±½Ó¹Ì¶¨ÔÚÔËÔØÌåÉÏ,·Ö±ð²âÁ¿¸÷¸öÔËÔØÌåÏà¶Ô¹ßÐÔ¿Õ¼äµÄÈý¸öת¶¯½ÇËٶȺÍÈý¸öÏß¼ÓËÙ¶ÈÑØÔËÔØÌå×ø±êϵµÄ·ÖÁ¿,¾¹ý×ø±ê±ä»»,°Ñ¼ÓËÙ¶ÈÐÅϢת»¯ÎªÑص¼º½×ø±êϵµÄ¼ÓËÙ¶È¡£¾¹ý¼ÆËã,µÃµ½ÔËÔØÌåµÄλÖá¢ËÙ¶È¡¢º½ÏòºÍˮƽ×Ë̬µÈ¸÷ÖÖµ¼º½ÐÅÏ¢¡£ 2 ½ÝÁªÊ½¹ßÐÔµ¼º½ÏµÍ³»ù±¾ÔÀí
½ÝÁªÊ½¹ßµ¼ÏµÍ³Ã»ÓÐʵÌåÆ½Ì¨,ÍÓÂÝÒǺͼÓËٶȼÆÖ±½Ó°²×°ÔÚÔØÌåÉÏ,¹ßÐÔÔª¼þµÄÃô¸ÐÖá°²×°ÔÚËùνµÄÔØÌå×ø±êϵÈýÖá·½ÏòÉÏ¡£Ô˶¯¹ý³ÌÖÐ,ÍÓÂÝÒÇ²â¶¨ÔØÌåÏà¶ÔÓÚ¹ßÐÔ²ÎÕÕϵµÄÔ˶¯½ÇËÙ¶È,²¢Óɴ˼ÆËãÔØÌå×ø±êϵÖÁµ¼º½×ø±êϵµÄ×ø±ê±ä»»¾ØÕó¡£Í¨¹ý´Ë¾ØÕó,°Ñ¼ÓËٶȼƲâµÃµÄ¼ÓËÙ¶ÈÐÅÏ¢±ä»»ÖÁµ¼º½×ø±êϵ½øÐе¼º½¼ÆËã,µÃµ½ËùÐèÒªµÄµ¼º½²ÎÊý£¬Í¼1¡£
3 Èýά·¾¶Öؽ¨·½°¸µÄÉè¼Æ 3.1 µ¼º½Â·¾¶µÄÊý¾ÝÕûÀí
¶Ô½ÝÁªÊ½¹ßÐÔµ¼º½ÏµÍ³²úÉúµÄ¹ì¼£Êý¾Ý½øÐзÖÎö,¶ÔÓÚÆäÖÐһЩÎó²îÑÏÖØµÄ×ø±êµã,ÔÚ·¾¶Öؽ¨¹ý³ÌÖÐ,»áʹµ¼º½Â·¾¶¹ì¼£ÏÔʾ³öÃ÷ÏԵı仯,·¾¶¹ì¼£Èýάͼ»á³öÏÖ»û±äµÄ¹Õµã,Òò´ËÐèÒª¶Ô²úÉúµÄÊý¾ÝÕûÀí,¶ÔÆäÖÐÑÏÖØµÄÎó²îµã½øÐÐÐÞÕý»òɾ³ý,ÒÔ´ïµ½¹ì¼£Â·¾¶ÇúÏßµÄÔ²»¬¡£½ÝÁªÊ½
ÁúÔ´ÆÚ¿¯Íø http://www.qikan.com.cn
¹ßÐÔµ¼º½ÏµÍ³ÖÐÍÓÂÝÒǺͼÓËٶȼƷֱð²âÁ¿ÔËÔØÌåÏà¶Ô¹ßÐÔ¿Õ¼äµÄÈý¸öת¶¯½ÇËٶȺÍÈý¸öÏß¼ÓËÙ¶ÈÑØÔËÔØÌå×ø±êϵµÄ·ÖÁ¿,¾¹ý×ø±ê±ä»»,°Ñ¼ÓËÙ¶ÈÐÅϢת»¯ÎªÑص¼º½×ø±êϵµÄ¼ÓËÙ¶È¡£¾¹ý¼ÆËã,µÃµ½ÔËÔØÌåµÄλÖá¢ËÙ¶È¡¢º½ÏòºÍˮƽ×Ë̬µÈ¸÷ÖÖµ¼º½ÐÅÏ¢¡£¾¹ýÊý¾Ý´¦ÀíµÃµ½Ò»ÏµÁнÝÁªÊ½¹ßÐÔµ¼º½ÏµÍ³Â·¾¶µÄ×ø±êµã,Ôڹ켣·¾¶»æÖƹý³ÌÖÐÏÔÏÖÈýάÇúÏß,Ãè»æ³ö½ÝÁªÊ½¹ßÐÔµ¼º½ÏµÍ³µÄÔ˶¯¹ì¼£¡£
3.2 OpenGLϵͳƽ̨½á¹¹¼°¹¤×÷Á÷³Ì
OpenGLÊÇÒ»Ì×ͼÐαê×¼,ËüÑϸñ°´ÕÕ¼ÆËã»úͼÐÎѧÔÀíÉè¼Æ¶ø³É,ÊʺϿÉÊÓ»¯·ÂÕæÏµÍ³¡£ÔÚOpenGLÖÐÔÊÐíÊÓ¾°¶ÔÏóÓÃͼÐη½Ê½±í´ï,ÈçÓÉÎïÌå±íÃæ¶¥µã×ø±ê¼¯ºÏ¹¹³ÉµÄ¼¸ºÎÄ£ÐÍ,ͼÐÎÊý¾Ýº¬ÓзḻµÄ¼¸ºÎÐÅÏ¢,µÃµ½µÄ·ÂÕæÍ¼ÏñÄܳä·Ö±í´ï³öÆäÐÎÌåÌØÕ÷,ÔÚOpenGLÖÐÓÐÕë¶ÔÈýÎ¬×ø±ê±íʾµÄ¶¥µãµÄ¼¸ºÎ±ä»»,ͨ¹ý¸Ã±ä»»¿Éʹ¶¥µãÔÚÈýά¿Õ¼äÄÚ½øÐÐÆ½ÒƺÍÐýת,¶ÔÓÚÓɶ¥µãµÄ¼¯ºÏ±í´ïµÄÎïÌåÔò¿ÉÒÔʵÏÖÆäÔÚ¿Õ¼äµÄ¸÷ÖÖÔ˶¯¡£
Õû¸ö¹¤×÷Á÷³Ì·ÖΪÁ½Ìõ:µÚÒ»ÊǶԼ¸ºÎͼÐεĴ¦ÀíÓö¥µãÀ´ÃèÊö,¾¹ýÔËËãÆ÷ºÍ¶¥µã²Ù×÷,½øÐйâÕ¤´¦ÀíÐγÉͼԪ,·ÅÈëÖ¡»º³åÇø¡£µÚ¶þÊǶÔÏñËØÊý¾ÝµÄ´¦Àí,¾¹ýÏñËØ²Ù×÷ºó½á¹û´æ´¢ÔÚÄÚ´æÖÐ,½øÐйâÕ¤»¯´¦ÀíÐγÉͼԪ,ËÍÈëÖ¡»º³åÇøÖÐ,µÈ´ýʵÏÖͼÐÎÏÔʾ,ͼ2¡£ 3.3 OpenGL³õʼ»¯¼°Èýά·¾¶Öؽ¨
ÎÞÂÛ½øÈëOpenGLµÄºÎÖÖÊý¾Ý,¶¼½«°ÑÏñËØÐ´µ½Ö¡»º´æÉÏ¡£Ã¿Ò»¸öOpenGLÏÔʾÉ豸¶¼Ö§³ÖÌØ¶¨ÊýÄ¿µÄÏñËØ¸ñʽ¡£Ò»¸öÖ¸¶¨µÄÏñËØ¸ñʽ±ØÐëͨ¹ýPIXELFORMATDESCRIPTOR½á¹¹µÃµ½ÃèÊö¡£¸ù¾Ý½ÝÁªÊ½¹ßÐÔµ¼º½ÏµÍ³Â·¾¶µÄÈýÎ¬×ø±êµã,½øÐз¾¶µÄÈýÎ¬ÖØ½¨,»æÖƳö·¾¶µÄÈýάÇúÏß,ÀûÓÃOpenGLÖеĻæÖÆÕÛÏß¹¦Äܽ«glBegin()º¯ÊýµÄ²ÎÊýÉèΪGL_LINE_STRIP,´Ëº¯Êý»æÖƹæÂÉΪµÚÒ»¶Ô¶¥µãÃèÊöÁËÕÛÏߵĵÚÒ»ÌõÏß¶Î,ÒÔºóÿÔö¼ÓÒ»¸ö¶¥µã¾ÍÔö¼ÓÒ»ÌõÏ߶Ρ£ÔÚglBegin()/glEnd()º¯Êý¶ÔÖмÓÈë½ÝÁªÊ½¹ßÐÔµ¼º½ÏµÍ³Â·¾¶µÄÈýÎ¬×ø±êµã¡£glvertex2f()º¯ÊýÒª¸ÄΪglvertex3f()ÓÃÀ´±íʾÈýÎ¬×ø±êµã¡£ÄÇôÕâÐ©×ø±êµã»áÔÚÈýά¿Õ¼äÖÐÁ¬³ÉÒ»ÌõÈýάÇúÏß,¼´ÊµÏÖÁ˽ÝÁªÊ½¹ßÐÔµ¼º½ÏµÍ³Â·¾¶µÄÈýÎ¬ÖØ½¨¡£ 3.4 µ¼º½Â·¾¶Öؽ¨µÄʵÏÖ
¾¹ýÊý¾Ý´¦ÀíµÃµ½Ò»ÏµÁнÝÁªÊ½¹ßÐÔµ¼º½ÏµÍ³Â·¾¶µÄ×ø±êµã¡£È»ºóÀûÓÃÕâÐ©×ø±êµãͨ¹ý¼ÆËã»ú¸¨ÖúÉè¼ÆÊµÏÖ½ÝÁªÊ½¹ßµ¼ÏµÍ³¹ì¼£ÏµÍ³Â·¾¶µÄÈýÎ¬ÖØ½¨¡£Öؽ¨Ö®ºóµÃµ½¿ÉÒÔ¶Ôµ¼º½Â·¾¶µÄ¹ìµÀ½øÐÐÈýά¹Û²ì,²¢¸ü¼ÓÖ±¹ÛµÄ¶Ô½ÝÁªÊ½¹ßÐÔµ¼º½ÏµÍ³Â·¾¶¹ì¼£½øÐзÖÎö¡£Í¼3ΪÈýά·¾¶Öؽ¨½á¹û,ͼÖÐÏÔʾµÄΪÈýÎ¬×ø±êÖáºÍ½ÝÁªÊ½¹ßÐÔµ¼º½ÏµÍ³Â·¾¶µÄÈýάͼ¡£ÆäÖÐÓúìÉ«±íʾXÖá,ÂÌɫΪYÖá,À¶É«ÎªZÖá¡£ÈýÎ¬×ø±êÖáΧ³ÉÒ»¸öÈýά¿Õ¼ä,»Òɫ·¾¶¹ì¼£ÔÚÆäÈýά¿Õ¼äÖÐÏÔʾ,¸ù¾Ýµ¼º½ÏµÍ³Â·¾¶µÄ·ÖÎöµÃµ½µÄ×ø±êµã,»æÖƳö¹ì¼£ÇúÏß,·Ç³£Ö±¹ÛµÄÏÔʾ³öµ¼º½ÏµÍ³µÄÔ˶¯¹ì¼£,Äܹ»ÀûÓÃÊó±ê½øÐÐÍ϶¯,¿ÉÒÔ´Ó¸÷¸ö·½Î»½øÐй۲ì,ÒÔ±ãÓÚ¸üÖ±¹ÛµÄ¶Ôµ¼º½ÏµÍ³Â·¾¶µÄÑо¿ºÍ·ÖÎö¡£
ÁúÔ´ÆÚ¿¯Íø http://www.qikan.com.cn
4 ½áÓï
±¾ÎĶԹßÐÔµ¼º½ÏµÍ³µÄÖØÒªÐԺͻù±¾ÔÀí½øÐÐÁ˽éÉÜ¡£Õë¶Ô½ÝÁªÊ½¹ßÐÔµ¼º½ÏµÍ³,¸ù¾Ý¸ÃϵͳµÄ¹ì¼£Êý¾Ý,ÓÃOpenGLʵÏÖϵͳ·¾¶µÄÈýÎ¬ÖØ½¨¡£µ÷ÓÃOpenGL¿âº¯Êý,ʵÏÖÈýάͼµÄ×ÔÓÉÐýתºÍ¶Ô·¾¶ÇúÏßµÄÈýά¹Û²ì¡£Í¨¹ý¶Ôϵͳ·¾¶µÄÈýÎ¬ÖØ½¨,ÔËÓÃOpenGLµÃµ½Â·¾¶µÄ¹¤³Ìͼ,¶Ô·¾¶ÇúÏß½øÐÐÁ˷ֶΰ뾶±êʶ¡£Ñо¿½á¹û±íÃ÷¹ßÐÔµ¼º½ÏµÍ³²»½ö¿ÉÒÔÈ«ÃæµØ¼ì²âµ½¼¸ºõËùÓеÄÔ˶¯²ÎÊý,ÊÇÍêÈ«×ÔÖ÷ʽµÄµ¼º½²âÁ¿·½·¨,ÇÒÆä¹¤×÷ÍêÈ«²»ÊÜ×ÔÈ»µÄºÍÈËΪµÄ¸ÉÈÅÓ°Ïì,¾ßÓÐÖØÒªµÄ¾üÊÂÒâÒå¡£ ²Î¿¼ÎÄÏ×
[1] ÕÅÌì¹â.½ÝÁª¹ßÐÔµ¼º½¼¼Êõ[M].±±¾©:¹ú·À¹¤Òµ³ö°æÉç,2007:80-160.
[2] Ê·Õð.ÎÞÍÓÂݽÝÁªÊ½¹ßÐÔµ¼º½ÏµÍ³[M].¹þ¶û±õ:¹þ¶û±õ¹¤³Ì´óѧ³ö°æÉç,2005:25-89. [3] ¹ùÎÄÆ½.Visual C++»ù´¡½Ì³Ì[M].Î÷°²:Î÷°²µç×ӿƼ¼´óѧ³ö°æÉç,2006:80-160. [4] ºúÓøµÈ.VC++±à³Ì¼¼ÇÉÓëʾÀý[M].Î÷°²:Î÷°²µç×ӿƼ¼´óѧ³ö°æÉç,2000:75-120. [5] Ф¸ÕµÈ.»úеCADÔÀíÓëʵ¼ù(µÚ2°æ)[M].±±¾©:Ç廪´óѧ³ö°æÉç,2006:1-120. [6] ÏòÊÀÃ÷.OpenGL±à³ÌÓëʵÀý[M].±±¾©:µç×Ó¹¤Òµ³ö°æÉç,1999:6-55.
[7] ¹ùÕ×ÈÙ.Visual C++ OpenGLÓ¦ÓóÌÐò¿ª·¢[M].±±¾©:ÈËÃñÓʵç³ö°æÉç,2006:10-60. [8] Prentice.Hall.OpenGL ARB .OpenGL Programming Guide,1999:10-25.