| ? ?¼
60????¡????????lñ?á?????h?????l????L????????????h?£???þ???S 1.3 ? ?????j??????????
1.1????õg?1.2?L?á??Z???????·1.3h??L??????????1.4?h?L? ?£????·?I???ëh??I???????gŽMicrosoft?j??u??j????????????21? 2.1 ???g ????L?j?û'?????j???ø?????????j???????????????ã???????????????????ú?õ???Kõ???? ?J?????h?????????????ß?ô?h???1?ÿ?????l????µ???2?û?????3h'??'??????ÿ???? ?????????????????????????? ???????oo????1.1? g?h?ù?k?????g?g??1.2?g??1.3g??g??g?? [Pressmam 1999, Sommerville 1992] ?gg???g?g????"?g??z???dh???????õ??h?g??g??????h??????h????g????g?k??????h???l?????g??û??g????eg??1.3?g??g?g???g??? ù?g???J???o???L??????1.4a?h????????????1.4b?
????????????e?ô???k???k??????ý÷?????k?·i?Z?õ?gj???????j????õ???????á??Z? 2.2.1 þ???K????õKe??e??òi???i????j????áLºZ???????50??õ??gL???õg??? õ????h???????g???µgh?uK????g?L????????ð??????J¹????????????á ?õ??á??1000?????gS?gObject Oriented??????????? h???'õ???(Software Component)ÿ??µ???ÿd?'????gµ??÷?????????h??'?g???????????L?1.5? ò?'???ñ???????Microsoft?COM? [Rogerson 1999]??õ??gá
2.2.2?? ???h???????????l??"???????????ÿ?ó???????h????'??
?1.6?k?????og?z???l?k????????h?h???n??ÿ?????????? 2.2.3Z Z?Z????????'û?ã'??e?????Z?ÿ???Z???????Z?h??Z??L??????? 3D?Quake?PC?????????Quake?????µ?£Bresenham?ßü???h?h?Quake?????PC?l??????L????????j???Ik???????????????û??ã????? ?????????Z???ž?áZ?????g??L????'???õZ???? ???????š?j??L??'?õ??ü??h??????h? ????'?h?????oh3D??????????ô?????3D?????ä????? ????Lôh???ò??k???¿??Z???z???j£'???øá áZ?????ü?? ÿg10?ÿgh????20????hg?ô? 9?99?999?10??1?h????µh??
?õ????L??k??????????1?L?g??'?????á2?ûh???????????
?õ????i????ûh?????????
????u??????????1??µJ'??2????????'???????????j???á?k??????l
?????????h'?????????????????ßh
????????ô?h?????h?l??LL?????????????÷??ZL??? ????????????????
????ûõg??õg?K?÷?????BasicFortran PascalCC++??hhã???Visual BasicDelphiVisual C++Java?????ø?????k????? ???????
?????w??h?????????l?????h?w???ghg??k??üg ??L¸???l??????????á?L??g??gUg?l????g??o?û?û???
???????????h?????? [Cusumano 1996]1.1? h? ?h??û ?h?? l???L??g
????J?g?J?
???e??????easy???????????OK?? ???easyOK??????????h? 1?h? 2??_? 3????õg ?????? ?????g?ó???
3.1??
???????????????????hö???????????????l??????????g?h??????u?????????? ??±? h? ?????????û???L???????Bug?????L????ó? h???h?y??h¼?? ???????????????? ?????????h??? ??????? ??? h??h??h?h?? ?h?????? ?h??12??66? ?????w·????? ?j'?l????Lj?????l???h??????øl??y????á? ??????¡????£??¸??µ??????U????h?????g
??????????????h?¡????g???th?????? g? ?????ô ???????????????o ????h?????¶??? ?
????
???û?????ÿ?
3.2?
?h?????????ž??L?????????¡???????z????????h?Z??I?????????ûû? h???????????????h?????j?l??ü????h???h???[Cusumano1996] h??????h??h???L?h???????????????h'õ?¾?? õ??þ?¼ h?????? ÿ??h??????????h???????h????????? ?L ??á?hL??Z?????????????????Lá??????L? ? ??????zõ???????g???ùUL??hg?????????????g?????h?h??????u? û?ûy?Y?????? ?h?????????õ?
3.3????
?Microsoft????w?[Cusumano1996]Windows NT 3.0?¦µlhÿ?h??? z?hÿ?ñ???????????????i????'?????L???????ÿ?h??????? ??l??????Word???? h???ž??oh?ž??????????????????????æ???270?????ôL?h?Word°??h? ??h????ú?µ?L???ÿ?h??û???
3.4?L
??h?h???????????û???????gh???'????????????????ü??? h??h??K??????????????"??û?????????????????û????h?????ñýg?g??????? ???????????????????????l????????t????h??????????????J??L????? ??U??????????????ð?????????ôþ????ó?????????¡??????ô¸?ù?????????g?h??????l? ?????hh?h???????h?h²????????k??g??»???????'???j?z??z????????h?ÿ??????õ??hl????? ?Žh?j?z? ????lh?l?h?????????????J?????????L???L????????????????l?????????'????? ???L????l??????û??????h???????????????????????? ÿ??l???h?h?h??????????h?????h?l???????l??2.1??jl??????????????d??
3.5??? ????????L?????K??¡ ?????????L?????????z?¡???????Z???????????????l ??????g????L???????h??????????h???????????????ôJ??h?g??????³g??g?? j??h?????????j??ý??µ¶???????????gg?u????????ôô????? ??????l???????????h??L??ô???ô??j ???h?û??????????ô???????h?????????????????????J????h??????z?j??£h??g??????? ?š???L?????d£?h???h?¡???????h???U???Uh????? ????'?????µ?????h??óü?Y??????? ??????h?y????z??????????????jh??h???jh?³???????h???????j?l???ši?????199710·?h? ?'????j???òô???'???û????????û?????û????l????¾??h???h??????10C++???????'??????l????z???h 199810£?hd?????hL????£??d????t???K?h??h??µL????????ë?h??_??L????????????ë??hh?J???hjL?¼ J?????õh???û??'????????????õ?????g???h 3.6? j??h?????h???h?w?û??o? ??????????µ????ó?????ók???_?? ????????á????¶¡????h???I???54????6??j???j?û?£????jh???????ô??û????????????????????¾????????????g????h??û? ???????°?j????L??????û???i???????ÿj?h?L??????????I???£??????????????S?ø? ??ó????²??????õ???uõ??
½ó??h???????a??¡ ????????ûh????£???90??h???????µ???????¹£û¸l?h??hh?L????????????????z????? 4 ?? ????????oo???? ????h?L_???h£??????????g???t??š??????? ????h?????????????w??d????k????????????????o?????g??gL?h????? 4.1 ?? ???h??????????100% ?? ??hh?Zh????ô???æ????????????h????????????????Lg??o?????????õ??????S??S
4.1.1?? ???Lg????????????????????j????Lg????á ???h??????????????????????ò?µk???????? ??????õ???3.1??????z???????? ?õ????1.2.1??h??g???? ????????????????g???õ???????
h??æu????òg ?g?? ???g???????? h?h?µL????h? '?????h??? ?????????????lh?æ???[James 1999] ??ÿ?7:00????h???????????h?¼?? 1????z????????L?? 2???û?????g 3??Lg???? 4d???l? 5d??????? 6?????õL?¸?g ?_????h?L? 1z?þ???????????õ?????h?l? 2?Uh????????£???¡?j? ???h?????h???????h?????J?£?????g???????????u??g???á?? ???? 3h??ý???_h_??K??????ô???ô?ö?_j'æµ??? 4??????õ??????????h????Microsoft?h??z?50% [Cusumano 1996]??????????h? 5???????????????????L?????Z?????????h????
4.2?L
h???????h?100% ??????80%???100?ô???80?????60?ô???48??????????ø????????? h???????1??L?ÿ??0.95ô????0.19ÿ??0.9?ô????0.03?ÿ?1?Z1 û????K???û???????????
4.2.2??L? ?100??80?U????gõ?????h???L?? 50i?????K????g?gl?uô?? ù?????gh???h?L?d???L???????á???û???????eg????g?????
??û????ö»???????Jz???¡???????????????????
4.3
???? ??L??ù ???h??j??????????º??ù??h???t???????£??????U??ô????? ????þ????????????h??????'á????h?? ????????????????????????????????ÿ?ô?L?þ????U?S? ??????????????g?????????????????g?gg?gg?g?k?3.2?????????g??g???????????·??g?gg?g??3.2?????hh?
4.3.1??? ?????jh???????û????????h??g'h100% ????ô??????'??????û100% ???ô????h????????? ????????? ?????????????????????????h???????????????? ??hL£??????????????h'??????????h??????d???g???i?????gôh??g????????J???úúõg??h???2000?????gh??????j??????ô????ûñ?h?š
4.3.2? û??????????ô?g?????????Z?????????ZL????g????j??æ?ÿ??????ã?h???£???
4.3.3 ?û?'???û?û???'???????¶???????? ???????ë?????û?h???????û?????ã????ð??û?û????hu????á?á? 4.3.4 ?h??h???ô??h?????ú????? ??û?g????·???ñ???????ü???k??????j?????h?h?U?????h?t? h?û????¡??????h??????????h????U???i h?'???????????ú???????????L ??????h?Lh????ú????????h?K???U??gZ?????5??Lò?100???g???y??"????h?úñ??
4.3.5? õh????'??h???????'á??õ?h?õ??½??áC++
4.4 ????h???????????'?????? ???????hhS?ÿ????????ÿ_?????h??????????ô??ô?????á??á ?õ?[Pressman 1999] 1????hu'??? 2??????g?J?ñò?????? 3h?_?_????k??? 4?????? 5????? 6????
ü???¡????? ???????
h jh?J?????j??????µ??g????j?????¡?????òš??????????????????211??21?100??lt?211??????tt????????h?????hh??????h??????gž?w??????g?? ???U? ¶ ??h?????????????L??û????????h???ûtt?????ô????û?????????????h??????û?? ?????
4.5? 5?
??ô?ô '????g?g??g?????????µ??10%?90%????h????h???4.1??J??á?? ?j??????????????????g???????û????????õ??õ???'??U?L???h£ô???°g 4.2??????L??û??????h??h30???g?h200???g?h200???I?gh???100????g????????????????????h?? ???????????h????'?4.3???ô?4.4??µ??????
5.1??
?t???ôë???????????? ????û????????²??????û????g??????????? h???????á????????????L?4.2???????
5.1.1 ÿ????????
h? ??????????????šh¥i??????????g ???ô??????ô?? ??????´??????þ??????ûh????õû???û?? ????ö???????Z?????????? 1??? 2????? 3??? 4???????á 5?? 6?g?????? 7??L? 8??kã???????????????h? 9???L?á 10???á 11?áInternet??Web?ká 12?t???????ká 13?k?ã??IL?ÿh?L¶?h??
?? ?gZgu?g??¡???¿??? ??????h?????ý????Internetÿ???????úúû????i?h? ?????????????ô?L??t?ô??????h???j?Internet????????I????l??? ???????ð?·;?g?;?? 5.1.2 ??¼? 1??????L????l??????? 2S??ö?????t?????ü?????ö???????????ô?? 3S?£???h???????©????????£?jõL?ã??J?????????ò?¡ ??????úÿ
5.1.3? ?????? ???d????? d??ð?k?????????????????? ?????????????ô????????hg???L????????½? ????????DOS???£û?DOS??????DOS?????DOS ??????90?w???h?????h??????????'????L?µL???? ?????h????ã??ý???????????õ???????ø??????! h????h????????ô??????h??h??????J¡ ?????ô???????µh??LS???secretary??????????L?ÿ????????????gj?ã?Z??????L??£ÿ?æ????
5.1.4 ??????t? h???ôõk?á???šh??????? ????????????š?üõg??š???"?h????????i????¼??L£ ?????????????????? ????û????ô?????û?¶??ô????¾?? ????????ü??????ô???ôã????ÿg???????û???????U????????????????š???????L??????????? 5.2? ??????Microsoft????JMicrosoft????'J?????i?? ??h??ý????g????h????????ji?????h???i??g hInternet??YahooNetscape'h?£?????Microsoft?õ???????? ??????þ????á???????gd?ó???????L??ð?L?ë?????????g??????????J
5.2.1??h ??????h??? ???'???hh???????1997???õ??CAD&CG????????Wh?????jh?????U5????wU?????ð?????h???K??h????h?????ôô???i??hTT??????³?è?è? ????????????i????????????? h???j???? k??CAD&CG???d??Z?û??lh??? ???hh?hh??hh???h??19978£?µ??????·??g??????????????g?hõh???L?? ?hu????û????l?h??h???h??????????u?h?¾????10·????t?????????tµ????h??????10???h??h??????????â?????š??S?????????????? ???h?Soft3D???????????h?????µ??????SGI???l???? ??h??????J??1.5????h?????hl??Soft3D??h?Microsoft?K?Windows??Soft3D????????19987·?h???????¶û?199810·?ù30???ù????h????gº?k????? ?h?????????????J????? h?? 1???£h??¡?????h?w???30????û???¡????? 2??Kû????????h???????????ô??æh?hû?????? 3???û?????õ?????h?????????????û?????Z? ??J 1??????h????g?ü????'Soft3D????????'???ú?? 2????u???l????±?30%???????h?51%?49%?Soft3D??£????i?????l??? ?????L?????15??háº??????????z? ???????'??U????k?û?ô??g????K?h?øá
5.2.2?? 19993£h???????æh?8??? ??ô?? ???? ¼o??? ????????????æY??©????l???????ñ??Soft3D?????? ???ô ????? ???????L?????u??ö???Ž?? ?ãã??????k?h? ??????h?u???h6??????????????¼h??????????????????????g?ý????h??h??g??g á?K??ÿe?¡ hSInternet?l??óh?????L???h?£ ???ZYahooNetscape??h???????????????h?L???????????ô?? ?S??Internet?lô??Internet?L????£ ????ã???????z??? UõL?L????????????????j?l???????û??????? ?h???L???g??????j??? S÷???h??h???????jh????200?/?k??'Z?g???£ ???2?????9??h??10???????200???12002000?? ?ÿ???h???? ??U?ÿ?µÿ?¡ ÿ??h??'á KS???????
h??hek Internet??????ò?Z?????g?h????gû??Internet???L???????ô???jg??h'? ????h?L???????????ô?? ???'?š??Z???????Z jInternet???ÿL??ÿ???h?InternetL???????h??j£??Internet?ô?i?Internet???? ?h??????h????h????h???SGI???hJ'????g?????h??j??h????????û???????????±???h??????õ???g???l????hInternet??ô?? ??gh???h?l???????????¾?L?g?gg???g???1???????g??h???g?????z?h????? ??Z?g Internet?????Internetk?h?ûû?j??????ô??????l???g??h??????hûh????????????????????h??????l???????Z?ù?õ??SoftBank????Z????????????I????????õ???ù? Z?????????????£?'h?L?????'? + ?????hû??L????????
???ek 1????ã???????z??? ??¡?????÷?????????ô??????????? 2UõL?L????????????????j?l???????û??????? ????????? ????????????g?ISPInternet??????90??gISP?????ž????û????ôh?ISP??????h?h????wK?U??ISP??ôû?????? ? ?g???ISP??????????ISP??????j???g?Internet???¼??g?????1998?????U?h??ZISP??»?????????????????Ÿ?? 3?h???L???g??????j??? ??h?????Internet??J?1000?h??????L????h??????h?Internet???h???????1000? ???????Internet?1000?????? ??¶????Internet???h??û'Internet?????????û?ûISP?h?ISP?öô????ô???ýL?
??ek 1???2?????9??h??10???????200???12002000 ??l??10/???ôh?????200???g??·??ø?h?? 2?ÿ???h???? ??Z??? 3??U?ÿ?µÿ?¡ ?g?»??? 4ÿ??h??'á ???š?š????h??g
g??Kek ????????š ?????t?????h?K?????ô????wk???
?k???á??U??ISP?û????k
5.2.3?? ?h?????ú??? 19991£h??Gh??h?100?h?»??ÿ?wh?g??Z?5£?100???ô?û??ô£? ?G?2.5?l??????Y³Y??L??????h?G???û???100??Y40%L?? GY??????G???L???Y??Y?????????gh????L??????????Y?IT?????h????????L??K????????????8???IT???10?û?????????????????????h ?G?Y????????????100?????g G??û?100??Y?? 19995£Gh? ?????ú???? ??£????ú? ?h£Y?100? ?????GY?ö??????û?200?á ???Yÿh?????¸¾h????????ô? h20????????200?????100???????????????ûh???5·?8·??G?Y?? g?G??L?G??????Y??Y?G??G??????????g Y?h??H??G?100?½h?o???????ÿ????????z·??? G????ü???l??G??û????????©???j???????g 8·??G???????GL?????????ÿ¿???G????G?? jd?K??µl?????¶Y???????g???k????????Y????????g????? G??????????Ghµ??'S??300????G?zô???????ã?j?????????k??????h???µ???h?????????????ôgG??Ugû??U
5.3 ??ô ??'?1????2?3??
5.3.1 ?? ??????????l????????????ôã????????²??? ?????ô????????;?????????Ltû?wJ?????????Z??????h?????ô?ô? ?????g????ð?????????g??µl???????????????I??ô????
5.3.2? ?????g????? g???????ö?? ? ????ûhK??h?Ke????lh??·??g[Cline 1995] ?????????????? 1???????????lL?????? 2??h???ô??ô???????????????ô??????W?¶??
5.3.3?? ???????h????????j?z???????h??l???? ?????š????k????????¿?????á???????ö???????????????????????????? ??????gh?????????L??? h??????·??ô?ý?K????õú??g?????·?? ??ô???L??????
5.4? h????? ????ô?????1???ô2??ô????
5.4.1???ô ?????????hg????ABCDE????????????4.1?
S = { D1D2D3 Dn } Di ???P?ÿ????h Di = { P1P2P3 Pm } Pj????Fÿ???L?? Pj = { F1F2F3 Fk } ?4.1?????????????l???????? 1?ÿ????ôó??i????l?? 2???jì???jì??·
5.4.2??ô??? ?k??ü? 1?????š???? 2????²??????l?û?'??j?h????? 3??????û?g?lw?w;????j????????g
5.5? ²û?J??Z????j?ë??h??????j13??h??????J? ?ÿ? 6?? ??j?????L????????h??????????????U???o?h????? Windows NTh?????8?Microsoft?h??????L????ÿ??³????????i?ö???d???ô???ÿ?????gj?´???????'?áú????k? ½???k???ogo???oûo????ô 1????L???hL???ô??h'????? 2g????L??g?h???????g?h?????l?????h?'????? 3??????????????????g???????K?????;??????L?u???????????? 4û??hhg??????g??g?ál???????¶Unix????l???ôWindows??j????Windows????????????ùU??????øõL? ????????????????????'?????ž?õ???o?????L????¸?????U??''·???w??w???hú?U?g??h???
???????????h?ô?????ô????g????K ??????K 1????h?õ???õg?????h?????????????????????h???j?¥???h???L???????????13?ÿ???k?k?ô960??g???ð 2??h?????L£??????????_????????????????jµl???????????????ëë?ggK????????i?????ÿa??????????ò????ô????g õ??????????õ??????/Client/Server?
??ôh??????ûh???ü?hh??L???L??????¼???? h¼???? ???h?????20????????????š???5.1?h????e??ö??e????????e???5.1???¼?????¼¼??5.1???h??L?ô???'²??L?²???'???L? ?????? ??????????????hh???????l??OSI?g??5.2????????Layer??Levelk??ÿh?Kh?hk???h??h?h??jnh??jn???L?n????h?jn???h?jn?????´????????????? ÿh????????²??????h???ÿh??ô???L???L????'?h??h??Implementation?h????w?j????µ????h??[Tanenbaum 1998]
??? ?j??????h??Middleware????5.3?[Jacobson 1997]??????k???DCOMCORBA??
6.1.2?/? ??h?j???Alexander Graham Bell1876?????j?hh?û???h?h?û?û?n?ÿ?k?????????lL?j?????j???5.4a???g ??1878??h???ÿ?h??????'????????????????g?5.4b?????L????????;?????h???[Tanenbaum 1998] ?5.4b?j?????jL??ô?5.4b????/???????h??Y?? ?/??w? 1??k??????j????L¾??h? 2????????????? ?????????k?????Request?Response?5.5? á??????L???Rendezvous??h?h??L???????????h??ó'?????????????????h???????????'????h?'?????ô??h?????????/???????g??????????? Internet/Intranet?jWeb ? ?h?????/??5.6???w???h?û'÷?'ÿ??????L?????Web ?Web ???ýu?????MicrosoftASP???Web ???
?????????g??ô??????á?????g???g??L???g??????eJ????g????Lh?????g?????g??? ???g?û?????û??·??ÿ?ô?h??????????hg???g???ôL???g?g?? ?g?????????
6.2.1? h??????????????ô???j??? ¸?û´?ð????????g???h???g?g??????g???h? g??????hg????Interface?gL?g????ù????ghC++ôgL??????L?ghCOMôgL???COML??hCOM???ÿ??h?l?[Rogerson 1999] ??L???á???L?g??k?g?ú?á?jì???
6.2.2? ??Cohesionhg?????K?Couplingg???K???gg??g???????g??g??g????? h?? ??????¼? 1z???hg??????z??? 2?????L??hg?????hg???????z???h????g?????'????????g???? 3???hg?L??h?????'?????h???? 4??hg?J??g??J????? 5???hg????h??h????? 6???hg????h?h???h??????? 7??g????hL??g???
? ??¼?1hghgjã2hghg??3hg??hg??K?4g??????? ?????¼? 1?hg??Lhg,??hg?????jg??g? 2??g??h???? 3?hg??hzt????hg?zwgKz???? 4?g??????????i?'?g?? 5?g?????? 6??gû????? g?;'?ÿ???k?'?
6.2.3? hg?h?ãg??hg??g?? ?g???ì?g????gh??h????h?????????g???????g??????????õg? gg????????????k????????g????õ?? 6.3??? ??????????????L???ô???? ??hg????????½?????????? ?????õ??????g??ÿ?????????o h????h?i?????????L???h?h????????h?h?????h????Resource Constraints??ã???Efficientgh??????????ÿ??h???????????g?J?Cost?j?h?h????g ???????????????????????h????h?'õg?????h???'ü????????ø????û?g ??õ?????????h?? 1ÿh????????hµ?????????k???h??'õ????????????? 2?????????ø???????????????? 3??ó??h?õ??????? 4?????÷???õ?h?????[Shaffer 1998]
6.4û
????????ß????š????????L????????????????û??????U?û???h?û?K[ 1997]·?????????ã??????????????¼?wg
6.4.1? ???g?û????ûû?óªL??û???ûL? ?????ô?????????????h??????????l????L?'????z?Lòû?g Lû??k?z???ûL???h?û??û????????????já ???hi?l????????h????û??zk??????L?'??ý???????L'????????eLg???? ?????û????
6.4.2? ????? hl l????"L?ô?ô????l???????U????l?????? ?L??'û?'??'û?h????h???ûL????g??h?h??K???L??h?i?û??û?????L??
k k?h?h??? ??L?h??????L?û'?????F1?????õF1???ôûõ?F1h??L??ûh??¾ ?j?Visual C++Visual BasicDelphiC++ BuilderPower Builder???????û?Internet/Intranet?h???û??hµg???
L ?ûL?????gû'ý????????h??g??'????õ??û??'L???û?'?ø???????????Unix????ß???h?L?? ?h?????'?'IBM?1985????gApple??Ž??h??'õl??
6.5??? ???L?????
6.5.1? ?a???j?3D?ó?'3D?ó???á???a?APICoreGKSPHIGSPEXGLDoreRenderManHoopsOpenGL????jOpenGL???3D????UnixPC??õ??áOpenGL????????3D????3D??ó??eL?h?L???????û? OpenGL?????????S?????L?OpenGL i????C??õK?ó??????????a?????(3D Toolkit3D Engine)OpenGL?Open InventorIRIS PerFORMerOptimeizer/Cosmo3D?GLUT??Open Inventor???3D?g???ûh3D??3DL?????? z?µ?????L?????????Distributed Virtual Environments, DVEs????Computer Supported Cooperative Work, CSCW???????õ??DVEs??DIVEdVSMRRepo-3D??DVEs???3D?L???????õ3DOpen Inventor??????????????????DVEs??3D??'á ??3D?PC?????L??????5.8?? 1Intra3D 2.0?OpenGL?ý??????Window 9x/NTµL???? 2CNC 1.0???????Cooperative Network Communicator??g???g?kAPI Intra3D 2.0CNC 1.0?????L????
Intra3D 2.0l?????????ûC++COMComponent Object Model??Visual C++Visual BasicDelphi??ñ?Intra3Dl??? 1h??Basic Objects and Functions 2??????Graphical Objects 3????Scene Graph and Nodes 4???Rendering and Interaction ???5.9????õ????ø??
6.5.2.1?g? h? 1?ü?? 2???? 3?????e?? 4?????BMPGIFJPEGSGITGA?? 5ü??L??????Swept?L? 6?450?????????? ?? ?????g???Intra3D 2.0??? 1ü??????????Swept? 2g????Autodesk?.3dsg?Wavefront?.objg? 3?????????????????? ?????û'ü??µ??????L ?? ?Scene Graph??Scene Graph???1SceneNode??L?SceneNode???????a????????2??CameraNode??????????3???????(DirLightNode)??(PointLightNode)???(SpotLightNode)4??ShapeNode??????ShapeNode g? Intra3DL?h?????h??i?Intra3D??SceneView????????io??????????Intra3Dh?ö???FontDialog??ColorDialog??MaterialLibDialog??MaterialDialog??DirLightDialog, PointLightDialog, SpotLightDialog
6.5.2.2û Intra3D??SceneView???3D?ó?SceneView?selectingscalingrotatingtranslatingcreatingdeleting?????5.10? ????????3D ??MicrosoftJ???3DK??'Intra3DWindow3D???3D??5.11????5.12???'Window3D??3D???õL?i???i???g???L?HSVRGBg???Intra3Dg???????L??5.13?5.14??????
CNC ??gg???L???Producer?L???Consumer??????ÿ???????h??CNC?????CNCgg TCP???g ?? g????ÿ?????????CNCg?UDP???g
CNCClient???g???????£ class CNCClient { public: BOOL Connect(); // ? BOOL Disconnect(); // ? BOOL PublishData(); // BOOL QueryData(); // ? BOOL SubscribeData(); // GROUPIP QueryGroupIP(); // ??? DWORD MulticastMessage(); // ?? virtual void MessageResponse();// ???
}; h?g? ?ÿ??oo???????5.16??? DataPublish struct DataPublish { BYTE iDataType; // 2 ????DATA_PUBLISH char strGroupName[16]; // 16??L char strDataName[16]; // 16?? DWORD dwLifeTime; // 4 ????? DWORD dwLength; // 4 ???? char *pchContent; // };
???? 1?úQueryDatah DataQuery?ig???j?? struct DataQuery { BYTE iDataType; // 2 ????DATA_QUERY char strGroupName[16]; // 16??L char strDataName[16]; // 16?? }; 2??? DataQuery??strGroupNamestrDataName??ServerClienthFALSE????hTRUE?????DataPublish? ?õTRUE????úSubscribeData???
?g?? ??úQueryGroupIPhGroupAddress?ig????????IP? struct GroupAddress { BYTE iDataType; // 2 ????GROUP_ADDRESS char strGroupName[16]; // 16??L }; ?úMulticastMessage???????? DataMulticast£ struct DataMulticast { DWORD dwContentType; //???û char *pchContent; //???û }; ?????úMessageResponse??MessageResponse?dwContentType?d???û?
6.5.3.2CNC h?? CNC ???? 1h???????????? 2h???ö?_'?? 3ÿ?h?g?Hash?h????????J?????????Hash????Hash??DataElement struct DataElement { char strGroupName[16]; // char strDataName[16]; // ? BYTE iStorageType; // ?? STORAGE_FILE STORAGE_MEMORY ColeDateTime TimeToDie; // ? BOOL bLock; // ? TRUE FALSE DWORD dwLength; // ?? char *pchContent; // };
??iStorageType;????k????û??g??'?????????????STORAGE_MEMORY???????l??STORAGE_FILE? ??TimeToDie;???????????Hash???û??? ?bLock;???????????????????iLock????
?_ h???????????h?TCP?ÿ??CNC API????????????????????CNC ???????
Winsock' CNC 1.0Windows 9x/NT??£???Winsock?Winsock??????w??????á?'?ó?????Windows ???gw?????ó????'?ó??????????????ó????ó????? ?????CNC ????_÷?????????÷???????k?h??k??
6.5.4?? ?5.17?5.18?µ????Intra3D 2.0 CNC 1.0?5.17??CNC .3ds .obj?Kg????o?5.18??CNC ???????oh??CNC ?????j?ô?? Intra3D 2.0CNC 1.0?j??ã?? 3D?Quake?Michael Abrash L??£?h?ãôl?????ý??L??wU[Abrash 1998]
7.1C++??
class B : public A // Example ????h?C++g???????????á?ã??á?????h?'ù 2?ABgh?a part ofB?AL??A?B?Eye?Nose?MouthEar?Headh?Head?EyeNoseMouthEar??g?£ // ???? HeadEyeNoseMouthEar?ôHead?Look SmellEatListen?? 7.1.3?? void Test(A *a) class B : public A // Example ?????ô???????? void Test(A *a) class B : public A // Example A£ 7.2õi? ????????Z?õi??j? 7.2.3newdelete? // ?'p ??????????????? 7.2.4'const ???const? h??&*???ããô??òjconst?J?iò?i?ò??????lgh?ö? ????i???? int Stack::Count(void) const 7.2.5 4???= =?g=?? 8J ??W?L?h???h??L?? |
? | ? | | ? | ? | | | ? | ? | ??
Copyright® 2003 Test Engineer, Inc. All rights reserved.