ģʽ£ºÓëglEnableºÍglDisableÏàÀàËÆ¡£ÓÃOsg£º£ºStateSet£º£ºsetMode£¨£©¿ÉÔÚStateSetÖб£´æÒ»¸öģʽÐÅÏ¢¡£
ÊôÐÔ£ºÓÃÓÚÖÆ¶¨×´Ì¬ÐÅÏ¢£¬osg£º£ºStateSet£º£ºsetAttribute£¨£©ÔÚStateSetÖб£´æÊôÐÔÐÅÏ¢¡£
ÎÆÀíģʽºÍÊôÐÔ£ºStateSetÀà·½·¨µÄsetTextureModeºÍsetTextureAttribute½øÐÐÉèÖá£
¼Ì³Ð±ê¼Ç£ºÓÃÓÚ±êÖ¾Á¿µÄ²Ù×÷¡£ÓÃÓÚ¿ØÖƳ¡¾°Í¼ÐαéÀúÖеÄ״ֵ̬¡£ osgViewer¿â°üº¬ÁËÒÔÏÂÈý¸ö¿ÉÄÜÓõ½µÄÊÓ¿ÚÀࣺ
SimpleViewer£º¸ºÔð¹ÜÀíµ¥Ò»³¡¾°Öеĵ¥Ò»ÊÓ¿Ú¡£Ê¹ÓÃSimpleViewerʱ£¬Ó¦ÓóÌÐòÓ¦µ±´´½¨Ò»¸ö´°¿Ú²¢ÉèÖõ±Ç°µÄͼÐÎÉÏÏÂÎÄ¡£
Viewer£ºÓÃÓÚ¹ÜÀí¶à¸öͬ²½ÉãÏñ»ú£¬ËûÃǽ«´Ó¶à¸ö·½ÏòäÖȾµ¥Ò»µÄÊÓ¿Ú¡£ CompositeViewer£º´ËÀàÖ§³Öͬһ´°¿ÚµÄ¶à¸öÊÓ¿Ú£¬Ò²Ö§³Ö²»Í¬³¡¾°µÄ¶à¸öÉãÏñ»ú¡£
ÆäËûʵÓÃÀࣺosg¿â
Éæ¼°µ½osgµÄÄÚ´æÒýÓüÆÊý²ßÂÔ¡£
Referenced£ºËùÓг¡¾°Í¼ÐνڵãºÍosgµÄÐí¶àÆäËû¶ÔÏóµÄ»ùÀà¡£ËüʵÏÖÁËÒ»¸öÓÃÓÚ¸ú×ÙÄÚ´æÊ¹ÓÃÇé¿öµÄÒýÓüÆÊý¡£Èç¹ûij¸ö¼Ì³Ð×ÔReferencedÀàµÄ¶ÔÏóÒýÓüÆÊýÊýÖµµ½´ï0£¬ÄÇôϵͳ½«×Ô¶¯µ÷ÓÃÆäÎö¹¹º¯Êý²¢ÇåÀíΪ´Ë¶ÔÏó·ÖÅäµÄÄÚ´æ¡£
ref_ptr<>£ºÄ£°åÀàref_ptr<>ΪÆäÄ£°åÄÚÈݶ¨ÒåÁËÒ»¸öÖÇÄÜÖ¸Õ롣ģ°åÄÚÈݱØÐë¼Ì³Ð×ÔReferenced¡£
Object£º´¿ÐéÀ࣬һÇÐÐèÒªI/OÖ§³Ö£¬¿½±´ºÍÒýÓüÆÊýµÄ¶ÔÏóµÄ»ùÀà¡£ Notify£ºosg¿âÌṩÁËһϵÁеĿØÖƵ÷ÊÔ£¬¾¯¸æºÍ´íÎóÊä³öµÄº¯Êý¡£Óû§¿ÉÒÔͨ¹ýÖ¸¶¨Ò»¸öÀ´×ÔNotifySeverityö¾ÙÁ¿µÄÊýÖµ£¬É趨Êä³öµÄÐÅÏ¢Á¿¡£
½»ÔËË㣺osgUtil¿â
ͨ¹ýÌṩ´óÁ¿ÓÃÓÚ³¡¾°Í¼Ðν»ÔËË㣬ʹÓÃÈçÏÂÀà¿ÉÒÔ»ñµÃ³¡¾°Í¼ÐÎÖб»Ê°È¡²¿·ÖµÄÐÅÏ¢£º
Intersector£º´¿ÐéÀ࣬¶¨ÒåÁËÏཻ²âÊԵĽӿڡ£Ö´ÐÐÏཻ²âÊÔʱ£¬Ó¦ÓóÌÐò½«¼Ì³Ð×ÔIntersectorµÄij¸öÀàʵÀý»¯£¬´«µÝ¸øIntersectionVisitorµÄʵÀý£¬²¢ËæºóÇëÇó¸ÃʵÀý·µ»ØÊý¾ÝÒÔ»ñÈ¡½»ÔËËãµÄ½á¹û¡£
IntersectionVisitor£ºIntersectionVisitorËÑË÷³¡¾°Í¼ÐÎÖÐÓëÖ¸¶¨¼¸ºÎÌåÏཻµÄ½Úµã£¬¶ø×îºóµÄ²âÊÔ¹¤×÷ÓÉIntersector¼Ì³ÐÀàÍê³É¡£
LineSegmentIntersector£º¼Ì³Ð×ÔIntersector£¬ÓÃÓÚ¼ì²âÖ¸¶¨Ï߶κͳ¡¾°Í¼ÐÎÖ®¼äµÄÏཻÇé¿ö£¬²¢Ïò³ÌÐòÌṩ²éѯÏཻ²âÊÔ½á¹ûµÄº¯Êý¡£
Intersections:½»²æµã¡£
Iterator£ºµü´ú³ÌÐò¡£
PolytopeIntersector£ºÓëLineSegmentIntersectorÀàËÆ£¬¸ÃÀàÓÃÓÚ¼ì²âÓÉһϵÁÐÆ½Ãæ¹¹³ÉµÄ¶àÃæÌåµÄÏཻÇé¿ö¡£µ±Óû§µã»÷Êó±ê£¬Ï£Íûʰȡµ½Êó±êλÖø½½üµÄ·â±Õ¶àÃæÌåÇøÓòʱ£¬PolytopeIntersectorÀàÓÈÆäÓÐЧ¡£
PlaneIntersector£ºÓëLineSegmentIntersectorÀàËÆ£¬ÓÃÓÚ¼ì²âÓÉһϵÁÐÆ½Ãæ¹¹³ÉµÄÆ½ÃæµÄÏཻÇé¿ö¡£
ÓÅ»¯£ºosgUtil¿â
Optimizer£ºÓÃÓÚÓÅ»¯³¡¾°Í¼ÐΡ£
StatisticsºÍStatsVisitor£ºStatsVisitor·µ»ØÒ»¸ö³¡¾°Í¼ÐÎÖнڵãµÄ×ÜÊýºÍÀàÐÍ£¬Statistics·µ»ØäÖȾ¼¸ºÎÌåµÄ×ÜÊýºÍÀàÐÍ¡£
¼¸ºÎÌå²Ù×÷£ºosgUtil¿â
Simplifier£ºÊ¹ÓôËÀàÓÃÀ´¼õÉÙGeometry¶ÔÏóÖм¸ºÎÌåµÄÊýÄ¿£¬ÕâÓÐÖúÓÚµÍϸ½Ú²ã´ÎµÄ×Ô¶¯Éú³É¡£
Tessellator£º¸ù¾ÝÒ»×é¶¥µãµÄÁÐ±í£¬Éú³ÉÓÉǰÊöÁбíÃèÊöµÄ¶à±ßÐΣ¬¼´Ò»¸öosg£º£ºPrimitiveSet
DelaunayTriangulator£ºÊµÏÖÁËDelaunayÈý½ÇÍø¸ñ»¯ÔËË㣬¸ù¾ÝÒ»×é¶¥µãµÄ¼¯ºÏÉú³ÉһϵÁеÄÈý½ÇÐΡ£
TriStripVisitor£º±éÀú³¡¾°Í¼Í¼Ðβ¢½«¶à±ßÐÎͼԪת»¯³ÉÈý½ÇÐκÍËıßÐÎÌõ´ø¡£
SmoothingVisitor£ºSmoothingVisitor¿ÉÉú³É¶¥µã·¨Ïߣ¬Ò²¾ÍÊÇËùÓй²Ïí´Ë¶¥µãµÄÃæµÄ·¨Ï߯½¾ùÖµ¡£
ÎÆÀíÌùͼÉú³É£º°üº¬Á˽¨Á¢·´ÉäÌùͼ£¬ÖÐ;ÏòÁ¿Ìùͼ£¬¸ß¹âÌùͼ¡£
osg±Ê¼Ç¶þ
2011-07-08 17:37:06| ·ÖÀࣺOSG | ±êÇ©£º |×ֺŴóÖÐС¶©ÔÄ Ò»£®ÄÚ´æ¹ÜÀí
OsgµÄ¡°·ÏÆúÎÊÕ¼¯ÏµÍ³ÓÐÒÔÏÂÁ½¸ö×é¼þ£º
ͨÓõĻùÀࣺosg£º£ºReferenced£¬ËùÓеÄosg½ÚµãºÍ³¡¾°Í¼Ðξù¼Ì³Ð×ÔÕâÒ»»ùÀ࣬Ëü°üº¬ÁËÒ»¸öÕûÐεÄÒýÓüÆÊýÆ÷¡£
Osg¶¨ÒåµÄÖÇÄÜÖ¸ÕëÄ£°åÀàref_ptr<>¡£µ±´úÂëÖÐÒ»¸öReferenced¶ÔÏóÖ¸Õ븳ÓèÀàÐͱäÁ¿ref_ptr<>ʱ£¬ReferencedÀàµÄÒýÓüÆÊýÆ÷»á×Ô¶¯¼ÓÒ»¡£
µ±Äã´´½¨Èκμ̳Ð×ÔReferencedµÄ³¡¾°Í¼Ðνڵã»òÊý¾Ýʱ£¬ÄãµÄÓ¦ÓóÌÐò²»¿ÉÒÔÖ±½ÓÊÍ·ÅÆäÄÚ´æ¿Õ¼ä¡£
ReferencedÀࣺʵÏÖÁ˶ÔÄÚ´æÇø¶ÎµÄÒýÓüÆÊýÆ÷¹¦ÄÜ¡£ °üÀ¨Èý¸öÖ÷Òª×é³É²¿·Ö£º
±£»¤³ÉÔ±ÕûÐαäÁ¿£º_refCount£¬ÓÃ×÷ÒýÓüÆÊý¡£
¹«Óк¯Êýref£¨£©ºÍunref£¨£©ÓÃÓÚʵÏÖ_refCountµÄÔö¼Ó»ò¼õÉÙ¡£²»ÐèÒªÖ±½Óµ÷Óá£
×÷Ϊ±£»¤³ÉÔ±´æÔÚµÄÐéÎö¹¹º¯Êý¡£
ref_ptr<>Ä£°åÀࣺÓÃÓÚʵÏÖÒ»¸öÖ¸ÏòReferenced¶ÔÏóµÄÖÇÄÜÖ¸Õ룬²¢¶ÔÆäÒýÓüÆÊýÆ÷½øÐйÜÀí¡£
°üº¬ÒÔÏÂÈý¸öÖ÷ÒªµÄ×é³É²¿·Ö£º
Ò»¸ö˽ÓÐÖ¸Õë_ptr£ºÓÃÓÚ±£´æ¹ÜÀíÄÚ´æÇøÓòµÄµØÖ·¡£¿ÉÒÔÓÃget£¨£©·½·¨·µ»Ø_ptrµÄÖµ¡£
ΪÁËʹref_ptr<>¿ÉÒÔÏñÕý³£Ö¸ÕëÒ»Ñù¹¤×÷£¬ÖØÔØ»ò¶¨ÒåÁËһЩ·½·¨£¬Èçoperator->()ºÍ
Operator->()µÈ¡£
Valid·½·¨ÓÃÓÚÅжÏref_ptr<>ÊÇ·ñΪ¿Õ£¬²»ÎªNULLÔò·µ»Øtrue¡£ ×ܽ᣺
1£®½«ÅÉÉú×ÔReferencedµÄ¶ÔÏó¸³Óèref_ptr<>±äÁ¿£¬½«×Ô¶¯µ÷ÓÃReferenced£º£ºref£¨£©²¢Ê¹ÒýÓüÆÊý¼ÓÒ»¡£
2.Èç¹û½«ref_ptr<>±äÁ¿Ö¸ÏòÆäËûµÄ¶ÔÏ󣬻òÕß½«ÆäÊÍ·Å£¬ÄÇô½«µ÷ÓÃ
Referenced£º£ºunref£¨£©£¬Ê¹ÒýÓüÆÊý¼õÒ»£¬µ±ÒýÓüÆÊýµÄֵΪÁãʱ£¬unref£¨£©×Ô¶¯ÊͷŶÔÏóËùÕ¼ÓõÄÄÚ´æ¿Õ¼ä¡£
3.ΪеÄReferenced¶ÔÏ󿪱ÙÄÚ´æ¿Õ¼äʱ£¬Òª¾¡Á¿½«Æä¸³Óèref_ptr<>£¬ÒÔ±£Ö¤osgµÄÄÚ´æ¹ÜÀí¹¤×÷ÕýÈ·¡£
¶þ£®Ò¶½ÚµãºÍ¼¸ºÎÐÅÏ¢ Geometry¸ÅÊö ÏòÁ¿ÓëÊý×éÀࣺ
Osg£º£ºvec3¿ÉÓÃÀ´±£´æ¶¥µãºÍ·¨ÏßÊý¾Ý£»osg£º£ºvec4¿ÉÓÃÀ´±£´æÑÕÉ«Êý¾Ý£»osg£º£ºvec2¿ÉÓÃÀ´±£´æ2dÎÆÀí×ø±ê£¬»¹ÌṩÁËÏà¹ØµÄÏòÁ¿¼ÆË㺯Êý¡£
Ä£°åÊý×éÀࣺģ°å×î³£Ó÷¨ÊDZ£´æÏòÁ¿Êý¾Ý£¬Èçosg£º£ºVec2Array£¬osg£º£ºVec3Array£¬osg£º£ºVec4Array£¬ËùÓеÄÄ£°åÊý×éÀà¶¼¼Ì³Ð×Ôstd£º£ºvector
DrawablesÀà
ÓÃÓÚ±£´æ½«ÒªäÖȾµÄÊý¾Ý¡£ÊÇÒ»¸öÎÞ·¨Ö±½ÓʵÀý»¯µÄÐé»ùÀà¡£OsgºËÐÄ¿â´ÓDrawablesÅÉÉúÁËÈý¸ö×ÓÀࣺ
Osg£º£ºDrawPixels£¬·â×°ÁËglDrawPixels£¨£©µÄÏà¹Ø¹¦ÄÜ£»osg£º£ºShapeDrawable£¬ÌṩÁËһЩÒѾ¶¨ÒåºÃµÄ¼¸ºÎÌåµÄ½Ó¿Ú£¬ÈçÔ²ÖùÌåºÍÇò£»osg£º£ºGeometry£¬Ê¹ÓõĶ࣬Áé»î¡£
GeometryһЩ·½·¨£º
setVertexArray£¨£©£¬setColorArray£¨£©£¬setNormalArray£¨£©
setColorBinding£¨£©£¬setNormalBinding£¨£©£ºÉèÖÃÑÕÉ«ºÍ·¨Ï߰󶨷½Ê½£¬²ÎÊýÊÇgeometryµÄö¾Ù±äÁ¿ BIND_OFF=0,
BIND_OVERALL,
BIND_PER_PRIMITIVE_SET, BIND_PER_PRIMITIVE, BIND_PER_VERTEX
AddPrimitiveSet:ÓÃÓÚÉèÖÃGeometryÀàÊý¾ÝäÖȾµÄ·½·¨¡£²ÎÊýΪ
PrimitiveSet* primitiveset£ºPrimitiveSetÎÞ·¨ÊµÀý»¯µÄÐé»ùÀà¡£PrimitiveSetµÄ×ÓÀࣺDrawArrays(GLenum mode, GLint first, GLsizei count, int numInstances=0)¡£
Ò¶½Úµã
Osg£º£ºGeodeÊÇosgµÄÒ¶½Úµã£¬ËüÓÃÓÚ±£´æ¼¸ºÎÐÅÏ¢ÓÃÓÚäÖȾ¡£ Èý×é½ÚµãGroup
ÔÊÐíÓû§³ÌÐòΪÆäÌí¼ÓÈÎÒâÊýÁ¿µÄ×ӽڵ㣬×ӽڵ㱾ÉíÒ²¿ÉÒÔ¼ÌÐø·Ö·¢×ӽڵ㡣²¢ÇÒÅÉÉú³öÁËÐí¶àµÄ×ÓÀࣺosg£º£ºTransform£¬osg£º£ºLOD£¬osg£º£ºSwitchµÈ¡£
ÓÉReferencedÅÉÉú£¬¿ÉÒÔ×Ô¶¯¹ÜÀíÄÚ´æ¿Õ¼ä¡£ Osg±à³ÌµÄºËÐIJ¿·Ö£¬ËüʹµÃÓû§Ó¦ÓóÌÐò¿ÉÒÔÓÐЧ×éÖ¯³¡¾°Í¼ÐÎÖеÄÊý¾Ý£¬ËüµÄÇ¿´óÖ®´¦ÔÚÓÚËü¹ÜÀí×Ó½ÚµãµÄ½Ó¿Ú£¬»¹´ÓNode´¦¼Ì³ÐÁ˹ÜÀí¸¸½ÚµãµÄ½Ó¿Ú¡£
1.×Ó½Ó¿Ú£ºGroupʹÓÃstd£º£ºvector
2.¸¸½Ó¿Ú£ºGroup´ÓNodeÄÇÀï¼Ì³ÐÁ˸¸½Úµã¹ÜÀíµÄ½Ó¿Ú£¬ÔÊÐí½ÚµãÓжà¸ö¸¸½Úµã¡£
3.±ä»»½Úµã£ºTranform¶ÔOpenGLµÄÄ£ÐÍÊÓͼ¾ØÕó¶ÑÕ»²úÉúÓ°Ïì¡£Ðé»ùÀ࣬ÎÞ·¨ÊµÀý»¯¡£Óû§Ó¦µ±Ê¹ÓÃosg£º£ºMatrixTransform»òosg£º£ºPositionAttitudeTransformÀ´Ìæ´úËü£¬ÕâÁ½Õß¾ù¼Ì³Ð×ÔTranform¡£
Matrix£ºosgÖеľØÕóÀ࣬²ÉÓÃ×ó³Ë£¬ÁÐÊý×龨Õó£¬ÓëopenglÏà·´¡£ ¾ØÕó±ä»»½Úµã£ºMatrixTransform
MatrixTransformµÄÄÚ²¿Ê¹ÓÃÁËosg£º£ºMatrix¶ÔÏó£¬Òª´´½¨Ò»¸öÖ´Ðб任µÄMatrixTransform½Úµã£¬Ê×ÏÈÒª´´½¨±ä»»¾ØÕóMatrix²¢½«Æä¹ØÁªµ½MatrixTransform¡£
λÖÃÊôÐԱ任½ÚµãPositionAttitudeTransform
ʹÓÃPositionAttitudeTransform½Úµã¿ÉÒÔʵÏÖʹÓÃVec3λÖÃ×ø±êºÍÒ»¸öËÄÔªÊýÍê³ÉµÄ±ä»»²Ù×÷¡£OsgʹÓÃQuatÀ´±£´æËÄÔªÊý·½Î»Êý¾Ý¡£
4.ϸ½Ú²ã´Î½Úµã LOD
LODÔÊÐíÓû§Ö¸¶¨¸÷¸ö×Ó½ÚµãµÄÓÐЧ·¶Î§¡£¸Ã·¶Î§°üÀ¨ÁË×î´ó¼°×îСֵ£¬È±Ê¡Çé¿öÏÂÆäÒâÒå±íʾΪ¾àÀë¡£
ȱʡÌõ¼þÏ£¬LOD¼ÆËãÊӵ㵽ÎïÌå°üÂçÌåÖÐÐĵãµÄ¾àÀë¡£Èç¹ûÕâÑù²¢²»·ûºÏäÖȾҪÇó£¬ÄÇôÓû§¿ÉÒÔÖ¸¶¨Ò»¸ö×Ô¶¨ÒåµÄÖÐÐĵ㡣