導航:首頁 > 文件教程 > osg支持的文件格式

osg支持的文件格式

發布時間:2023-03-22 17:41:49

① OSG模擬案例(8)——讀取FBX格式文件並顯示(無動畫)

包含的頭

所需要的類(結構體)

載入吧緩搜顯示模型

文件液芹夾中鬧哪畢數據

② 想請問下高手們,用3ds Max製作模型導出*.3ds格式,然後利用OSG載入模型,如何讓模型上面有紋理呢

3ds格式 不支持 貼圖文件名超過8個字元的。。

超過8個的會被截掉 只保留8位 所以osg 不認

③ 有懂OSG的嗎幫忙看看……

你檢查鬧尺下以下三腔雹條:
1、使用#include <osgDB/ReadFile>了嗎液圓高?
2、確定你的path環境變數裡麵包含C:\OSG\OpenSceneGraph\build\bin路徑
3、工程屬性的附加依賴項中有osgDBd.lib
嘗試一下。

④ 我手上有osgb格式的傾斜攝影文件,如何打開進行瀏覽

1、首先打開LocaSpace Viewer軟體,進入到應用程序的首頁中。

⑤ 小白請教osg(OpenSceneGraph)如何安裝

一下載資料:

1、下載源碼:
在http://www.openscenegraph.org/projects/osg/wiki/Downloads下載穩定版本的源代碼或預編譯包。

source code為源代碼,可以用CMAKE工具生成.sln的解決方案;
binaries為預編譯包,預編譯包不是openscenegraph官方直接維護,而是有其他愛好者上傳,可能會有隱患,最好是從源代碼進行編譯。
版本說明:<主版本號>.<副版本號>.<修訂號>
主版本號高的,功能豐富;副版本號為偶數的為正式版本,比較穩定;副版本號為奇數的為開發者版本,有新特性和功能,但會存在未解決的兼容性和效率問題;開發者版本和正式版本是同步發行的。

下載文件為:OpenSceneGraph-2.8.0.zip

2、下載Cmake工具:
在http://www.cmake.org/cmake/resources/software.html中下載CMake工具cmake-2.8.2-win32-x86.exe。

3、下載SVN軟體(用於下載源碼或第三方庫,有的版本不需要此軟體,可直接下,根據情況定):

在http://tortoisesvn.tigris.org/下載TortoiseSVN。

4、下載第三方庫Dependencies,http://www.openscenegraph.org/projects/osg/wiki/Downloads/Dependencies,
「VisualStudio 8 (2005) SP1 - svn access directory 」

5、下載示例:
在http://www.openscenegraph.org/projects/osg/wiki/Downloads/SampleDatasets中下載示例數據文件OpenSceneGraph-Data-2.8.0.zip 。

二、安裝
1、安裝cmake工具
2、在某盤符下建立osg文件夾,在該文件夾中放置源碼文件、第三方文件和示例文件。
3、運行cmake,
第一行(where is the source code)輸入osg文件夾中的源碼文件;
第二行(where to build the binaries)輸入一個新文件夾名及地址,如osg/build_osg;
點configure,選擇所用的編譯器版本,即c++版本;
點grouped,選擇build項,選擇build_osg_examples和build_osg_wrappers;
選擇cmake項,設置cmake_install_prefix的位置(用於存放編譯完的各種模塊文件,如庫文件、可執行文件和頭文件)
點configure,點advanced,選上build_mfc_example
點configure,
點generate,完成。
此時在osg/build_osg文件中生成了對應編譯版本的.sln文件。
4、用c++編譯器打開該.sln文件,在解決方案管理器窗口中的all_build上右擊,選「生成」,將在osg/build_osg中生成幾個G的文件。
在install上右擊,選「生成」,將在第三步中cmake_install_prefix設置的文件夾中生成編譯完的各種模塊文件(如庫文件、可執行文件和頭文件)。

三、設置環境變數
我的電腦-屬性-高級-環境變數
系統變數
OPENSCENEGRAPH_VERSION=2.8.0
OSGDIR=D:\Program Files\OpenSceneGraph
PATH新增:%OSGDIR%\bin;
%OSGDIR%\bin\osgPlugins-%OPENSCENEGRAPH_VERSION%
OSG_FILE_PATH=%OSGDIR%\data
OSG_NOTIFY_LEVEL=INFO

四、簡單測試
在控制台下輸入osgviewerd cow.osg

