OSGѧϰ¹ý³ÌÖÐµÄ±Ê¼Ç - ͼÎÄ

ģʽ£ºÓë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>À´±£´æËùÓнڵãµÄÖ¸Õ룬Êý×éÖ¸Õ룬Òò´Ë¿ÉÒÔʹÓÃË÷ÒýÀ´·ÃÎÊij¸ö×ӽڵ㡣

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¼ÆËãÊӵ㵽ÎïÌå°üÂçÌåÖÐÐĵãµÄ¾àÀë¡£Èç¹ûÕâÑù²¢²»·ûºÏäÖȾҪÇó£¬ÄÇôÓû§¿ÉÒÔÖ¸¶¨Ò»¸ö×Ô¶¨ÒåµÄÖÐÐĵ㡣

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ìæ»»Îª@)