
ã¯ããã«
OpenSceneGraph ïŒä»¥éOSGãšåŒã³ãŸãïŒã¯ãC ++ã§èšè¿°ããããªãŒãã³ã¯ãã¹ãã©ãããã©ãŒã ãã¬ãŒã ã¯ãŒã¯ã§ãããã°ã©ãã«OpenGLãžã®ãªããžã§ã¯ãã€ã³ã¿ãŒãã§ã€ã¹ãæäŸããã°ã©ãã£ãã¯ãšã³ãžã³ã衚ããŸãã ç§ãã¡ã®åœã§ã¯ããã®ãšã³ãžã³ã¯ç¹ã«äººæ°ããããŸãããHabréã§ããã
ããã«ã€ããŠå€ããå°ãªãããŸãšããªåºçç©ãèŠãã ãã§ãã OSGã¯æµ·å€ã§å€ã䜿çšãããŠããŸããããšãã°ãç¡æã®
FlightGearãã©ã€ãã·ãã¥ã¬ãŒã¿ã®åºç€ã§ããã
OpenMWãšåŒã°ããMorrowindã²ãŒã ã®ãªãŒãã³ãªå®è£
ããã
ããã®éçºã
Ogreãšã³ãžã³ããOSGã«è»¢éãããŸãã ããã«é¢ãããã·ã¢èªã®ããã¥ã¡ã³ãã¯æ¶ããŠããã»ã©å°ãããè±èªã®ããã¥ã¡ã³ãã®äžã§æ³šç®ã«å€ããã®ã¯éçºè
ããã®äžé£ã®æ¬ã ãã§ãïŒ
OpenSceneGraph 3.0ã åå¿è
åãã¬ã€ãããã³
OpenSceneGraph 3.ã¯ãã¯ãã㯠ã
ããã§ãããã®ãšã³ãžã³ã¯æ¬¡ã®çç±ã§éåžžã«è峿·±ããã®ã§ãã
- C ++ã§ã®ãªãŒãã³ãªã¯ãã¹ãã©ãããã©ãŒã å®è£
ã
- ã¢ãžã¥ã©ãŒã¢ãŒããã¯ãã£ã
- çµã¿èŸŒã¿ã®ãã©ã°ã€ã³ã·ã¹ãã ã«ããæ¡åŒµæ§ã
- ã°ã©ãã£ãã¯ããŒã¿ã®ãã«ãã¹ã¬ããåŠçãšãã®å®è£
ã®ããã®çµã¿èŸŒã¿ããŒã«ã®å¯èœæ§
- ã¹ããŒããã€ã³ã¿ãŒã¡ã«ããºã ã«ããåçã¡ã¢ãªç®¡ç
Habrã®èªè
ã«ãšã£ãŠããã®ãããžã§ã¯ãããã詳ããç¥ãããšã¯è峿·±ããšæããŸãã ãã·ã¢èªã®OSGç¥èããŒã¹ã®è£å
ã¯äžèŠã§ã¯ãããŸããã ãã®ãããã¯ã«é¢ããŠç§ãå
¬éãããã¹ãŠã®è³æã¯ã
OpenSceneGraph 3.0ãšããæ¬ã«åºã¥ããŠã
ãŸãã åå¿è
åãã¬ã€ãã§ããããããã¯ç¿»èš³ã§ã¯ãªããããã«æç€ºãããŠããè³æã®åµé çãªæ¹èšçã§ãã ãã®ãããã¯ã«èå³ããããªããã«ããããé¡ãããŸã
ãã·ã³ã§OSGã®ææ°ããŒãžã§ã³ãå
¥æããå¯äžã®ç¢ºå®ãªæ¹æ³ã¯ããœãŒã¹ããã©ã€ãã©ãªããã«ãããããšã§ãã Windowsçšã®æ¢åã®ãã€ããªã€ã³ã¹ããŒã©ãŒã¯ãMS Visual C ++ã³ã³ãã€ã©ãŒã«çŠç¹ãåœãŠãŠããŸãã ç§ã«ãšã£ãŠãç§ã®ãããžã§ã¯ãã§ã¯ãGCCã³ã³ãã€ã©ããŸãã¯Qtãã¬ãŒã ã¯ãŒã¯éçºããŒã«ã®äŸçµŠã«å«ãŸããŠããMinGW32ã®ããŒãžã§ã³ã䜿çšããå¿
èŠããããŸãã å¿
èŠãªã®ã¯ïŒ
- MinGW32ããŒãžã§ã³5.3ã³ã³ãã€ã©ããã³QtCreator IDEã䜿çšããŠã€ã³ã¹ããŒã«ããã³æ§æãããQtãã¬ãŒã ã¯ãŒã¯
- WindowsçšGitã¯ã©ã€ã¢ã³ã
- Windowsçšã®CmakeãŠãŒãã£ãªãã£
èªè
ã¯ãQtãããžã§ã¯ãã§äœ¿çšãããQtCreator IDEããã³qmakeãã«ãã·ã¹ãã ã«ç²ŸéããŠããå¿
èŠããããŸãã ããã«ãèªè
ã¯GitããŒãžã§ã³ç®¡çã·ã¹ãã ã®äœ¿çšã®åºæ¬ãçè§£ããŠãããååãšããŠãŒã以å€ã®ããã°ã©ãã³ã°ã¹ãã«ãæã£ãŠããããšãåæãšããŠããŸãã
1. OpenSceneGraphãœãŒã¹ã®ååŸ
ããšãã°ããã¹DïŒ\ OSGã«æ²¿ã£ãŠãOSGãæ§ç¯ããããŒããã©ã€ãã«ãã£ã¬ã¯ããªãäœæããŸãã