五、建立工程環境
1、使VS支持無擴展名頭文件的高亮顯示。
進入visual studio,選擇Tools-Options,選text editor-file extension,在下面的map extensionless files to選項選擇microsoft visual c++。
2、構建基於OSG開發的工程。
1)建一個工程
2)在project-properties中選擇configuration properties-c/c++,在additional include directories中輸入「$(OSGDIR)\include」。
3)選擇configuration properties-linker,在additional library directories中輸入「$(OSGDIR)\lib」。
4)選擇configuration properties-linker-input,打開additional dependencies窗口,准備配置輸入的依賴庫文件名稱。如OpenThreadsd.lib;osgd.lib;osgDBd.lib;osgUtild.lib;osgGAd.lib;osgTextd.lib;osgViewerd.lib
注意:Debug版本的工程和Release版本的工程所依賴的OSG庫文件類型相同,但名稱有區別.Debug版本的文件名末尾有"d"標識。根據用戶需要的不同,還可以添加其他庫依賴文件,這些文件在osg的lib文件夾中。

OK,現在可以編代碼,編譯、調試,輸出效果了,體會OSG渲染引擎的強大吧

⑥ 如何在Web上直接瀏覽大規模OSGB格式傾斜模型(二):轉換OSGB

歡迎關注公號【 三維網格3D 】,第一時間獲取最新文章

上一篇( 如何在Web上直接瀏覽大規模OSGB格式傾斜模型(一):解析OSGB )已經貼出了解析結果,讓我們對OSGB傾斜模型文件內部結構有了比較清晰的認識,本篇我們將解析結果轉成three.js對象,並實現單個模型的顯示。

為什麼轉成three.js對象

從解析結果看,Osg對象的節點關系用three.js對象表達更容易,轉換結果可以直接用three.js顯示,通過我們團隊的Cesium和three.js融合方案,可以輕松將成果用於Cesium開發的項目,既可以單獨使用,又可以擁有GIS能力。

需要轉換的Osg類型

解析得到的Osg對象,Type屬性指示對象的類型,我們只是要轉換傾斜攝影模型文件的Osg對象,而不是做一個通用的轉換工具,所以先將類型做一下分類,只轉換目前所用測試數據(100多G的測試數據)已知的類型。

PS:我們團隊內部使用的版本,經過一年多的應用和改進,支持了更多類型的轉換,填了許多坑,而且支持osgb、osgt、osg、osgjs四種格式文件,載入速度和健壯性都得到保障。歡迎咨詢~

節點類

osg::Node

osg::Geode

osg::Group

osg::LOD

osg::PagedLOD

osg::MatrixTransform

幾何類

osg::Geometry

osg::OsgArray

材質類

osg::StateSet

osg::Material

osg::StateAttribute

osg::Texture

osg::Texture2D

osg::Image

節點類主要考慮osg::MatrixTransform,因為這個節點主要的信息就是變換參數,會影響模型的位置、旋轉、縮放等。

接下來我們著重介紹轉換幾何和材質這兩類,LOD和PagedLOD參數不多,而且都是調度相關的,我們放在下一篇一起介紹。

轉換幾何對象

幾何數據存儲在Osg::Geometry,包含索引屬性PrimitiveSetList、位置坐標屬性VertexArray、紋理坐標屬性TexCoordArray。我們將其轉換為THREE.BufferGeometry。

varbufferGeometry=newTHREE.BufferGeometry();

頂點屬性轉換

頂點屬性值是一個二維數組,我們直接調用flat方法,轉為一維數組即可。

varpositions=newFloat32Array(osgGeometry.VertexArray.flat());

varuvs=newFloat32Array(osgGeometry.TexCoordArray.flat());

bufferGeometry.setAttribute('position',newTHREE.BufferAttribute(positions,3));

bufferGeometry.setAttribute('uv',newTHREE.BufferAttribute(uvs,2));

索引轉換

索引類型有兩種,有value指定,這里我們只對索引類型為4的情況(即繪圖最小單元為四邊形)進行特殊處理,其餘的默認最小繪制單元為三角形。

varprimitiveSet=osgGeometry.PrimitiveSetList[0]

varindices=primitiveSet.data;

if(primitiveSet.value==4) {

letnewIndices=[];

for(leti=0; i<indices.length; i+=4) {

leti0=indices[i],

i1=indices[i+1],

i2=indices[i+2],

i3=indices[i+3];

newIndices.push(

i0, i1, i3,

i1, i2, i3

);

}

indices=newIndices;

}

bufferGeometry.setIndex(indices);

轉換材質對象

傾斜攝影模型的材質最重要的就是貼圖,作為原理介紹,我們不處理其他材質參數,直取貼圖即可,當然工程應用上我們還是需要處理一些情況,保證其可用、可靠、健壯。

材質對象存儲在Osg::Geometry的StateSet屬性,該屬性類型為Osg::StateSet,而我們要的貼圖存儲在Osg::StateSet的TextureAttributeList屬性,一般就一張圖。