ãã®ãã£ã¬ã¯ããªã«ç§»åããŠ
ãGithubã®å
¬åŒOSGãªããžããªãããœãŒã¹ãååŸã
ãŸãD:\OSG> git clone https:
ããŠã³ããŒãããã»ã¹ã®é·ãã¯ãã€ã³ã¿ãŒãããã¢ã¯ã»ã¹ãã£ãã«ã®å¹
ã«ãã£ãŠç°ãªããŸãã é
ããæ©ãããOSGãªããžããªã®ããŒã«ã«ã³ããŒãåãåããŸãã
ãœãŒã¹ãããŠã³ããŒãããåŸãè¿ãã«build-win32-debugãã£ã¬ã¯ããªãäœæããŸã

ãã®ãã£ã¬ã¯ããªã§ãOSGãããã°ããããäœæããŸãã ããããåã«
2. cmakeãæ§æãã
cmakeãæ£ããæ©èœããããã«
ã¯ãinstall-path-cmake \ share \ cmake-3.13 \ Modules \ CMakeMinGWFindMake.cmakeãã¡ã€ã«ãç·šé
ããå¿
èŠããã
ãŸã ã ããã©ã«ãã§ã¯ããã®ããã«èŠããŸã
ãŠãŒãã£ãªãã£ã¯ã·ã¹ãã å
ã§Unixã·ã§ã«ãæ¢ããããšãããèŠã€ãããªãå Žåã¯ãšã©ãŒã§çµäºããããã«ãæ°è¡ãã³ã¡ã³ãã¢ãŠãããŸãã
3.ãšã³ãžã³ã®ãããã°ããŒãžã§ã³ãšãªãªãŒã¹ããŒãžã§ã³ã®ã¢ã»ã³ããªãšã€ã³ã¹ããŒã«
次ã«ãcmdã·ã§ã«ãå®è¡ããŸããã·ã§ãŒãã«ããã¯ãã¹ã¿ãŒã->ããã°ã©ã -> Qt-> Qt 5.11.2-> Qt 5.11.2 for DesktopïŒMinGW 5.3.0 32bitïŒã«ãããŸãã

å®è¡äžã®ã³ãã³ãã©ã€ã³ã»ãã·ã§ã³ã¯ãmingw32ãã«ãããŒã«ãæ©èœããããã«å¿
èŠãªç°å¢å
šäœãã»ããã¢ããããŸãã OSGãœãŒã¹ãã£ã¬ã¯ããªã«ç§»åããŸã
C:\Qt\Qt5.11.2\5.11.2\mingw53_32>D: D:\> cd OSG\build-win32-debug
ã³ãã³ããäžãã
D:\OSG\build-win32-debug>cmake -G "MinGW Makefiles" -DCMAKE_INSTALL_PREFIX=E:\Apps\OSG -DCMAKE_BUILD_TYPE=DEBUG ../OpenSceneGraph
ãã©ã¡ãŒã¿ãŒã®æå³ãããã«è©³ããåæããŠã¿ãŸãããã
- -G "MinGW Makefiles"-mingw32-makeãŠãŒãã£ãªãã£çšã®Makefileãçæããå¿
èŠãããããšã瀺ããŸã
- -DCMAKE_INSTALL_PREFIX = EïŒ\ Apps \ OSG-OSGãã€ã³ã¹ããŒã«ããããã¹ãèšå®ããŸã
- -DCMAKE_BUILD_TYPE = DEBUG-ãšã³ãžã³ã®ãããã°ããŒãžã§ã³ããã«ãããå¿
èŠãããããšã瀺ããŸãã
ã³ãã³ãã®å®è¡ã¯ãã¢ã»ã³ããªã®ç°å¢ã®æºåç¶æ³ã確èªãããã«ãã¹ã¯ãªãããšæ¬¡ã®ææ°ãçæããŸã
OSGãã«ããæ§æãããšãã®Cmakeã®ææ° -- The C compiler identification is GNU 5.3.0 -- The CXX compiler identification is GNU 5.3.0 -- Check for working C compiler: C:/Qt/Qt5.11.2/Tools/mingw530_32/bin/gcc.exe -- Check for working C compiler: C:/Qt/Qt5.11.2/Tools/mingw530_32/bin/gcc.exe -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Check for working CXX compiler: C:/Qt/Qt5.11.2/Tools/mingw530_32/bin/g++.exe -- Check for working CXX compiler: C:/Qt/Qt5.11.2/Tools/mingw530_32/bin/g++.exe -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- Looking for pthread.h -- Looking for pthread.h - found -- Looking for pthread_create -- Looking for pthread_create - found -- Found Threads: TRUE -- Found OpenGL: opengl32 -- Could NOT find EGL (missing: EGL_INCLUDE_DIR) -- Checking windows version... -- Performing Test GL_HEADER_HAS_GLINT64 -- Performing Test GL_HEADER_HAS_GLINT64 - Failed -- Performing Test GL_HEADER_HAS_GLUINT64 -- Performing Test GL_HEADER_HAS_GLUINT64 - Failed -- 32 bit architecture detected -- Could NOT find Freetype (missing: FREETYPE_LIBRARY FREETYPE_INCLUDE_DIRS) -- Could NOT find JPEG (missing: JPEG_LIBRARY JPEG_INCLUDE_DIR) -- Could NOT find Jasper (missing: JASPER_LIBRARIES JASPER_INCLUDE_DIR JPEG_LIBRARIES) -- Could NOT find LibXml2 (missing: LIBXML2_LIBRARY LIBXML2_INCLUDE_DIR) -- Could NOT find ZLIB (missing: ZLIB_INCLUDE_DIR) -- Could NOT find ZLIB (missing: ZLIB_INCLUDE_DIR) -- Could NOT find GDAL (missing: GDAL_LIBRARY GDAL_INCLUDE_DIR) -- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE) -- Could NOT find CURL (missing: CURL_LIBRARY CURL_INCLUDE_DIR) -- Trying to find DCMTK expecting DCMTKConfig.cmake -- Trying to find DCMTK expecting DCMTKConfig.cmake - failed -- Trying to find DCMTK relying on FindDCMTK.cmake -- Please set DCMTK_DIR and re-run configure (missing: DCMTK_config_INCLUDE_DIR DCMTK_dcmdata_INCLUDE_DIR DCMTK_dcmimage_INCLUDE_DIR DCMTK_dcmimgle_INCLUDE_DIR DCMTK_dcmjpeg_INCLUDE_DIR DCMTK_dcmjpls_INCLUDE_DIR DCMTK_dcmnet_INCLUDE_DIR DCMTK_dcmpstat_INCLUDE_DIR DCMTK_dcmqrdb_INCLUDE_DIR DCMTK_dcmsign_INCLUDE_DIR DCMTK_dcmsr_INCLUDE_DIR DCMTK_dcmtls_INCLUDE_DIR DCMTK_ofstd_INCLUDE_DIR DCMTK_oflog_INCLUDE_DIR) -- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE) -- Could NOT find GStreamer (missing: GSTREAMER_INCLUDE_DIRS GSTREAMER_LIBRARIES GSTREAMER_VERSION GSTREAMER_BASE_INCLUDE_DIRS GSTREAMER_BASE_LIBRARIES GSTREAMER_APP_INCLUDE_DIRS GSTREAMER_APP_LIBRARIES GSTREAMER_PBUTILS_INCLUDE_DIRS GSTREAMER_PBUTILS_LIBRARIES) (found version "") -- Could NOT find SDL2 (missing: SDL2_LIBRARY SDL2_INCLUDE_DIR) -- Could NOT find SDL (missing: SDL_LIBRARY SDL_INCLUDE_DIR) -- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE) -- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE) -- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE) -- Could NOT find JPEG (missing: JPEG_LIBRARY JPEG_INCLUDE_DIR) -- Could NOT find ZLIB (missing: ZLIB_INCLUDE_DIR) -- Could NOT find PNG (missing: PNG_LIBRARY PNG_PNG_INCLUDE_DIR) -- Could NOT find TIFF (missing: TIFF_LIBRARY TIFF_INCLUDE_DIR) -- g++ version 5.3.0 -- Performing Test _OPENTHREADS_ATOMIC_USE_GCC_BUILTINS -- Performing Test _OPENTHREADS_ATOMIC_USE_GCC_BUILTINS - Success -- Performing Test _OPENTHREADS_ATOMIC_USE_MIPOSPRO_BUILTINS -- Performing Test _OPENTHREADS_ATOMIC_USE_MIPOSPRO_BUILTINS - Failed -- Performing Test _OPENTHREADS_ATOMIC_USE_SUN -- Performing Test _OPENTHREADS_ATOMIC_USE_SUN - Failed -- Performing Test _OPENTHREADS_ATOMIC_USE_WIN32_INTERLOCKED -- Performing Test _OPENTHREADS_ATOMIC_USE_WIN32_INTERLOCKED - Success -- Performing Test _OPENTHREADS_ATOMIC_USE_BSD_ATOMIC -- Performing Test _OPENTHREADS_ATOMIC_USE_BSD_ATOMIC - Failed -- Configuring done -- Generating done -- Build files have been written to: D:/OSG/build-win32-debug
ã®configureïŒè¡æ¹äžæïŒDCMTK_config_INCLUDE_DIR DCMTK_dcmdata_INCLUDE_DIR DCMTK_dcmimage_INCLUDE_DIR DCMTK_dcmimgle_INCLUDE_DIR DCMTK_dcmjpeg_INCLUDE_DIR DCMTK_dcmjpls_INCLUDE_DIR DCMTK_dcmnet_INCLUDE_DIR DCMTK_dcmpstat_INCLUDE_DIR DCMTK_dcmqrdb_INCLUDE_DIR DCMTK_dcmsign_INCLUDE_DIR DCMTK_dcmsr_INCLUDE_DIR DCMTK_dcmtls_INCLUDE_DIR DCMTK_ofstd_INCLUDE_DIR DCMTK_oflog_INCLUDE_DIRïŒ -- The C compiler identification is GNU 5.3.0 -- The CXX compiler identification is GNU 5.3.0 -- Check for working C compiler: C:/Qt/Qt5.11.2/Tools/mingw530_32/bin/gcc.exe -- Check for working C compiler: C:/Qt/Qt5.11.2/Tools/mingw530_32/bin/gcc.exe -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Check for working CXX compiler: C:/Qt/Qt5.11.2/Tools/mingw530_32/bin/g++.exe -- Check for working CXX compiler: C:/Qt/Qt5.11.2/Tools/mingw530_32/bin/g++.exe -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- Looking for pthread.h -- Looking for pthread.h - found -- Looking for pthread_create -- Looking for pthread_create - found -- Found Threads: TRUE -- Found OpenGL: opengl32 -- Could NOT find EGL (missing: EGL_INCLUDE_DIR) -- Checking windows version... -- Performing Test GL_HEADER_HAS_GLINT64 -- Performing Test GL_HEADER_HAS_GLINT64 - Failed -- Performing Test GL_HEADER_HAS_GLUINT64 -- Performing Test GL_HEADER_HAS_GLUINT64 - Failed -- 32 bit architecture detected -- Could NOT find Freetype (missing: FREETYPE_LIBRARY FREETYPE_INCLUDE_DIRS) -- Could NOT find JPEG (missing: JPEG_LIBRARY JPEG_INCLUDE_DIR) -- Could NOT find Jasper (missing: JASPER_LIBRARIES JASPER_INCLUDE_DIR JPEG_LIBRARIES) -- Could NOT find LibXml2 (missing: LIBXML2_LIBRARY LIBXML2_INCLUDE_DIR) -- Could NOT find ZLIB (missing: ZLIB_INCLUDE_DIR) -- Could NOT find ZLIB (missing: ZLIB_INCLUDE_DIR) -- Could NOT find GDAL (missing: GDAL_LIBRARY GDAL_INCLUDE_DIR) -- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE) -- Could NOT find CURL (missing: CURL_LIBRARY CURL_INCLUDE_DIR) -- Trying to find DCMTK expecting DCMTKConfig.cmake -- Trying to find DCMTK expecting DCMTKConfig.cmake - failed -- Trying to find DCMTK relying on FindDCMTK.cmake -- Please set DCMTK_DIR and re-run configure (missing: DCMTK_config_INCLUDE_DIR DCMTK_dcmdata_INCLUDE_DIR DCMTK_dcmimage_INCLUDE_DIR DCMTK_dcmimgle_INCLUDE_DIR DCMTK_dcmjpeg_INCLUDE_DIR DCMTK_dcmjpls_INCLUDE_DIR DCMTK_dcmnet_INCLUDE_DIR DCMTK_dcmpstat_INCLUDE_DIR DCMTK_dcmqrdb_INCLUDE_DIR DCMTK_dcmsign_INCLUDE_DIR DCMTK_dcmsr_INCLUDE_DIR DCMTK_dcmtls_INCLUDE_DIR DCMTK_ofstd_INCLUDE_DIR DCMTK_oflog_INCLUDE_DIR) -- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE) -- Could NOT find GStreamer (missing: GSTREAMER_INCLUDE_DIRS GSTREAMER_LIBRARIES GSTREAMER_VERSION GSTREAMER_BASE_INCLUDE_DIRS GSTREAMER_BASE_LIBRARIES GSTREAMER_APP_INCLUDE_DIRS GSTREAMER_APP_LIBRARIES GSTREAMER_PBUTILS_INCLUDE_DIRS GSTREAMER_PBUTILS_LIBRARIES) (found version "") -- Could NOT find SDL2 (missing: SDL2_LIBRARY SDL2_INCLUDE_DIR) -- Could NOT find SDL (missing: SDL_LIBRARY SDL_INCLUDE_DIR) -- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE) -- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE) -- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE) -- Could NOT find JPEG (missing: JPEG_LIBRARY JPEG_INCLUDE_DIR) -- Could NOT find ZLIB (missing: ZLIB_INCLUDE_DIR) -- Could NOT find PNG (missing: PNG_LIBRARY PNG_PNG_INCLUDE_DIR) -- Could NOT find TIFF (missing: TIFF_LIBRARY TIFF_INCLUDE_DIR) -- g++ version 5.3.0 -- Performing Test _OPENTHREADS_ATOMIC_USE_GCC_BUILTINS -- Performing Test _OPENTHREADS_ATOMIC_USE_GCC_BUILTINS - Success -- Performing Test _OPENTHREADS_ATOMIC_USE_MIPOSPRO_BUILTINS -- Performing Test _OPENTHREADS_ATOMIC_USE_MIPOSPRO_BUILTINS - Failed -- Performing Test _OPENTHREADS_ATOMIC_USE_SUN -- Performing Test _OPENTHREADS_ATOMIC_USE_SUN - Failed -- Performing Test _OPENTHREADS_ATOMIC_USE_WIN32_INTERLOCKED -- Performing Test _OPENTHREADS_ATOMIC_USE_WIN32_INTERLOCKED - Success -- Performing Test _OPENTHREADS_ATOMIC_USE_BSD_ATOMIC -- Performing Test _OPENTHREADS_ATOMIC_USE_BSD_ATOMIC - Failed -- Configuring done -- Generating done -- Build files have been written to: D:/OSG/build-win32-debug
ïŒèŠã€ãããŒãžã§ã³""ïŒGSTREAMER_INCLUDE_DIRS GSTREAMER_LIBRARIES GSTREAMER_VERSION GSTREAMER_BASE_INCLUDE_DIRS GSTREAMER_BASE_LIBRARIES GSTREAMER_APP_INCLUDE_DIRS GSTREAMER_APP_LIBRARIES GSTREAMER_PBUTILS_INCLUDE_DIRS GSTREAMER_PBUTILS_LIBRARIESïŒ -- The C compiler identification is GNU 5.3.0 -- The CXX compiler identification is GNU 5.3.0 -- Check for working C compiler: C:/Qt/Qt5.11.2/Tools/mingw530_32/bin/gcc.exe -- Check for working C compiler: C:/Qt/Qt5.11.2/Tools/mingw530_32/bin/gcc.exe -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Check for working CXX compiler: C:/Qt/Qt5.11.2/Tools/mingw530_32/bin/g++.exe -- Check for working CXX compiler: C:/Qt/Qt5.11.2/Tools/mingw530_32/bin/g++.exe -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- Looking for pthread.h -- Looking for pthread.h - found -- Looking for pthread_create -- Looking for pthread_create - found -- Found Threads: TRUE -- Found OpenGL: opengl32 -- Could NOT find EGL (missing: EGL_INCLUDE_DIR) -- Checking windows version... -- Performing Test GL_HEADER_HAS_GLINT64 -- Performing Test GL_HEADER_HAS_GLINT64 - Failed -- Performing Test GL_HEADER_HAS_GLUINT64 -- Performing Test GL_HEADER_HAS_GLUINT64 - Failed -- 32 bit architecture detected -- Could NOT find Freetype (missing: FREETYPE_LIBRARY FREETYPE_INCLUDE_DIRS) -- Could NOT find JPEG (missing: JPEG_LIBRARY JPEG_INCLUDE_DIR) -- Could NOT find Jasper (missing: JASPER_LIBRARIES JASPER_INCLUDE_DIR JPEG_LIBRARIES) -- Could NOT find LibXml2 (missing: LIBXML2_LIBRARY LIBXML2_INCLUDE_DIR) -- Could NOT find ZLIB (missing: ZLIB_INCLUDE_DIR) -- Could NOT find ZLIB (missing: ZLIB_INCLUDE_DIR) -- Could NOT find GDAL (missing: GDAL_LIBRARY GDAL_INCLUDE_DIR) -- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE) -- Could NOT find CURL (missing: CURL_LIBRARY CURL_INCLUDE_DIR) -- Trying to find DCMTK expecting DCMTKConfig.cmake -- Trying to find DCMTK expecting DCMTKConfig.cmake - failed -- Trying to find DCMTK relying on FindDCMTK.cmake -- Please set DCMTK_DIR and re-run configure (missing: DCMTK_config_INCLUDE_DIR DCMTK_dcmdata_INCLUDE_DIR DCMTK_dcmimage_INCLUDE_DIR DCMTK_dcmimgle_INCLUDE_DIR DCMTK_dcmjpeg_INCLUDE_DIR DCMTK_dcmjpls_INCLUDE_DIR DCMTK_dcmnet_INCLUDE_DIR DCMTK_dcmpstat_INCLUDE_DIR DCMTK_dcmqrdb_INCLUDE_DIR DCMTK_dcmsign_INCLUDE_DIR DCMTK_dcmsr_INCLUDE_DIR DCMTK_dcmtls_INCLUDE_DIR DCMTK_ofstd_INCLUDE_DIR DCMTK_oflog_INCLUDE_DIR) -- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE) -- Could NOT find GStreamer (missing: GSTREAMER_INCLUDE_DIRS GSTREAMER_LIBRARIES GSTREAMER_VERSION GSTREAMER_BASE_INCLUDE_DIRS GSTREAMER_BASE_LIBRARIES GSTREAMER_APP_INCLUDE_DIRS GSTREAMER_APP_LIBRARIES GSTREAMER_PBUTILS_INCLUDE_DIRS GSTREAMER_PBUTILS_LIBRARIES) (found version "") -- Could NOT find SDL2 (missing: SDL2_LIBRARY SDL2_INCLUDE_DIR) -- Could NOT find SDL (missing: SDL_LIBRARY SDL_INCLUDE_DIR) -- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE) -- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE) -- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE) -- Could NOT find JPEG (missing: JPEG_LIBRARY JPEG_INCLUDE_DIR) -- Could NOT find ZLIB (missing: ZLIB_INCLUDE_DIR) -- Could NOT find PNG (missing: PNG_LIBRARY PNG_PNG_INCLUDE_DIR) -- Could NOT find TIFF (missing: TIFF_LIBRARY TIFF_INCLUDE_DIR) -- g++ version 5.3.0 -- Performing Test _OPENTHREADS_ATOMIC_USE_GCC_BUILTINS -- Performing Test _OPENTHREADS_ATOMIC_USE_GCC_BUILTINS - Success -- Performing Test _OPENTHREADS_ATOMIC_USE_MIPOSPRO_BUILTINS -- Performing Test _OPENTHREADS_ATOMIC_USE_MIPOSPRO_BUILTINS - Failed -- Performing Test _OPENTHREADS_ATOMIC_USE_SUN -- Performing Test _OPENTHREADS_ATOMIC_USE_SUN - Failed -- Performing Test _OPENTHREADS_ATOMIC_USE_WIN32_INTERLOCKED -- Performing Test _OPENTHREADS_ATOMIC_USE_WIN32_INTERLOCKED - Success -- Performing Test _OPENTHREADS_ATOMIC_USE_BSD_ATOMIC -- Performing Test _OPENTHREADS_ATOMIC_USE_BSD_ATOMIC - Failed -- Configuring done -- Generating done -- Build files have been written to: D:/OSG/build-win32-debug
çµã¿ç«ãŠãéå§ã§ããããšãæããŠãããŸãã ã³ãã³ããäžãã
D:\OSG\build-win32-debug>mingw32-make -j9
ç§ã®äŸã®ããã«ããã«ãã³ã¢ããã»ããµïŒ-jã¹ã€ããïŒãããå Žåã¯ãã¢ã»ã³ããªã¹ã¬ããã®æ°ãæå®ã§ããŸãã ãã«ãããã»ã¹ãéå§ãããã³ã³ãã¥ãŒã¿ãŒã§çŽ8åããããŸã