傾斜模型已經包含了光影信息,為此我們將材質轉為THREE.MeshBasicMaterial。

varmaterial=newTHREE.MeshBasicMaterial({

side:THREE.DoubleSide

});

處理貼圖

貼圖一般是jpg或者png格式,我們這里只處理這兩種格式。需要注意的是圖片數據為Uint8Array類型,我們需要先轉為Blob,然後通過URL.createObjectURL創建url,最後使用THREE.TextureLoader載入。

varosgStateSet=osgGeometry.StateSet;

varosgImage=osgStateSet.TextureAttributeList[0].value.StateAttribute.Image

varfileName=osgImage.Name;

constisJPEG=fileName.search(/\.jpe?g($|\?)/i)>0

constisPNG=fileName.search(/\.png($|\?)/i)>0

if(!isPNG&&!isJPEG)return;

varmimeType=isPNG?'image/png':'image/jpeg';

varimageUri=newBlob([osgImage.Data], { type:mimeType });

imageUri=URL.createObjectURL(imageUri)

vartexture=newTHREE.TextureLoader().load(imageUri, ()=>{

texture.needsUpdate=true

})

創建網格

最後,使用轉換好的幾何體和材質創建模型網格。這里要注意,傾斜攝影模型是z軸朝上(z-up),而three.js渲染是y軸朝上(y-up),所以還需將網格繞x軸旋轉y-90°才得到正常的渲染效果。

varmesh=newTHREE.Mesh(geometry, material);

mesh.rotation.x=-Math.PI/2

轉換結果

顯示效果

額,看起來並沒有那麼好看~畢竟這是單個瓦片最不清晰的那層,簡化到不能看了。

下一篇,我們將主要介紹如果實現PagedLOD,來載入大規模傾斜攝影模型,敬請期待

歡迎關注公號【 三維網格3D 】,第一時間獲取最新文章

⑦ 傾斜攝影文件osgb格式,如何轉換為obj 或者3ds 或者其它3d模型常見的格式

osgb格式是無人機飛行獲取的數據,可以直接使用Smart3D打開,也可以用SuperMap桌面版,或者在自己電腦上配置好osg環境後,用命令osgviewer 文件名打開。

⑧ 三維圖格式有哪些 ,具體什麼格式是通用的

三維圖格式很多。

如:Xdaeobj3dsmaxmambc4dmd2fbx wxwrlstlstp3mfslprtdwgosgiges一些機構還會定義自己的模型格式。

通用的格式:

DCC軟體:3dsmaxMayaBlenderCinema4DMonoBrush。

CADCAM軟體:UGPro/。

(8)osg支持的文件格式擴展閱讀:

1、數字模型應用的兩大主要領域:

總的來說分為兩大領域:DCC(Digital Content Creation)領域和CAD/CAM(Computer Aided Design/Manufacturing)領域。前者主要偏向可視化,應用於游戲、影視動畫、當前的VR和AR;後者主要面向工業設計製造。

2、兩大領域模型的特點:

DCC軟體多以mesh/polygon形式製作模型,通過對頂點、線段、面片網格進行模型的編輯。CAD/CAM軟體多以nurbs曲面形式製作模型,通過對樣條線的編輯生成曲面模型。

兩種模型的區別有點像「像素」圖像和「矢量」圖像的區別。前者長於製作形狀怪異細節復雜的有機模型,如怪獸,山洞;後者長於製作表面光滑的機械模型,如汽車外殼。

⑨ 怎麼把3dmax 文件轉換成可以在osg里執行的文件

1.點擊文件-導出。畢蠢銀

閱讀全文

與osg支持的文件格式相關的資料

熱點內容
金醫保app可以預約哪些醫院 瀏覽:840
如果快速刪掉電腦桌面文件 瀏覽:309
網路優化系統是什麼 瀏覽:320
海康威視數據怎麼刪除 瀏覽:826
ug編程哪個視圖好用 瀏覽:866
福州龍泉哪裡有學編程的 瀏覽:513
消保整改文件 瀏覽:145
重度貧血數據是多少 瀏覽:323
maya粒子表達式教程 瀏覽:84
抖音小視頻如何掛app 瀏覽:283
cad怎麼設置替補文件 瀏覽:790
win10啟動文件是空的 瀏覽:397
jk網站有哪些 瀏覽:134
學編程和3d哪個更好 瀏覽:932
win10移動硬碟文件無法打開 瀏覽:385
文件名是亂碼還刪不掉 瀏覽:643
蘋果鍵盤怎麼打開任務管理器 瀏覽:437
手機桌面文件名字大全 瀏覽:334
tplink默認無線密碼是多少 瀏覽:33
ipaddgm文件 瀏覽:99

友情鏈接