ã¢ã»ã³ããªã®æåŸã«ãã©ã€ãã©ãªãã€ã³ã¹ããŒã«ããŸã
D:\OSG\build-win32-debug> mingw32-make install
ã³ãã³ããå®è¡ãããåŸã以åã«èšå®ãããã¹ã«ã€ã³ã¹ããŒã«ãããã©ã€ãã©ãªãèŠã€ãããŸã

次ã«ãå¥ã®ãã«ããã£ã¬ã¯ããªãäœæããŠããšã³ãžã³ã®ãªãªãŒã¹ããŒãžã§ã³ããã«ãããŸãããã
D:\OSG\build-win32-debug>cd .. D:\OSG> mkdir build-win32-release D:\OSG>cd build-win32-release D:\OSG\build-win32-release> cmake -G "MinGW Makefiles" -DCMAKE_INSTALL_PREFIX=E:\Apps\OSG ../OpenSceneGraph D:\OSG\build-win32-release> mingw32-make -j9 D:\OSG\build-win32-release> mingw32-make install
4.ç°å¢å€æ°ã®èšå®
ã€ã³ã¹ããŒã«åŸã®OSGã©ã€ãã©ãªã®å Žæã¯ä»»æã§ããç¹å®ã®ãŠãŒã¶ãŒã®åžæãšãã³ã³ãã¥ãŒã¿ãŒã«ãã¡ã€ã«ãé
眮ããèœåã«ãã£ãŠæ±ºãŸããŸãã åæã«ãããŒã¿ã䜿çšããç¹å®ã®ãããžã§ã¯ããèšå®ããå Žåãã©ã€ãã©ãªã¯ç¹å®ã®çµ±åãå¿
èŠãšããã©ã€ãã©ãªã®ç¹å®ã®å Žæããæœè±¡åããŸãã
ã©ã€ãã©ãªãããããŒãã¡ã€ã«ãOSGãã©ã°ã€ã³ãžã®ãã¹ã瀺ãããã€ãã®ã·ã¹ãã ç°å¢å€æ°ãäœæããŸãããã ç§ã®äŸã§ã¯ããã®ããã«ãªããŸã

ã¹ã¯ãªãŒã³ã·ã§ããã§ååã赀䞞ã§å²ãŸããŠãã倿°ãäœæããå¿
èŠããããŸãã 倿°ãäœæããåŸãç¹ã«éçºããŒã«ã§å€æ°ã衚瀺ããã«ã¯ãQtCreatorã¯å°ãªããšãã·ã¹ãã ã«ãã°ã€ã³ããïŒçŸåšã®ãŠãŒã¶ãŒãšããŠãã°ã¢ãŠãããŠãã°ãªã³ããïŒããå Žåã«ãã£ãŠã¯ã·ã¹ãã ãåèµ·åããå¿
èŠããããŸãïŒããã¯Windowsã§ãïŒïŒ
ãã®åŸãã³ã³ãã¥ãŒã¿ãŒã«OSGãã€ã³ã¹ããŒã«ããæé ã¯å®äºãããšèŠãªãããšãã§ããŸãã
5. QtCreatorãžã®Hello Worldã®äœæ
ç¹å®ã®ãHello worldïŒãã䜿çšããããã°ã©ãã³ã°ã§éåžžåãå
¥ããããŠããããã«ãOpenSceneGraphã°ã©ãã£ãã¯ãšã³ãžã³ã«ã€ããŠã®ç°¡åãªäŸã玹ä»ããŸãã
ã³ãŒããèšè¿°ããåã«ãqmakeãã«ãã·ã¹ãã çšã«ãããžã§ã¯ããæ§æããŸããããã¯ãäžé£ã®èšäºå
šäœãéããŠäœ¿çšããŸãã èå³ã®ãããã¡ã€ã«ã·ã¹ãã ã®ä»£ããã«ã次ã®ãã£ã¬ã¯ããªæ§é ãäœæããŸãã
OSG-lessons/ |-data/ |-OSG-lessons/ | |-hello/ |-include/ |-src/
helloãã£ã¬ã¯ããª
ã§ã次ã®å
容ã®
hello.proãã¡ã€ã«
ãäœæããŸã
å
šæhello.pro TEMPLATE = app TARGET = hello DESTDIR = ../../bin win32 { OSG_LIB_DIRECTORY = $$(OSG_BIN_PATH) OSG_INCLUDE_DIRECTORY = $$(OSG_INCLUDE_PATH) CONFIG(debug, debug|release) { TARGET = $$join(TARGET,,,_d) LIBS += -L$$OSG_LIB_DIRECTORY -losgd LIBS += -L$$OSG_LIB_DIRECTORY -losgViewerd LIBS += -L$$OSG_LIB_DIRECTORY -losgDBd LIBS += -L$$OSG_LIB_DIRECTORY -lOpenThreadsd } else { LIBS += -L$$OSG_LIB_DIRECTORY -losg LIBS += -L$$OSG_LIB_DIRECTORY -losgViewer LIBS += -L$$OSG_LIB_DIRECTORY -losgDB LIBS += -L$$OSG_LIB_DIRECTORY -lOpenThreads } INCLUDEPATH += $$OSG_INCLUDE_DIRECTORY } unix { CONFIG(debug, debug|release) { TARGET = $$join(TARGET,,,_d) LIBS += -losgd LIBS += -losgViewerd LIBS += -losgDBd LIBS += -lOpenThreadsd } else { LIBS += -losg LIBS += -losgViewer LIBS += -losgDB LIBS += -lOpenThreads } } INCLUDEPATH += ./include HEADERS += $$files(./include
ãããã®æçŽãããã«è©³ããåæããŸãã
TEMPLATE = app TARGET = hello DESTDIR = ../../bin
倿°ã¯ããããžã§ã¯ããã³ãã¬ãŒãïŒapp-applicationïŒãå®è¡å¯èœãã¡ã€ã«ã®ååïŒhelloïŒãããã³ã¢ã»ã³ããªåŸã«å®è¡å¯èœãã¡ã€ã«ãé
眮ããããã£ã¬ã¯ããªãæå®ããŸãã
win32 { OSG_LIB_DIRECTORY = $$(OSG_BIN_PATH) OSG_INCLUDE_DIRECTORY = $$(OSG_INCLUDE_PATH) CONFIG(debug, debug|release) { TARGET = $$join(TARGET,,,_d) LIBS += -L$$OSG_LIB_DIRECTORY -losgd LIBS += -L$$OSG_LIB_DIRECTORY -losgViewerd LIBS += -L$$OSG_LIB_DIRECTORY -losgDBd LIBS += -L$$OSG_LIB_DIRECTORY -lOpenThreadsd } else { LIBS += -L$$OSG_LIB_DIRECTORY -losg LIBS += -L$$OSG_LIB_DIRECTORY -losgViewer LIBS += -L$$OSG_LIB_DIRECTORY -losgDB LIBS += -L$$OSG_LIB_DIRECTORY -lOpenThreads } INCLUDEPATH += $$OSG_INCLUDE_DIRECTORY }
ãããžã§ã¯ããçµã¿ç«ãŠãããOSã«å¿ããŠãã©ã€ãã©ãªãã£ã¬ã¯ããªãšOSGããããŒãã¡ã€ã«ãžã®ãã¹ã瀺ã倿°ãå®çŸ©ããŸãã ããã§ãOSG_BIN_PATHããã³OSG_INCLUDE_PATHç°å¢å€æ°ã䟿å©ã«ãªããŸãããçŸåšãOSGã©ã€ãã©ãªãã€ã³ã¹ããŒã«ãããŠããå Žæã¯é¢ä¿ãããŸããã èªåã®ã³ã³ãã¥ãŒã¿ãŒã§ãã®ãããžã§ã¯ãã䜿çšããã人ã¯ã ãã§ãããã«ãã¹ã¯ãªãããç·šéããã«é©åãªç°å¢å€æ°ãã·ã¹ãã ã«æžã蟌ãã ãã§ãã
CONFIG(debug, debug|release) { TARGET = $$join(TARGET,,,_d) LIBS += -L$$OSG_LIB_DIRECTORY -losgd LIBS += -L$$OSG_LIB_DIRECTORY -losgViewerd LIBS += -L$$OSG_LIB_DIRECTORY -losgDBd LIBS += -L$$OSG_LIB_DIRECTORY -lOpenThreadsd } else { LIBS += -L$$OSG_LIB_DIRECTORY -losg LIBS += -L$$OSG_LIB_DIRECTORY -losgViewer LIBS += -L$$OSG_LIB_DIRECTORY -losgDB LIBS += -L$$OSG_LIB_DIRECTORY -lOpenThreads }
UNIXã©ã€ã¯ãªOSã§ãã«ãããã¹ã¯ãªãããæžã
unix { CONFIG(debug, debug|release) { TARGET = $$join(TARGET,,,_d) LIBS += -losgd LIBS += -losgViewerd LIBS += -losgDBd LIBS += -lOpenThreadsd } else { LIBS += -losg LIBS += -losgViewer LIBS += -losgDB LIBS += -lOpenThreads } }
ããã§ã¯ãå®è¡å¯èœãã¡ã€ã«ã®ååãèšå®ããããŸããŸãªãã«ããªãã·ã§ã³ïŒãããã°ãšãªãªãŒã¹ã®äž¡æ¹ïŒã«å¯ŸããŠããã°ã©ã ã§ã³ã³ãã€ã«ããå¿
èŠãããã©ã€ãã©ãªãæå®ããŸãã OSGãããã°ã©ã€ãã©ãªã«ã¯ããã¡ã€ã«åã®åŸã«æ¥å°ŸèŸãdããä»ããŠããŸãã ãããã°ãªãã·ã§ã³ãšãªãªãŒã¹ããŒãžã§ã³ãåºå¥ããããã«ããããžã§ã¯ãã®å®è¡å¯èœãã¡ã€ã«ã«æ¥å°ŸèŸã_dãã远å ããŸãã
INCLUDEPATH += $$OSG_INCLUDE_DIRECTORY INCLUDEPATH += ./include HEADERS += $$files(./include/*.h) SOURCES += $$files(./src/*.cpp)
æåŸã«ãããããŒãã¡ã€ã«ãšãããžã§ã¯ãããªãŒã«å«ãŸãããã¡ã€ã«ã®æ€çŽ¢ãã¹ã決å®ããŸãã include /ãã£ã¬ã¯ããªã«ç©ºã®main.hãã¡ã€ã«ãäœæããsrc /ãã£ã¬ã¯ããªã«main.cppãã¡ã€ã«ãäœæããŸãã ãã®ãããžã§ã¯ããQtCreatorã§éããã¹ã¯ãªãŒã³ã·ã§ããã«ç€ºãããã«æ§æããŸã

ãããžã§ã¯ããéããåŸã次ã®ç»åã衚瀺ãããŸã

ãã®ãããªã³ãŒããmain.hãã¡ã€ã«ã«èšè¿°ããŸã
#ifndef MAIN_H #define MAIN_H #include <osgDB/ReadFile> #include <osgViewer/Viewer> #endif
次ã«ãmain.cppãã¡ã€ã«ã«ããã°ã©ã ã®æ¬äœãå®è£
ããŸã
#include "main.h" int main(int argc, char *argv[]) { (void) argc; (void) argv; osg::ref_ptr<osg::Node> root = osgDB::readNodeFile("../data/cessna.osg"); osgViewer::Viewer viewer; viewer.setSceneData(root.get()); return viewer.run(); }
é£è¡æ©ã®ã¢ãã«ãã¡ã€ã«ãããŒã¿/ãã£ã¬ã¯ããªã«ã³ããŒããå¿
èŠããããŸãã ãã®ãã¡ã€ã«ã¯ããã®äžé£ã®èšäºã§äœ¿çšããããã®ã®å€ããšåæ§ã«
ãOpenSceneGraph-DataãªããžããªããããŠã³ããŒãã§ã
ãŸããã³ã³ãã€ã«ããŠå®è¡ãããšã次ã®ããã«ãªããŸã

ã³ãŒãã®æåã®2è¡
(void) argc; (void) argv;
ã³ã³ãã€ã©ã®èŠåãåé¿ããããã«ãmainïŒïŒé¢æ°ã®å
¥åãã©ã¡ãŒã¿ãŒãæªäœ¿çšãšããŠããŒã¯ããŸãã æ¬¡ã«ãã·ãŒã³ã®ã«ãŒãããŒããäœæãããŸããããã¯ãcessna.osgãã¡ã€ã«ããèªã¿èŸŒãŸããèªç©ºæ©ã®ã¢ãã«ã§ãã
osg::ref_ptr<osg::Node> root = osgDB::readNodeFile("../data/cessna.osg");
次ã«ãosgViewer :: Viewerã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ïŒããããããã¥ãŒã¢ãïŒãäœæãããŸããããã¯ãç»é¢äžã®ã·ãŒã³ã®è¡šç€ºãå¶åŸ¡ãããªããžã§ã¯ãã§ãã ã·ãŒã³ããŒã¿ã¯ãã¥ãŒã¢ã«æž¡ãããŸã
viewer.setSceneData(root.get());
ãããŠã·ãŒã³ã®ã¬ã³ããªã³ã°ãµã€ã¯ã«ãå§ãŸããŸã
return viewer.run();
ãã®æãåçŽãªã³ãŒãã«ã¯ããã§ã«OSGã§äœ¿çšãããå€ãã®åºæ¬æŠå¿µãå«ãŸããŠããŸãã ãããããããã«ã€ããŠè©±ãã®ã¯å°ãåŸã«ãªããŸãã
ãããã«
以äžã§èª¬æããäŸã®å®å
šãªãœãŒã¹ã³ãŒãã¯ã
ããã§å
¥æã§ããŸã ã ãã®åºçç©ã«èå³ã®ããèªè
ãããŠã
ç¶ããããããšãé¡ã£ãŠã
ãŸã...